当我使用adb来访问我的设备(制造商直接使用其自定义rom的Android 4.4.2-它不是常规设备-它内置了2D条形码扫描仪)时,会直接获得一个#,这表示我已经读过具有root访问权限。如果我运行“ id”,则会得到以下信息:
uid=0(root) gid=0(root) context=u:r:adbd:s0
但是,当我从应用程序中运行“ su”然后运行“ id”时,我得到以下信息:
uid=10079(u0_a79) gid=10079(u0_a79) groups=50079(all_a79) context=u:r:untrusted_app:s0n
因此,显然它不是以root身份运行。
我是否认为应该以root身份从应用程序内部运行而理解全部错误,还是需要做一些其他事情才能使此工作正常进行?
任何建议将不胜感激。
这是我当前用于运行su和id命令的代码:
p = Runtime.getRuntime().exec("su");
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "n");
}
p = Runtime.getRuntime().exec("id");
p.waitFor();
reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "n");
}
我忘记提及的另一件事-我将应用程序复制到/ system / priv-app并从那里运行。仍然没有运气。
最佳答案
我的中文平板电脑有这样的问题。只需重新root(替换su
二进制文件)。应该管用。
附言看到任何代码也有帮助。