无法运行程序" su"在root设备上

时间:2017-04-17 23:59:09

标签: android root android-permissions su

我有一部运行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,但这似乎没有任何区别。

1 个答案:

答案 0 :(得分:0)

您可以考虑以这种方式运行su进程:

ProcessBuilder mProcess = new ProcessBuilder()
                                   .command("/system/xbin/su")
                                   .redirectErrorStream(true).start();

OutputStream out = mProcess.getOutputStream();