一文看懂手机Root的操作与防护 手机root权限怎么开启( 二 )


Znix在Android _ndk_r1版本发布两个月后发布了漏洞 。漏洞利用发布后 , 人们发现在Android上以漏洞的形式获取Root权限是非常可行的 , 随后越来越多的安全人员和爱好者开始在Android上挖掘系统漏洞 , 导致了Android上安全问题的井喷 。但随着Google的不断修复和SElinux的推出 , 闹剧在Android 4.4戛然而止 , Android系统进入稳定期 , Android的根源也进入了新的探索时代 。

一文看懂手机Root的操作与防护 手机root权限怎么开启


使用Linux系统的人都知道 , Linux上有一个程序叫/usr/bin/su , 用户可以通过su命令切换身份 。Android是基于Linux的 。在Android 1.0-4.4版本中 , 默认安装su程序 , 用户使用su可以获得Root , 只要su程序的权限是Access: (4755/-RWSR-XR 。
第二阶段:混沌中的探索 , supersu和超级用户
在Android 4.4版本中 , Google基本修复了Linux中可以用来主张权利的漏洞 , 并限制了利用漏洞主张权利的方式 。对于Android 4.4及以上版本 , Anroid不预装su程序 , 使用SElinux , 即使拥有4755权限的su也无法达到完美Root 。开发者尝试将修改后的su写入Android的/system , 这样就可以通过/system下的su程序执行需要Root权限的程序 。
【一文看懂手机Root的操作与防护 手机root权限怎么开启】写su到/system需要提前解锁安卓手机 , 比利用漏洞解除权限更稳定 。很多大神都开始编写不同的su程序 , 其中最著名的是chainsDD的su和chainfire的suspersu 。但是 , 仅仅获得Root权限还是不够的 , 还需要一个分配Root权限的管理工具 。koush的超级用户正好填补了这个短板 , 让这个系统变得完美 。
然而好景不长 。这种方法引起了谷歌的注意 。在后续版本中 , Google检查了/system等分区的完整性 , 导致无法修改系统分区 。2018年10月 , chainfire宣布不再维持supersu 。另一个开发者以一种巧妙的方式让Root再次成为可能 。
第三阶段:受混沌启发 , 走向统一的Magisk
一个名叫topjohnwu的开发者 , 从supersu中受到启发 , 他仍然使用supersu的原理获得Root权限 , 但是他并不对/system等分区做额外的修改 , 他通过尝试发现 , 虽然/system等分区无法修改 , 但是可以在/system分区下进行添加挂载点 , 于是他用了一种overlay的方法 , 让用户刷写特殊的boot.img , 修改启动时的挂载操作 , 做出了一个overlay版本的system , 所有的操作都在这个system上进行 , 这样就避开了对原有system的修改 , 完成原有supersu的功能 , 而这款软件就是现在大部分人熟知的Magisk 。Magisk不仅完成了获取Root , 并且集成了Root权限的管理器 。一个叫topjohnwu的开发者受到了supersu的启发 。他仍然使用supersu的原理来获得Root权限 , 但他没有对分区(如/system)进行任何额外的修改 。他通过实验发现 , 虽然分区(如/system)不能修改 , 但他可以在分区(如/system)下添加挂载点 。于是他用了一种叠加的方法 , 让用户写一个专门的boot.img , 修改启动时的挂载操作 , 做了一个系统的叠加版 。所有的操作都是在这个系统上进行的 , 从而避免了对原系统的修改 , 完成了原有的supersu功能 , 而这个软件现在被大多数人称为Magisk 。Magisk不仅完成了Root的获取 , 还集成了Root权限的管理器 。

推荐阅读