Root的流行

2012年,应该是Root最流行的时候。一时间,各类“一键Root”应用层出不穷:360一键Root、KingRoot、百度一键Root……或许是对当时仍不完善的安卓4.0感到不满意,又或者是渴望对手机进行进一步美化——换字体、换主题、换系统……Root这个词仿佛走进了千家万户。当时,博主就把自己的Samsung i9300 Root了,还有父母的两台三星。说到底,什么是Root?

最高权限

类比Windows上的“Administrator”,Linux系统中也存在着最高权限的用户,称为根用户,翻译过来便是root

对操作系统中的内容进行处理,是需要权限的,涉及到的信息越重要,需要的权限级别就越高。手机中的「根权限」和电脑上的「管理员权限」是相似的,都是管理该系统的权限等级,只不过前者比后者级别更高。可以简单地认为:取得了Root权限就等于**拥有了整个系统中至高无上的管理权,许多在原来「无权」的状态下不能做的事情,现在都可以做了**,例如等。

(当时,似乎并没有“锁系统分区/system/”这一说,因此确实可以增删改手机中的系统文件。小米可能有限制?忘了)

本质上,安卓系统也是基于Linux内核的,因此也有这样的特殊用户存在。但是,出于对安全方面的考虑,厂商默认会将超级用户的权限隐藏,又或者是仅允许系统应用开启。你也不想用户自己拿到Root权限瞎搞然后损坏软/硬件还得你来背锅吧,厂商?

获取Root权限,本质上,就是让手机用户可以直接接触到“超级用户”。

但是厂商并不会善罢甘休~~得罪了方丈还想跑?~~绝大部分厂商都对Root有着严格的限制。第一点便是解BL锁。这里会在{% post_link %}里详细说明。

“无尽”的自由

Root能干啥?能玩的实在是太多了!

最开始,人们Root无非是为了两点——卸载厂商自带的牛皮癣软件,或者是美化当时的系统(更换字体)。

Root之后可以说赋予了安卓更多的玩法:你可以对应用界面进行深度个性化定制——某易云的广告啥的统统扔掉、直接听VIP音乐;又或者是在知乎/贴吧上冲浪时使用更多便捷的功能……

再比如,博主喜欢听音乐,因此安装了蝰蛇音效——Viper4Android来进行细微的调音。说不定以后会出一篇蝰蛇音效调教指南呢~

此外,博主在手机上还装了状态栏歌词、息屏歌词等模块。无他,唯装逼尔~

放一张讲座的PPT照片:

传统Root?

当时,涌现出各种“一键Root”工具——360一键Root、KingRoot、百度一键Root……本质上,它们都是基于安卓内部的漏洞,通过修改系统文件的方式,达到“我Root我自己”的目的。但是,直接修改系统文件是留有风险的,而想三星S4这种整合了Knox熔断机制的,只要Root就会永久性丧失安全性(无法使用Samsung Pay等)。因此,传统的Root方法并不完美。Android 6.0之后,谷歌也意识到了这一点,开始给厂商施压。随着旧的漏洞被修复,一键Root工具也失去了用武之地。人们急需一种新的方法来获取Root权限。

这里要讲一下Google在Android 6.0中新引入的机制——SafetyNet.

SafetyNet

SafetyNet 提供了一组服务和 API 来保护您的应用免遭各种安全威胁,包括设备篡改、不良网址、潜在的有害应用以及虚假用户等。 ——Android 开发者

“简单来说,SafetyNet 就是系统完整性的检测程序。通过 SafetyNet,系统会了解到其本身是否被修改 (例如补入 su 文件、修改系统文件、解锁 Bootloader、刷入第三方 ROM 等)。一旦未通过 SafetyNet,设备就无法通过验证,从而导致刷机的用户无法使用 Google Play、Netflix 等使用了 SafetyNet 功能的应用,也无法获得任何 OTA 更新。这是当时刷机玩家们最头痛的问题。”—— Magisk | 开启 Android 玩机世界 - 知乎

Magisk来咯!

2015 年 10 月,Chainfire 在 XDA 论坛上发布了在 “无需修改系统文件获取 Root 权限” 的实验性方法。

同年 11 月,受 Chainfire 的启发,国人开发者吴泓霖将此方法应用在了 HTC One (M8) 设备上 。这就是Magisk的雏形。

在下一章,我们会讲一讲 传统Root和Magisk的区别