当我使用 adb 访问我的设备时(Android 4.4.2 直接来自制造商及其定制的 rom - 它不是常规设备 - 它内置了二维条码扫描仪)它直接进入了一个 # 我已经read 意味着我有 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 并从那里运行它。仍然没有运气。
最佳答案
我的中文平板电脑有这样的问题。只需重新根目录(替换 su
二进制文件)。应该可以。
附言查看任何代码也会有所帮助。
关于Android 在应用程序中运行 su,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39556325/