2024年4月18日发(作者:)
[Description]
如何永久性开启adb 的root权限
[Keyword]
user debug root adb adbd
[Solution]
* adb 的root 权限是在system/core/adb/adb.c 中控制。主要根据 以
及 able 等system property 来控制。
默认即档 为0 时,即开启root 权限,为1时再根据able 等
选项来确认是否可以用开启root 权限。为此如果要永久性开启adb 的root 权限,有两
种修改的方式:
1. 修改system property , 让=0。
2. 修改adb.c 中开启root 权限的判断逻辑。
* 在L 版本上adb 会受到SELinux 的影响, 所以需要调整SELinux policy 设置.
下面详细说明这两种修改方式:
第一种方法. 修改system property , 让=0。
(1)修改alps/build/core/
ifneq (,$(user_variant))
# Target is secure in user builds.
ADDITIONAL_DEFAULT_PROPERTIES += =1
将ADDITIONAL_DEFAULT_PROPERTIES += =1 改成
ADDITIONAL_DEFAULT_PROPERTIES += =0 即可。
(2)在android JB 版本(4.1) 以后,google 从编译上直接去除了adbd 的user 版本
root 权限, 为此您要修改system/core/adb/ 中的编译选项
ALLOW_ADBD_ROOT, 如果没有打开这个选项,那么adb.c 中将不会根据 去
选择root 还是shell 权限,直接返回shell 权限。因此您必须需要 中的第
126行:
ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
===> ifneq (,$(filter userdebug user eng,$(TARGET_BUILD_VARIANT)))
(3)在android L (5.0) 以后, google 默认开启SELinux enforce mode, 需要在user
build 上将su label 默认build 进SEPolicy.
放开SELinux 的限制. 更新alps/external/sepolicy/ 116 行, 将su
label 默认编译进入sepolicy.


发布评论