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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值