Android 在应用程序中运行 su

标签 android adb root su selinux

当我使用 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/

相关文章:

android - 在 32 位操作系统中使用最新版本的 aapt 和 adb

android - 通过 ADB Shell 在 Android 上启动 Hostapd

string - 用于在目录和所有子目录中查找字符串的批处理脚本

java - Android,没有 AppCompat,全屏 - 最正确的风格?

android - 由于设备方向更改,在调整 webView 大小时更改应用程序可见的背景颜色

android - 使用 adb screenrecord 命令通过 USB 将 Android 屏幕镜像到 PC

c# 检查给定的 Sharepoint 路径是否是根 sharepoint 路径?

linux - 让用户从 CL 重新启动,或者从 CL 重新启动而不是 root

java - 回收器 View 中的空对象引用

android - Flutter 中的 PageController 和 Map