我有一部运行Android N(AOSP版本)的root手机。我试图从我的应用程序获得root权限,但它一直被拒绝许可。这是我正在尝试的:
java.lang.Process p = runtime.exec("su");
DataOutputStream commandLine = new DataOutputStream(p.getOutputStream());
commandLine.writeBytes("rm /data/local/tmp/testfile\n");
commandLine.flush();
p.waitFor();
然而,它始终失败并出现错误:
W/System.err: java.io.IOException: Cannot run program "su": error=13, Permission denied
W/System.err: at java.lang.ProcessBuilder.start(ProcessBuilder.java:983)
W/System.err: at java.lang.Runtime.exec(Runtime.java:691)
W/System.err: at java.lang.Runtime.exec(Runtime.java:524)
W/System.err: at java.lang.Runtime.exec(Runtime.java:421)
W/System.err: at MainActivity$2.onClick(MainActivity.java:104)
我还在我的清单中添加了android.permission.ACCESS_SUPERUSER
,但这似乎没有任何区别。
答案 0 :(得分:0)
您可以考虑以这种方式运行su进程:
ProcessBuilder mProcess = new ProcessBuilder()
.command("/system/xbin/su")
.redirectErrorStream(true).start();
OutputStream out = mProcess.getOutputStream();