1. 程式人生 > >android user版本如何打開root權限

android user版本如何打開root權限

got valid apk daemon 易懂 t權限 allow andro err

首先您要確認您是想開啟adbd 的root 權限,還是讓app 也可以拿到root 權限。

(1). adbd 的root 權限
我們通常在debug user 版本問題時, 或者進行user 版本的monkey test 時都會這個工作,以便debug.

如果你想user 版本adb root 權限默認關閉, 而在想開啟時, 可以通過工程模式中的設置項開啟, 那麽請USER2ROOT 功能。
此功能默認關閉, 如果開啟, 需要在ProjectConfig.mk 中設置: MTK_USER_ROOT_SWITCH = yes

(2). app 的root 權限
app 的root 權限通常是通過執行su 命令來獲取。註意的是KK 上, 因為多種限制, 普通的su 難以直接拿到root 權限, 需要做針對性的改動.
通常我們會內置具有控制端的第三方su, 下面以內置SuperSU, 以及使用Google default su 為例進行說明。

(3). 如何內置第三方SuperSU
該方式可以繞過zygote 和 adbd 對Root Capabilities BoundSet 的限制.
3.1. 下載SuperSU
SuperSU: http://forum.xda-developers.com/showthread.php?t=1538053

3.2. 內置Superuser.apk 到 system/app
將su 復制並改名成: daemonsu
內置su 到 system/xbin
內置daemonsu 到 system/xbin
內置chattr 到 system/xbin
內置chattr.pie 到 /system/xbin

3.3. 內置install-recovery.sh 到system/etc
更新alps/system/core/inlcude/private/android_filesystem_config.h
在android_files 數組的最開始新增.
{ 00755, AID_ROOT, AID_ROOT, 0, "system/etc/install-recovery.sh" },

(4). 如何內置Google default su
4.1 放開Google default su 只準shell/root 用戶使用的限制.
system/extras/su/su.c 中刪除下面3行代碼
if (myuid != AID_ROOT && myuid != AID_SHELL) {
fprintf(stderr,"su: uid %d not allowed to su\n", myuid);
return 1;
}

4.2 首先將此編譯出的su 內置到system/bin, 然後修改su 的內置權限,啟用sbit 位.
更新alps/system/core/inlcude/private/android_filesystem_config.h
在android_files 數組中
增加
{ 06755, AID_ROOT, AID_ROOT, 0, "system/bin/su" },
註意這行要放在
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/*" },
之前

4.3 如果是KK 以及以後版本, 需要強行解除zygote 和 adbd 對Root Capabilities BoundSet 的限制
更新kernel/security/commoncap.c 中 cap_prctl_drop 函數為:
static long cap_prctl_drop(struct cred *new, unsigned long cap)
{
//begin: Let ‘zygote‘ and ‘adbd‘ drop Root Capabilities BoundSet ineffectively
if (!strncmp(current->comm, "zygote", 16)) {
return -EINVAL;
}
if (!strncmp(current->comm, "adbd", 16)) {
return -EINVAL;
}
// add end
if (!capable(CAP_SETPCAP))
return -EPERM;
if (!cap_valid(cap))
return -EINVAL;
cap_lower(new->cap_bset, cap);
return 0;
}
重新編譯系統, 重新download 後, adb shell 進入後再輸入su 看看是否命令行由$切換到#, 如果切換即成功。

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow

android user版本如何打開root權限