android user版本如何打开root权限
来源:互联网 发布:淘宝网休闲女装套装 编辑:程序博客网 时间:2024/06/04 20:12
首先您要确认您是想开启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 看看是否命令行由$切换到#, 如果切换即成功。
- android user版本如何打开root权限
- android user版本如何打开root权限
- MTK Android user版本如何打开root权限
- MTK Android user版本如何打开root权限
- Android 6.0 如何默认打开user版本的root权限
- [FAQ11862]user版本如何打开root权限
- user版本如何打开root权限
- Android M版本 user软件如何开启adb的root权限
- user版本如何永久性开启adb 的root权限
- 永久开启user版本adb root权限
- recovery user版本adbd具有root权限
- 如何在Android user 版本下打开UART log?
- 如何在Android user 版本下打开UART log?
- android user 版本如何默认adb调试为打开
- 请问如何默认打开Android 的root权限,急急急!
- android 默认打开root权限
- 【Multi-user】如何在L版本上打开Multi-user
- android user用户版本提高adb权限
- android Service的基本使用方法
- 网络服务器预防dos攻击的层次
- java深入分析I/O流工作机制04-NIO 的工作方式
- 对Azure二次开发,解决资源“独占访问”的问题
- 反编译apk,class->class.jar,jar-->java
- android user版本如何打开root权限
- HDU ACM 1201 18岁生日
- 流量负载均衡的分层
- 彻查网络局部网段内Ping时断时续的问题
- httpd-vhosts.conf配置文件理解
- 实例demo理解面向接口思想
- 安装 rubygems
- Android 5.1 APIs概述
- nyoj221Tree(二叉树)