前言
歡迎大家我分享和推薦好用的代碼段~~
文章原始出處:
CSDN:http://www.csdn.net
雨季o莫憂離:http://blog.csdn.net/luckkof
正文
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
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 權限。
/* 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;
exit(1);
}
在這段代碼前加一行:
/* 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;
exit(1);
}
[測試與確認]
當修改完成後,只需要重新build bootimage ,然後download 即可,然後到setting 中開啓debug 選項,adb 連接後,會顯示 #, 即root 成功。
[相關FAQ]
JB 版本後user build + eng bootimage 無法開機
如何打開user debug選項
JB 4.2 user 版本的開發選項不見了,如何打開adb debug