我基本上想/system/bin/...
从 Applicationjava
命令启动一个驻留在其中的进程。我尝试了所有类型的Runtime.process.exec()
选项也尝试了su
和ouputStream
组合,但没有任何东西能够启动应用程序。我在设备和模拟器中使用代码,两者都没有运气。我能够从 ADB Shell 成功运行相同的命令(因为它具有 root 权限)。
该设备已root,当我使用adb调试我的设备时,我可以看到#,它也可以通过adb进入su。根据我的搜索,我发现(在从 adb shell 执行 ps 之后)我能够从应用层运行具有 lrwz--x--x 权限的任何命令,例如 (ls->toolbox, ps->toolbox) 但我我无法执行未链接到工具箱的任何其他命令。
这不执行ls
:
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os=new DataOutputStream(p.getOutputStream());
os.writeBytes("ls \n");
os.flush();
但这确实执行ls
:
Process p = Runtime.getRuntime().exec("ls");
如果我能在这里得到任何帮助,我将不胜感激!经过大量研究后,我将其发布。