android user如何打开一个版本号root才干
首先,你要确认你要打开adbd 的root 才干,或者让app 它有可能获得root 才干。
(1). adbd 的root 才干
我们通常debug user 当问题的版本号, 或行为user 版本号monkey test 如果将这项工作,debug.
假设你想user 版本号adb root 权限默认关闭, 而在想开启时, 能够通过project模式中的设置项开启, 那么请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 DevArt1:假设当前Activity为A,如果这时用户打开一个新的Activity B,那么B的onResume和A的onPause哪个先执行呢?
问题描述:假设当前Activity为A,如果这时用户打开一个新的Activity B,那么B的onResume和A的onPause哪个先执行呢? GitHub Demo 废话少说,上代码,Activi ...
- Qt for Android (三) 打开Android相册并选一个图片进行显示
Qt for Android (三) 这两天弄了一下android相册的相关功能.还是花了挺长时间的,这里总结一下,避免以后再踩坑.同时也在这篇文章里面补齐一些android开发的基础支持 打开And ...
- Android课程---Oracle VM VirtualBox出现不能为虚拟机打开一个新任务
因工作需要在Win7下增添了Win7虚拟系统,随着VirtualBox 4.326的版本更新,用户们也开始升级.一用户在升级后发现原来创建的虚拟机无法打开,提示信息为:不能为虚拟电脑win7打开一个新 ...
- [转载] Android Studio 上第一个 Xposed 模块
本文转载自: http://www.open-open.com/lib/view/open1451364108964.html 环境: 已root手机一枚 Android Studio一枚 官方文档参 ...
- android2.3 View视图框架源码分析之一:android是如何创建一个view的?
View是所有控件的一个基类,无论是布局(Layout),还是控件(Widget)都是继承自View类.只不过layout是一个特殊的view,它里面创建一个view的数组可以包含其他的view而已. ...
- Mac下改动Android Studio 所用的JDK版本号
Mac下改动Android Studio 所用的JDK版本号 @author ASCE1885 近期项目从Eclipse+Ant构建模式转移到了Android Studio+Gradle构建模式.自然 ...
- Android调用浏览器打开网址遇到的问题
我自己的手机(一加一代,升级了氢OS),然后在点击游戏内一个"隐私政策"-- 需要打开一个网页,然后就crash了.出错的信息如下: 完全是看不出来,然后我单独写了一个demo来测 ...
- Android 通过网页打开自己的APP(scheme)
Android 通过网页打开自己的APP(scheme) 分类: android2014-07-09 17:35 8565人阅读 评论(2) 收藏 举报 通过用手机的浏览器(内置,第三方都可)访问一个 ...
- Android开发之打开闪光灯录制视频
Android的SDK在线API上对录制视频的方法.步骤都写得非常清楚,但是如果没有一点思路,写起来也比较式费事.录制视频的全过程要打开闪光灯(可能是因为项目需要,或者特殊原因),则必须按照一定的顺序 ...
随机推荐
- EBS并发管理器请求汇总(按照并发消耗时间,等待时间,平均等待事件等汇总)
此数据集用于确定正在使用中并发管理器,并可与实际的在启动时分配的并发管理器.而且考虑完成状态为 正常/警告 的请求. select q.concurrent_queue_name, count(*) ...
- hadoop ,传智播客目录
一.Hadoop入门,了解什么是Hadoop 1.Hadoop产生背景 2.Hadoop在大数据.云计算中的位置和关系 3.国内外Hadoop应用案例介绍 4.国内Hadoop的就业情况分析及课程大纲 ...
- hdu4857 逃生 bestcoder round1 A
题目要求要求在满足约束条件的情况下,使小的序号尽力靠前. 坑点就在这里.小的序号尽量靠前并非代表字典序,它要求多种情况时,先使1靠前(可能1仅仅能在第2或第3位 那么就要使它在第2位),其次2,3. ...
- java 类 及其 执行过程
java 类 命名 java类文件中 只能有一个公开类 且 公开类类名与当前类文件的文件名一致 方法如果使用了static修饰,那么此方法是类方法,可以 类名.方法名 使用. 你的main方法在同 ...
- CCNA CCNP CCIE所有实验名称完整版
实验1:通过Console端口访问Cisco路由器 实验2:通过Telnet访问Cisco路由器 实验3:配置终端服务器 实验4:通过浏览器访问路由器 实验5:模式切换.上下文帮助及查看有关信 ...
- 一步一步学android之事件篇——触摸事件
触摸事件顾名思义就是触摸手机屏幕触发的事件,当用户触摸添加了触摸事件的View时,就是执行OnTouch()方法进行处理,下面通过一个动态获取坐标的例子来学习OnTouchListener事件,效果如 ...
- Web Worker在WebKit中的实现机制
web worker 是执行在后台的 JavaScript,独立于其它脚本.不会影响页面的性能.这是HTML5的一个标准:实现上讲.浏览器为wokrer启动了新的线程,从而实现了异步操作的功能; 以下 ...
- 【从翻译mos文章】在OGG (Oracle GoldenGate) 正在使用SCHEMATRANDATA如果,需要额外的db patch
在OGG (Oracle GoldenGate) 正在使用SCHEMATRANDATA如果.需要额外的db patch 参考原始: Patches needed to support SCHEMATR ...
- Path相关评论的方法(一)
以前的主要是关于Canvas的translate(平移) .scale(缩放) .rotate(旋转) .skew(错切).接下来几篇主要讲下android里的Path(封装了贝塞尔曲线)& ...
- Linux 软连接与硬连接
Linux 软连接与硬连接 对于一个文件来说,有唯一的索引接点与之相应,而对于一个索引接点号,却能够有多个文件名称与之相应.因此,在磁盘上的同一个文件能够通过不同的路径去訪问该文件.注意在Linux下 ...