adb 调试获取root权限
来源:互联网 发布:数据恢复后表格打不开 编辑:程序博客网 时间:2024/05/01 18:59
adb 的root 权限是在system/core/adb/adb.c 中控制。主要根据ro.secure 以及 ro.debuggable 等system property 来控制。默认即档ro.secure 为0 时,即开启root 权限,为1时再根据ro.debuggable 等选项来确认是否可以用开启root 权限。为此如果要永久性开启adb 的root 权限,有两种修改的方式:
1. 修改system property ro.secure, 让ro.secure=0。
2. 修改adb.c 中开启root 权限的判断逻辑。 下面详细说明这两种修改方式:
第一种方法. 修改system property ro.secure, 让ro.secure=0。
(1)修改alps/build/core/main.mk
ifneq (,$(user_variant))
# Target is secure in user builds.
ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=1 将ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=1 改成 ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0 (2)在android JB 版本(4.1) 以后,google 从编译上直接去除了adbd 的user 版本root 权限, 为此您要修改system/core/adb/Android.mk 中的编译选项ALLOW_ADBD_ROOT, 如果没有打开这个选项,那么adb.c 中将不会根据ro.secure 去选择root 还是shell 权限,直接返回shell 权限。因此您必须需要Android.mk 中的第126行:
ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
===> ifneq (,$(filter userdebug user eng,$(TARGET_BUILD_VARIANT)))
第二种方法. 修改adb.c 中开启root 权限的判断逻辑。这里针对4.1 以后版本 和4.1以前版本有所区别。
(1).如果是JB 4.1 以后版本,直接修改函数should_drop_privileges() 函数, 清空这个函数,直接返回 0 即可。返回0 即开启root 权限。 (2).如果是JB 4.1 以前版本,直接修改函数adb_main 函数,在
/* don't listen on a port (default 5037) if running in secure mode */
/* don't run as root if we are running in secure mode */
if (secure) {
struct __user_cap_header_struct header;
struct __user_cap_data_struct cap; if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) != 0) {
exit(1);
}
在这段代码前加一行: secure = 0; //mtk71029 add for root forever. /* don't listen on a port (default 5037) if running in secure mode */
/* don't run as root if we are running in secure mode */
if (secure) {
struct __user_cap_header_struct header;
struct __user_cap_data_struct cap; if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) != 0) {
exit(1);
}
[测试与确认]
当修改完成后,只需要重新build bootimage ,然后download 即可,然后到setting 中开启debug 选项,adb 连接后,会显示 #, 即root 成功。 如果贵司没有拿到adb 的source, 而贵司又需要自己修改adb 的话, 那么就麻烦贵司提交eService。由我司进一步协助贵司处理。
[相关FAQ]
JB 版本后user build + eng bootimage 无法开机
如何打开user debug选项
JB 4.2 user 版本的开发选项不见了,如何打开adb debug
- adb 调试获取root权限
- 获取adb root权限
- 获取adb root权限
- 获取adb root权限
- Adb shell获取root权限
- adb shell获取root权限
- adb shell获取root权限
- adb shell获取root权限
- adb shell获取root权限
- adb 获取root权限----adb命令集合
- Android开发--开发调试Root权限的获取以及用adb 抓取log
- Android adb等 获取root权限
- 如何使机器获取adb root权限
- android adb shell 获取root权限
- (转)adb shell获取root权限
- android5.1 获取adb shell root 权限
- android 常用adb 和 adb shell 命令 获取root权限
- android 添加 adb root 67754400 命令获取root权限
- Google的9条创新原则
- UITapGestureRecognizer 的用法
- spinlock与linux内核调度的关系
- IncrediBuild工具使用及设置(转)
- 解决 .bashrc: 行 1: 未预期的符号 `(' 附近有语法错误
- adb 调试获取root权限
- 如何成为一个技术“牛人”
- 利用bochs 调试内核(转载)
- [Unity-7] Update和FixedUpdate
- 23的男生女生都该看.看完你会变一个人
- iOS:堆(heap)和栈(stack)的理解
- 寶磯概說说
- Hibernate更新部分字段浅谈
- 折腾数组