Google platform-tools 下载
此处省略了驱动安装的过程…以及打开 usb 调试和文件传输 (我想这个我应该不会忘).
Android 分区架构
安卓架构发展要点:
- 只有 onlyA 架构和 onlyA 动态分区架构有单独的
recovery
分区 - AB 分区开始后
recovery
合并在boot
分区 (国内厂商大多没有遵守) - VAB 之后 (出厂 Android11 机型,有厂商没有遵守),
boot
变成了 3 个分区:boot
内核存放分区 dtbo
:屏幕刷新率存放分区vandor_boot
: linux 内核中部分配置文件
三者需要配套,即同时刷入才算替换了 rec
- 出厂 Android13 开始不在将将 Ramdisk 放在
boot
分区,单划了init_boot
分区 - 所有的动态分区都将
system
,vendor
,odm
等合并为super
分区,并区分了fastboot
和fastbootd
(单独的以上分区需要后者才能刷入,前者只能刷入super
)
VAB 和 AB 动态分区的区别
- AB 动态分区架构中的
system_a
,system_b
,boot_a
,boot_b
等均存在,而 VAB 架构中只有*_a
是真实存在的,切换分区不过是重命名的过程 - VAB 架构中多了
system_ext_a
和system_ext_b
两个分区
常用指令
常用 adb 命令
adb devices ##查看连接设备
adb reboot ##重启到系统
adb reboot recovery ##重启到recovery模式
adb reboot bootloader ##重启到bootloader(fastboot模式)
adb reboot fastboot ##重启到fastbootd
adb reboot edl ##重启到EDL
adb sideload <path-to-update.zip> ##通过adb更新系统, 刷第三方rom(注意需要和rec配套, 在recovery模式下进行)
常用 fastboot 命令
fastboot devices ##查看连接设备
fastboot oem unlock ##bl解锁(解锁前往往要在开发者选项中打开oem解锁)
fastboot oem lock ##bl上锁(非必要不上锁)
fastboot oem device-info ##查询bootloader分区解锁状况
fastboot reboot ##重启到系统
fastboot reboot bootloader ##重启到bootloader(fastboot模式)
fastboot reboot fastboot ##重启到fastbootd
fastboot reboot edl ##重启到EDL
fastboot erase [分区名称] ##擦除命令
fastboot format [分区名称] ##格式化命令
fastboot flash [分区名称] <分区路径> ##刷写分区命令
fastboot flash -w update <path-to-update.zip> ##刷写rom命令
常用模式
恢复模式 (Recovery)
简介
Recovery 模式类似于 Windows 下的 PE,是 Android 用于安装系统更新的一种模式.它由一个带有 RAM disk 的 Linux 内核组成,该内核位于与主 Android 系统不同的分区上. 作用如下:
- 使用 Android 调试桥 (adb) 更新系统
- 通过 SD 卡更新系统 (显然对没有 SD 卡的设备无效)
- 恢复出厂设置
- 安装分区
- 运行系统测试 Recovery 需要和使用的系统配套,第三方系统需要刷入第三方 Rec.
Vab 以后机型刷入 Recovery
Vab 机型并没有传统意义上的单独 Recovery 分区,因此,刷入第三方 Rec 时,应该分别刷入 boot, vendor_boot, dtbo 这三个镜像 (三者配套存在,需要同时刷入), 即:
fastboot flash boot <path-to-boot.zip>
fastboot flash vendor_boot <path-to-vendor_boot.zip>
fastboot flash dtbo <path-to-dtbo.zip>
Vab 以后机型刷入 twrp 十分麻烦, 不再建议使用, 而且闭源 Rec 这种东西懂的都懂🤣.
引导模式 (Fastboot)
Fastboot 是一个协议和一个同名的工具.它包含在 Android SDK 包中,主要用于通过来自主机的 USB 连接修改闪存文件系统.它要求设备以 Fastboot 模式启动.如果启用该模式,它将接受一组使用命令行通过 USB 发送给它的特定命令. Fastboot 允许从自定义恢复映像启动.Fastboot 不需要在设备上启用 USB 调试.并非所有 Android 设备都启用了快速启动.要使用快速启动,必须在启动期间按住特定的组合键.
Android 设备制造商可以选择是否要实施 Fastboot 或其他协议.
Fastboot 比 Recovery 更为底层,需要连接电脑并通过fastboot
命令进行操作,见常用 fastboot 命令.常常用来线刷 Rom 或者救砖.
用户空间模式 (Fastbootd)
Fastbootd 是动态分区机型特有的一个模式,属于 Recovery 分区的功能.(容易发现界面的相似) 动态分区机型以一个super
分区囊括了system
, vendor
, odm
等分区,Fastboot 模式只能刷入完整的super
, 不能单独刷入system
, vendor
, odm
. 进入 Fastbootd 即可单独刷入他们 (也是 fastboot 命令).
从 Fastboot 重启到 Fastbootd 的指令是fastboot reboot fastboot
.
深度刷机模式 (EDL)
最底层的刷机模式,理论上只要硬件未损坏都可以救回来. 例:Qualcomm HS-USB QDLoader 9008
(俗称 9008 模式), 联发科的MediaTek USB Port
. 如今大量厂商缩紧了 EDL,导致几乎无法自行使用救砖.
获取 Root
- 解压系统包 (卡刷包,fastboot 线刷包可以直接解压提取)
下载
payload-dump-go
(网址:解包工具)将卡刷包中的
payload.bin
文件放在 payload-dump-go 文件夹内目录下 cmd 执行
payload-dumper-go.exe <path-to-payload.bin>
随后则会提取整个卡刷包,选择所需 (
boot.ing
或者init_boot.img
) 即可注意出厂安卓 13 的机型不再将 Ramdisk 放在 Boot 分区, 需要提取的是
init_boot.img
文件而不是boot.img
文件
- 将对应 Rom 包中的
.img
提取出来放到手机中 - 在 Magisk 软件中选择
选择并修补一个文件
- 将修补好的
.img
文件通过fastboot flash boot <path-to-boot.img>
命令刷入 boot.(一般不需要boot_a
或者boot_b
,官方工具会自动识别分区) (出厂安卓 13 则为fastboot flash init_boot <path-to-init_boot.img>
) fastboot reboot
重启到系统
刷入第三方 Rom
一般第三方 Rom 都有详细教程, 大致分为两类:
- 线刷包直接
fastboot flash -w update <path-to-update.zip>
就行 - 卡刷包则需要
- 刷入对应的
Recovery
; (Vab 以后的机型就是刷入boot
,vendor_boot
,dtbo
这三个镜像)
某些 ROM 此处提供的
boot
未必是完整boot
,修补时不建议选用,有变砖风险- 通过 adb 更新来刷入 (
adb sideload
命令); - 然后
recovery
中清除数据;
- 刷入对应的
清除数据这点很重要, 限于篇幅文中没能介绍「X 清」