我正在尝试在我的 ROM 中包含 SuperUser 应用程序和 su 二进制文件(通过 AOSP 方法)。我正在使用android-6.0.1_r79 (Marshmallow)
我的基本 AOSP 代码。
[ [类似的问题已经在前面回答过,但之前的所有讨论都是在 Android KitKat 之前进行的,并且不能解决当前的 AOSP/超级用户问题。] ]
我按照这里的说明进行操作,经过几次小插曲,在谷歌的帮助下,我成功构建了。我正在使用此处列出的 su 存储库。
通过添加一些日志,我能够验证存在的 su 二进制文件/system/xbin
来自wvengen/su.c 。但是,ROM 中没有超级用户应用程序。
我面临的第二个问题/system/xbin/su
是只能访问 adb shell 而不能访问其他应用程序。默认情况下 su 二进制文件具有以下权限:
root@generic:/system/xbin # ls -l | grep su
-rwsr-x--- root shell 488692 2017-04-16 16:20 su
我将其更改为:
root@generic:/system/xbin # chmod +rx su
root@generic:/system/xbin # chmod +s su
root@generic:/system/xbin # ls -l | grep su
-rwsr-sr-x root shell 488692 2017-04-16 16:20 su
但仍有其他应用程序无法获得 su 访问权限
root@generic:/system/xbin # run-as com.test
root@generic:/system/xbin $ ls -l | grep su
lstat './su' failed: Permission denied
而所有其他二进制文件在 com.test 下都是可执行的(例如 /system/xbin/sqlite3)。
我还尝试更改fs_config.c中的 su 权限,但没有成功。
所以请给我一些指示:
- 了解为什么我的 ROM 中没有 Superuser.apk
- 如何使 su 二进制文件可用于其他应用程序