手机root之Su

下面讲的是非内核Root 关于内核Root我还不是很清楚具体原理 替换Su文件的方法倒是很简单

东西很基础 大神可以不用看了

论坛里面总有人在感叹XX一键Root很牛逼 最新的Rom一下就可以Root了
刚刚看到个帖子说他用XX一键Root一下就Root了 然后又不喜欢XX的产品 最后绕了半天 把XX的Root又替换成了SuperUser

其实Root真的没这么神秘 也没这么麻烦

当一个软件要做一些超过普通权限的时候 它会运行环境变量PATH下的su这个可执行文件来提升自身权限到Root权限 而出于安全考虑 未Root的系统是没有这样一个文件的 运行这样一个文件会失败
而Root要做的事情就是在环境变量PATH所包含的目录下添加一个可以用的su可执行文件 使得提升权限的行为被允许
通常在PATH下的目录有:
/sbin
/vendor/bin
/system/sbin
/system/bin
/system/xbin
一般把su文件放到/system/xbin下

对于一个BL已解锁的系统 这个过程很容易
因为在BL作链式启动 移交系统控制权的时候/system这个分区没有被锁 是可写的 虽然在安卓系统启动的过程中这个分区又被挂载为只读的了 而且要重新挂载这个分区为可读可写这个操作又需要提升到Root权限(变成了一个环)
没关系 我们可以通过Recovery来修改/system分区 在Recovery模式下几乎所有的分区都是可写的 因此通过刷入zip包的形式就可以添加上面提到的su文件
个人比较喜欢干净的系统 不喜欢一些奇怪的公司对我的手机动手脚我还完全不知道 下面推荐几个相对干净的zip包 都是官网的 值得信赖:

SuperUser(老牌Root软件)
官网: http://androidsu.com/superuser/
在里面选择自己喜欢的Arm的版本即可

SuperSu (新贵 也是我选择的Root管理软件)
官网: http://download.chainfire.eu/supersu
这个地址会自动链接到最新的版本 现在最新的应该是1.65

下载对应的zip包 进recovery 刷入 重启 root结束了 其实就这么简单
如果感兴趣可以把zip包解压缩 可以看看里面的结构 META文件夹不用理会 是描述zip包的 剩下的部分就是将被刷入的文件
可以看到 就一个su文件和一个权限管理软件(SuperUser或者SuperSu) 很清晰

另外关于su文件的原理问题 它的原理和linux下面的su文件是一样的 它的执行权限是s 即这个文件运行时以root身份运行 在程序中再通过setuid的方式将运行su这个程序的用户的权限提升到root
有所不同的是在提升用户权限之前它通常会先询问对应的权限管理软件 然后再决定是否提升权限

你可能感兴趣的:(技术篇,手机)