Android(安卓)的提权(root)原理【转】
Android的内核就是Linux,所以Android获取root其实和Linux获取root权限是一回事儿。
su还需要所有者(Owner)是root才能正确的给其他程序赋予root权限。linux系统中,当前用户执行的程序,该程序进程的 有效用户ID(Effective UID)就是当前用户,但拥有s(set uid)权限的程序,其进程的有效用户ID是这个程序的所有者。换句话说,有set uid权限的程序,运行之后,就相当于所有者运行了这个程序,如果所有者是root,那这个进程也拥有root权限。能够正常授权的su,其所有者必须是root,否则不能正常授权。没有root权限的情况下,我们可以通过chmod来设置s权限,但是不能使用chown来修改su的所有者为root(提示Unable to chown su: Operation not permitted)。
现在root流程一般是zergRush破解root权限,然后用root权限启动adbd,电脑端用adb登陆之后直接就拥有了root权限,然后设置su权限和所有者,重挂载system使system可写入,然后拷贝su到/system/xbin/并安装SuperSu,重启手机。这个过程还可以变成 安装SuperSu,破解root权限,设置su的权限和所有者,重启手机,执行su,重挂载system,拷贝su自身到/system/xbin。看到了吗,获取root权限跟system不可写没有关系,重挂载system并拷贝su到xbin只是为了让应用程序更容易调用su罢了。
权限应该是chmod 4777 /system/bin/su
;
作者:吴利文
链接:https://www.zhihu.com/question/21074979/answer/18291828
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
转载于:https://www.cnblogs.com/linhaostudy/p/9176577.html
更多相关文章
- Activity的启动和创建
- Android(安卓)mediaPlayer播放报PVMFErrNotSupported Prepare fa
- 第三部分:Android(安卓)应用程序接口指南---第五节:计算---第一章
- 第3章 创建应用程序和活动
- Android(安卓)显示原理简介
- Android初级开发(八)——手机多媒体—音频和视频的使用
- 把简单的老Android(安卓)App项目转移到Android(安卓)Studio
- android 钓鱼程序
- Qt for android 在中英文不同的环境下自动识别更换APP和应用程序