Root (Android)
Root是Android系统的一个术语,它使得用户可以获取Android操作系统的超级用户权限。Root能够帮助用户越过手机制造商的限制,得以卸载本身预装的程序,或执行需要系统权限的动作。Android系统的Root与苹果iOS系统的越狱类似。
原理
多数的手机制造商不支持获取Root权限[1]。因此,大多数获取Root的方法都是使用特定工具借助系统漏洞或官方后门实现的。不同手机厂商、系统和版本可能存在的漏洞不同,因此不同手机的Root原理、方法、难度都可能不同。Root需将su可执行文件复制到Android系统的/system分区下(例如:/system/xbin/su
)并用chmod命令为其设置可执行权限和setuid权限。为了让用户可以控制Root权限的使用,防止手机上的任意应用程序直接获得Root权限,用户通常还会将Root管理程序复制(安装)到/system/app,用以管理su程序的使用。
常见获取方法
曾经被广泛利用的系统漏洞之一是zergRush,该漏洞适用于Android 2.2-2.3.6系统[2],因而适用于很多Android系统手机。其他漏洞还有Gingerbreak[3]、psneuter[4]等等。一些“一键root”类工具(例如:Kingroot)正是利用这些Android系统漏洞来获取root权限。不过,这类方法随着Android版本更新,漏洞封堵导致无法使用。
Magisk是当前Android社区用来获取root权限的主流方式,其作为一套用于定制Android的开源工具,支持高于Android4.2的设备。同时,Magisk特殊的运作机制还赋予了它systemless的特质。systemless让Magisk在不修改/system以及/vendor的情况下,可以有针对性地隐藏root,亦可暂时隐藏Magisk本身。
其他的root方式还有KernelSU,支持修补init_boot或修改boot实现root(在GitHub上有官方提供的boot镜像,可使用fastboot刷入或recovery刷入)。此root方式与Magisk不同,且使用此方式root后隐藏的效果比Magisk更好。
工具
曾经广泛利用的zergRush漏洞必须在adb shell下运行[5],而adb shell只能将手机用USB数据线与PC连接之后才能开启,因此常用的Root工具都是PC程序,透过Android系统的adb shell运行漏洞利用程序。亦有部分工具能直接在Android设备上运行。
部分用户已开发Android设备上直接运行的Root工具。通常只对部分系统或机型适用,部分用户会无法成功Root或效果不佳。程序通常简易操作,不需亲自执行,但同时也带来强制安装授权管理软件,并间接剥夺授权自由等问题。
在Android 6.0以前,绝大部分Android的平台设备可以使用SuperSU,但SuperSU并不作为Root[2]工具使用而是一个Root后设备的权限管理程序,用于管理Root后设备应用程序的权限问题。由于Android应用程序在获得Root权限后可以完全控制手机,一般推荐用户对于应用程序的权限请求仔细甄别。
所有高于Android 6.0的设备理论上都可以使用Magisk进行获取root权限,主流的Magisk安装方式有两种,一为使用adb工具包中的fastboot命令对Bootloader已解锁设备刷入修补版boot启动镜像,二为解锁Bootloader的设备并刷入第三方 Recovery,通过第三方Recovery对magisk进行安装,然此方法目前已被作者标记为弃用。
在支持GKI 2.0内核的Android设备可使用Kernel SU[6]获取root权限(内核 5.10后),在5.10前的内核(版本4.14+)可透过自行编译内核使用,KernelSU可以与Magisk相同的方法安装,也可以透过fastboot及Kernel flasher等方式直接刷入内核安装。
争议
由于Root并非官方支持的行为,手机厂商对进行过Root的手机的保修政策目前存在争议。亦有部分厂商明确称为Root后的手机提供免费维护,但通常仅限于重装手机的系统,不包括数据保全、硬件保修等服务。
大多数手机厂商为避免用户Root或使用第三方系统,加入了分区保护机制,未解锁(BootLoader)的情况下无法进行Root或刷机操作。
为避免信息安全风险,以Google Pay与三星的Samsung Pay为首的内核级支付系统,不允许Root过的手机执行,而支付宝等第三方支付程序则一般不受此影响。[来源请求]
在解锁Root后华为自带支付保护中心不再对QQ或支付宝此类支付APP提供安全服务。[来源请求][何时?]
2017年9月,魅族宣布旗下各机型的Flyme系统将停用开放Root功能,且以后不再开放[7]。但在2018年7月,魅族时任CEO黄章下令Flyme彻底开放Root授权[8]。
2019年2月,vivo宣布iQOO将开放Bootloader解锁权限和类原生ROM支持,然而时至今日这项承诺没有任何进展。iQOO系列手机依然是无法解锁Bootloader,更妄谈Root之类的高级权限。
以往的小米手机用户只需要刷入开发版MIUI即可获得Root管理权限,然而新发布的小米手机已不再开放开发版下加载口。用户如需刷入开发版需在小米社区申请开发版内测。通过审核之后才能获得开发版下载链接。
参见
参考资料
- ^ root为什么不受官方支持. DroidLessons. 2011-02-15 [2011-12-18]. (原始内容存档于2011-12-23).
- ^ 2.0 2.1 CVE-2011-3874: zergRush漏洞的详细描述. National Cyber-Alert System. 2012-01-27 [2012-10-21]. (原始内容存档于2012-10-19).
- ^ CVE-2011-1823: Gingerbreak漏洞的详细描述. National Cyber-Alert System. 2011-06-09 [2012-10-21]. (原始内容存档于2012-10-18).
- ^ CVE-2011-1149: psneuter漏洞的详细描述. National Cyber-Alert System. 2011-04-21 [2012-10-21]. (原始内容存档于2012-06-09).
- ^ zergRush源代码. The Revolutionary development team. 2012-01-27 [2012-10-21]. (原始内容存档于2016-02-07).
- ^ KernelSU/docs/README_TW.md at main · tiann/KernelSU. GitHub. [2023-10-08] (英语).
- ^ IT之家. 重磅!魅族Flyme将关闭手机ROOT功能,再开放后会无期. 搜狐. [2017-09-14]. (原始内容存档于2017-09-14).
- ^ IT之家. 黄章下令:魅族Flyme彻底开放手机Root授权. IT之家. [2018-07-04]. (原始内容存档于2018-07-30).
- ^ 百度百科-Magisk. baike.baidu.com. [2023-07-31]. (原始内容存档于2023-07-31).