Android 如何创建具有短完整路径的符号链接?
我正在编辑一些短路径,而不是重新编译它们 我想替换Android 如何创建具有短完整路径的符号链接?,android,binaryfiles,directory-structure,dynamic-linking,Android,Binaryfiles,Directory Structure,Dynamic Linking,我正在编辑一些短路径,而不是重新编译它们 我想替换/lib/ld linux armhf.so.3,我不能用相同长度的路径来创建它,而不需要在手机上加根。它应该是相同长度的,因为我正在编辑二进制文件。在下面列出的不同可能性之后,我选择了路径/data/data/com.clk/.so.3。我想做的是创建/data/data/com.clk/.so.3,它应该是指向/data/data/com.spartacusrex.spartacuside/gentoo_armv6l/lib/ld linux
/lib/ld linux armhf.so.3
,我不能用相同长度的路径来创建它,而不需要在手机上加根。它应该是相同长度的,因为我正在编辑二进制文件。在下面列出的不同可能性之后,我选择了路径/data/data/com.clk/.so.3
。我想做的是创建/data/data/com.clk/.so.3
,它应该是指向/data/data/com.spartacusrex.spartacuside/gentoo_armv6l/lib/ld linux armhf.so.3
我最初使用的是/proc/5781/cwd/rmhf.so.3
,但其他应用程序(即其他linux帐户)无法读取
然后我尝试了/data/.tmp
,但它是我手机上的,根据@ChrisStratton的说法没有文档记录。与/data/logcat\u log
相同
/sdcard
被排除在外,因为fuse选项rw、nosuid、nodev、relatime、user\u id=1015、group\u id=1015、default\u权限、allow\u other
限制链接和可执行文件以及/lib/ld linux armhf。因此将执行.3
有人知道我还可以如何做到这一点吗?您是否考虑过使用而不是滚动您自己的二进制编辑?它声称足够聪明,可以根据需要在ELF头中插入一个额外的页面,为更长的解释器或RPATH字段腾出空间。这将允许您使用真正的解释器值,而不需要符号链接。我最终偶然发现了一款不需要任何x86计算机且可在手机上运行的解释器。没有支付任何费用,在二十分钟内,我创建了我的第一个apk,并能够在临时授权未知来源后安装它。那是我的第一个java程序。我为apk选择了一个简短但信息丰富的名称,com.symli
(com.
似乎是必要的)
然后我修改了编辑器的选项卡MainActivity.java
,以获得:
package com.symli;
import android.app.*;
import android.os.*;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
try
{
Runtime.getRuntime().exec("ln -s /data/data/com.termux/com.symli /data/data/com.symli/n");
Runtime.getRuntime().exec("chmod 1777 /data/data/com.symli");
} catch (java.io.IOException e) {
}
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
然后我只需点击“运行”按钮,符号链接就永远在这里,/data/data/com.symli本身就是一个世界可写目录(设置了粘性位):
我已将生成的.apk上载到(权限:无!SHA256sum:01fd17a8700f2cb5b5bb943b38b623b1400679fa03c35ccb204619d1d5d486ff MD5sum:879af0633504ab25462a1f9b2303587e)否,它们不是。在这些方面,您会发现Android版本的差异很大。请考虑用库路径覆盖环境变量启动二进制文件。OK,我更新了我的问题:/DATAB/TMP/不可用,所以我要求有人来生成我的短全路,有赏金。你认为最简单的解决方案是生成一个APK吗?@user2987828你不需要以root身份登录来创建一个到受保护的东西的合成链接吗?@meewoK:不。你可以在终端IDE中尝试
ln-s/data/data/jackpal.androidterm/lib/libjackpal-androidterm4.so
,它将创建一个符号链接,即使/data/data/jackpal.androidterm不存在。如果安装终端仿真器,该路径将存在,符号链接将工作。这是因为所有涉及的目录在ls-l
输出的第十列中至少有最后一个x
(安装终端模拟器后,尝试ls-ld//data/data/data/data/data/data/data/jackpal.androidterm/
)谢谢,我不知道PatchELF。当我无法重新编译(这种情况并不常见)时会很方便。我在寻找具有短程序包名称的shell应用程序时找到了这个apk生成器com.aide.ui。我现在可以制作简单的应用程序,而不需要授权任何人查看我的私生活!第`;env>/data/data/com.symli/getRuntimeExecEnv`不工作,因此读取器可以抑制它。使用my.apk(而不是使用com.aide.ui)的读卡器无法从.apk中抑制它。
lrwxrwxrwx 1 10150 10150 50 Nov 3 13:17 /data/data/com.symli/n -> /data/data/com.termux/com.symli
drwxrwxrwt 4 10150 10150 4096 Nov 3 2015 /data/data/com.symli