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

更多相关文章

  1. Activity的启动和创建
  2. Android(安卓)mediaPlayer播放报PVMFErrNotSupported Prepare fa
  3. 第三部分:Android(安卓)应用程序接口指南---第五节:计算---第一章
  4. 第3章 创建应用程序和活动
  5. Android(安卓)显示原理简介
  6. Android初级开发(八)——手机多媒体—音频和视频的使用
  7. 把简单的老Android(安卓)App项目转移到Android(安卓)Studio
  8. android 钓鱼程序
  9. Qt for android 在中英文不同的环境下自动识别更换APP和应用程序

随机推荐

  1. ASP.NET Core中用户登录验证实现最低配置
  2. 有关ASP.NET中Config文件的读写讲解
  3. C#中foreach与yield的实例详解
  4. asp.net实现生成缩略图及加水印的方法示
  5. asp.net mvc中实现Forms身份验证身份验证
  6. C#中强制转换与尝试转换的实现方法
  7. C#中实现复制与删除文件的方法
  8. ASP.NET如何实现Hadoop增删改查
  9. C#通过KD树进行距离最近点的查找的实例分
  10. C#实现操作字符串的方法总结