目录
1、前置
通用 Root 流程是:
解锁 BL - 刷 REC - 线刷或卡刷刷入 SuperSU 或 Magisk
详细一点:
解锁 Bootloader
用手机数据线连接手机按组合键进入
Fastboot 模式
,使用adb
命令行下刷入 第三方 Recovery:TWRP卡刷:按组合键进入
Recovery 模式(TWRP)
,刷入 SuperSU.zip 或 Magisk.zip 获得 Root 权限,或者刷入 ROM 包.zip 重装手机系统或线刷:数据线连接手机、电脑,按组合键进入
Recovery 模式(TWRP)
,在高级选项里开启 sideload 模式,在电脑上 cmdadb sideload *.zip
相比较优点是:不需要把包传到手机内存中)
1.1 什么是bootloader
在嵌入式操作系统中,Bootloader(系统启动加载器) 是开机载入程式
最主要的作用是引导系统正确启动,它是 Android 操作系统(包括控制台)和手机硬件的桥梁,类似电脑里面的
BIOS (Basic Input and Output System)
。手机开机时,会启动Bootloader
去启动放在 ROM 里面的核心完成手机的开机过程。为了避免
Bootloader
读到非官方ROM
, 一般会在ROM
里面加密、或是有特殊的程序,让Bootloader
可以借此分辩是不是官方ROM
,限制你直接从Fastboot
模式下加载、改写系统分区的一个锁定。解锁就是就是让
Bootloader
跳过这个流程。解锁Bootloader
后,还可以刷新内核、刷 ROM、修改超频...一旦放开 BL,OEM 厂商(
Original Equipment Manufacturer
)会遇到一些麻烦:
合约机的运营商在这部分的利益会受到极大挑战
用户自行刷第三方固件后,厂商将在一定程度上沦为纯粹的制造商,而丢失自己的研发基因
用户刷的
ROM
的稳定性难以保证 所以,OEM 厂商通常在出厂时锁定手机的 BL。所以基于以上种种各家的解锁BL的方式存在很多差异,这个需要根据具体的厂商具体探究
有些人将
Unlock Bootloader
说成刷机模式,但准确来说解锁Bootloader
是刷机的基础,Bootloader
正好处在开机与进系统的中间阶段,真正实现刷机的是在解锁Bootloader
之后安装 Recovery(类似于 Ghost)
1.2 什么是recovery
Recovery(以下简称 REC) 是 Android 手机备份功能,官方的 Recovery 在系统更新时都会启用。
为什么刷入第三方的 REC?
在使用 REC 装系统的过程中,会对刷机包的数字签名进行校验。因而第三方 ROM 是无法通过官方 Recovery 刷入的。
官方的 REC 一般限制较多 (只能刷入官方的固件、补丁、更新等等), 而第三方的 REC 除了能任意刷入第三方 ROM ,还能调整分区大小
所谓第三方 Recovery,也就 CWM 与 TWRP 两款 REC,以及坊间基于它们的各种改款。不过 CWM 已在几年前停摆,目前刷机界是开源的 TWRP 家族独大。TWRP 全称 Team Win Recovery Project,是一个开源社区项目
关于如何刷入第三方recovery这里也不做探讨
1.3 什么是Root
在
Linux
中,我们只需要打上su
命令,就可以拥有root
超级权限。基于Linux
内核构建的Android
系统管理员用户就是root
,该帐户可以访问并修改手机中几乎所有的文件
su
是运行环境变量PATH
下面的一个可执行文件,运行之后,当前用户就会被切换到Root
用户。未Root
的安卓系统没有su
这个文件,所以Root
一个手机,就是将su
文件放入到系统运行环境变量PATH
下面
一键 Root
利用了手机的系统漏洞对进程提权放入su
文件。随着安卓系统的发展,这些漏洞被逐渐修复,早期寻找系统漏洞的方式在大多数机器上无法被使用这时候,我们可以利用第三方的 Recovery 将 su 程序放入系统文件夹
相信像我一样,你小小的脑袋里满是疑惑:为什么几年前 Root 无比简单,下载 KingRoot 就能一键 Root,越变越难:
- Android
2.2
被广泛利用的系统提权漏洞是 zergRush
- Android
4.2
以后需要通过
native
service 拉起 su daemon 之类的服务进程才能正常使用 root 相关功能。
- Android
5
.x 以后更需要搞定 SELINUX 才能正常使用 root 相关功能,Google 在新系统中强制开启了 SELINUX,新设备也会默认自动开启加密。正因如此,大量甚至几乎全部已有的 root 方式都失效了,无法在启动时获得 Superset 超级用户权限。新的授权管理一般都带有类似 seinject 的功能来注入安全策略,依靠替换系统服务如 zygote 等
native
service。
而现今root的方式一般是使用 superSU(2017年已停止维护了)和Magisk,有感兴趣的可自行研究,这里不做展开
2、刷机的方式
2.1 卡刷 (recovery)
平时的手机系统升级,就是卡刷的一种。手机进入 Recovery 模式写入固件压缩包来更新、升级;或是直接进行 OTA 更新。
卡刷本质是 对系统文件替换的过程,不会重新刷写整个分区,只是替换部分系统分区文件实现软件版本升级、更换第三方操作系统。即 ROM 包,它一定是一个 zip 压缩文件,打开卡刷包后里面一般都会有 system 和 META-INF 、boot.img (内核) 等文件与文件夹。
2.2 线刷 (fastboot)
手机连接电脑,用 Android 调试桥接器 (ADB) 直接将 固件、系统底层、驱动程序 等等写入手机,如 Fastboot 模式
线刷是通过数据线连接电脑来进行刷机、系统底包。是手机生产厂商的一种升级方式,针对智能手机系统问题或非硬件损坏的手机故障来刷写固件, 替换和覆盖各个分区 ,使手机功能恢复正常。一般是 tg 压缩文件,里面是一大堆 img 文件,某些底包里也有文件夹
|
一句话总结下:卡刷可以进行简单的刷机和系统更新等操作,线刷则可以进行更深度、更敏感的操作。 线刷彻底,卡刷方便.