【发布时间】:2015-06-27 07:28:27
【问题描述】:
我需要我的应用程序以编程方式执行一些su 命令(手机已root)。
使用 adb 完成后,这些命令将起作用。
例如:
su -c "mkdir /sdcard/testdir" 在 /sdcard 中创建一个名为“testdir”的目录。
当我打电话时:
p = Runtime.getRuntime().exec("su -c \"mkdir /sdcard/testdir\"");
p.waitFor();
它只是继续前进,没有发生任何变化。
我尝试读取输入:
DataInputStream dis = new DataInputStream(p.getInputStream());
while((temp = dis.readLine())!=null)
Log.d(ctx.TAG,"shell:"+temp);
但它什么也没报告(循环执行 0 次迭代)。
以前有人遇到过这个问题吗?如何解决? 不用说,非 su 命令确实可以通过这种方法以编程方式工作。
注意:我以mkdir 为例(我知道它不一定需要 su)。我需要在su下执行很多不同的命令
谢谢!
编辑:当我以编程方式调用 su -c "id" 时,输出 uid=0。
【问题讨论】:
-
你解决了这个问题吗?在这里正好面临同样的问题