教程适用于 一加 手机,其中大部分内容也适用于大部分 Android 设备。
例如 运行 EMUI 8+ 的 华为 手机,因为它们的 Bootloader 无法通过官方途径解锁,而且更重要的是它们不遵循标准的 Android 分区方案,无法使用标准的方法获取手机的 Root 权限。
再例如 运行 Android 9.0+ 的 三星 手机(2019+ 年新设备),解锁 Bootloader 时将熔断 KNOX(安全模块),无法使用 三星支付 等 安全功能,并且在首次安装 Magisk 时需要完整的数据擦除 和 额外操作,并且无法进行 OTA 更新。
解锁与回锁 Bootloader(仅 一加)
请备份手机中的所有数据,因为无论是解锁 Bootloader,还是回锁 Bootloader,都会擦除手机中的所有数据。
解锁 Bootloader
1,启用“开发者设置”,启用“OEM 解锁”。
2,进入 Fastboot,输入 fastboot flashing unlock。
3,在手机上使用 音量 + - 选择到 "Unlock" 选项。
4,重启手机,自动擦除数据。激活后,再次启用“开发者设置”。
5,如果“OEM 解锁”为 灰色 并 无法切换。那么,解锁成功。
回锁 Bootloader
1,确保手机中的环境无篡改 和 A/B 槽位中所有分区相同,建议先本地升级两次当前版本的卡刷包 或 刷入当前版本的完整包。否则你将无法开机。
2,进入 Fastboot,输入 fastboot flashing lock。
3,在手机上使用 音量 + - 选择到 “Lock”选项。
4,重启手机,自动擦除数据。激活后,再次启用“开发者选项”。
5,如果“OEM 解锁”为 关闭状态。 那么,回锁成功。
一加手机如何进入 Fastboot 模式?
在手机开机状态下,使用 ADB 命令 adb reboot bootloader 重启到 Fastboot。
在手机关机情况下,在按住电源键的同时按住音量 - 键,在看到 Fastboot 图标后松开所有按键。
获取手机 ROM包 或 boot.img 或 init_boot.img
一加、小米(红米)、Pixel 等
前往 ROM包 下载网站,下载 对应 当前机型 和 系统版本 的 线刷包 或 卡刷包:
线刷包:解压缩,进入 images 文件夹,找到 boot.img 或 init_boot.img。
卡刷包:解压缩,使用 payload-dumper-go 工具解包 payload.bom,找到 boot.img 或 init_boot.img。
无 ROM包 的 手机、工程机、山寨机 等
userdebug 系统
进入 ADB Shell,输入 su,此时 提示符 从 $ 变为 # 则说明 已获得 命令行 Root 权限。
使用 dd 命令 提取分区:
1,执行 cd /dev/block/platform 进入 platform 文件夹。然后 执行 ls 列出 该文件夹 中的所有内容。
2,如果看到 by-name,执行 cd by-name。然后 执行 ls -l 列出 各分区 的实际位置。
3,执行 dd if=分区路径 of=/sdcard/你要提取的分区的名称.img,文件会保存到 ,分区 镜像文件 会保存到 sdcard 根目录。
非 userdebug 系统
可解锁 Bootloader
进入 Fastboot,输入 fastboot oem unlock 或 其他 解锁命令。(大概率失败)
已解锁 Bootloader
安装 Treble Check,如果手机 支持 Treble 标准的话 并 已解锁 Bootloader,可进行下一步。
安装 DSU Sideloader,使用 ADB 激活,下载 当前 Android 版本 的 GSI(不带 GMS,Userdebug 版本) 并 侧载。
使用 通知栏 上的 重启 按钮 进入 GSI 系统,使用 上文 userdebug 系统 的 提取 方法 提取分区。
可使用 深度刷机 的手机
高通 Qualcomm
进入 9008 EDL 串口刷机 模式,使用 QPT 工具 回读 分区。Patch 后再将 分区 刷写 回手机。
联发科 MediaTek
进入 Bootrom 模式,使用 SP Flash 工具 回读 分区。Patch 后再将 分区 刷写 回手机。
刷入 Magisk、KernelSU 或 APatch
Magisk 是通过修补 boot.img 或 init_boot.img 中的 Ramdisk 实现通过 MagiskInit 加载 SystemLess,实现不修改 system 分区获取 Root 权限。
刷入 Magisk
方案 1:获取当前系统的 Ramdisk 并使用 Magisk 管理端修补后刷入获取 Root 权限。
内核版本大于等于 Android 13 的机器(非 Android 版本),需要修补 init_boot.img,否则修补 boot.img。
方案 2:将 Magisk 卡刷进手机后安装管理端修补 Ramdisk 获取 Root 权限。
1,需要安装 Twrp、OrangeFox 等第三方 Recovery 才能执行此操作,并需要使用最新版本或高版本的 Magisk 安装包进行卡刷。 2,一加手机如何进入 Recovery 模式?
在手机开机状态下,使用 ADB 命令 adb reboot recovery 重启到 Recovery。
在手机关机情况下,在按住电源键的同时按住音量 - 键,在看到 Fastboot 图标后松开所有按键,进入 Fastboot 后,使用 Fastboot 命令 fastboot reboot recovery来重启到 Recovery。
在手机关机情况下,在按住电源键的同时按住音量 - 键,在看到 Fastboot 图标后松开所有按键,进入 Fastboot 后,使用 音量 + - 键选择 Recovery Mode 并按下电源键确认,手机重启后将进入 Recovery。
刷入 KernelSU
KernelSU 是通过 已带 KernelSU 的 GKI 内核获取 Root 权限,或修补 boot.img,注入 AnyKernel3 实现 模块 注入 内核 工作。 你的手机需要支持 GKI 内核才可以刷入 KernelSU,否则请自已编译包含 KernelSU 的内核 或 使用其它 Root 方案(类似的 Root 方案:APatch)。 如何判断你的手机是否支持 GKI 内核:安装 KernelSU 管理端,进入后如果显示 “未安装,点击安装”则你可以直接刷入 KernelSU。若显示“不支持”,则需要手动编译内核 或 使用其它 Root 方案。
方案 1:获取当前系统的 boot.img 并使用 KermelSU 管理端修补后刷入获取 Root 权限。
方案 2:刷入 KernelSU 提供的 通用内核镜像 获取 Root 权限。
方案 3:使用内核刷写工具刷入对应内核版本的 AnyKernel3 刷机包获取 Root 权限。
对于方案 2,你需要刷入相同 KMI 版本(以内核版本为准,不考虑 SubLevel) 并 大于或等于 当前设备 Android 补丁时间的 boot.img(Android AVB)。 对于所有方案,如果你的手机支持 fastboot boot,那么可以使用 fastboot boot boot.img 来尝试引导。如果出现意外,再重启一次即可开机。 对于方案3,你可以先使用 fastboot boot 引导修补后的 boot.img来获得临时的 Root 权限,然后使用 Kernel Flasher 等内核刷写工具刷入对应版本的 AnyKernel3 刷机包来固化当前的 Root 权限。
刷入 APatch
APatch 的代码来自于 KernelSU 的 复制 和 修改,允许任意的代码注入内核。 它适用于大部分 Android 手机,不仅适用于 GKI 内核设备。适用于理论上 3.18 ~ 6.1 的内核版本。 如何判断你的手机是否支持修补:在终端使用 Root 权限执行 zcat /proc/config.gz | grep CONFIG_KALLSYMS。 如果你的内核配置为: CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y 或以下配置(仅初步支持): CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=n 禁止设置 12345678 等弱密码,新版 APatch 管理器已强制使用强密码。
方案 1:获取当前系统的 boot.img 并设置 超级密钥,然后使用 APatch 管理端修补后刷入获取 Root 权限。
方案 2:将 APatch 卡刷进手机后安装管理端修补 Ramdisk 获取 Root 权限。
1,需要安装 Twrp、OrangeFox 等第三方 Recovery 才能执行此操作(第三方类原生的 Recovery 也可以使用 adb sideload 侧载刷入),并需要使用最新版本或高于 10888 的 APatch 安装包进行卡刷。 2,需要将下载的 APatch 安装包后缀改为 .zip。 通过这种刷入方法会使用 随机数字 + 字母 的 超级密钥 组合。
方案 3:获取当前系统的 boot.img 并设置 超级密钥,然后使用 Kernel Patch on WEB 修补后刷入获取 Root 权限。
Root 后的注意事项
不建议在 Root 后更新系统,因为有可能你的 Root 权限丢失 或 你的手机变砖,所以除非你有很好的 保留Root方法 和 变砖后的救砖方法。
Data 分区加密 & AVB 校验
出场 Android 10 及以上的手机 都有 Data 加密,若手机性能过低,可能导致闪存访问速度下降,并在 Recovery 等环境下,不解密 Data 分区,就无法访问 /sdcard 中的数据
取消 Data 分区 & AVB 校验:删除 vendor 分区中的 fstab 文件中的 Data 加密代码 和 AVB 校验代码。
刷入新的系统
例如 Pixel OS,下载官方网站提供的 rom.zip、recovery.img 等文件,在 Fastboot 中刷入这些分区,然后 重启到 Recovery,使用 adb sideload rom.zip 安装 ROM,然后清除手机的数据,重启即可。
请刷入前先仔细阅读该 ROM 的 XDA 页面,有些 ROM 需要一个特定的版本的底包才能刷入,否则轻则功能无法使用,重则直接变砖。 另外,类原生的 UI 界面你可能会在一个星期内看腻,而且类原生也没有定制系统的各种服务。所以,为了一个只能保持三分热度的系统清空你的数据,弊大于利。
变砖如何自救
A,对于更改重要分区导致 AVB 验证错误 的手机
从新刷入 禁用 AVB 校验 的 vbmeta.img,指令:fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
B,对于使用 KernelSU 由于模块变砖 的手机
在开机第一屏按下 音量 -,松开,按下,松开,按下,松开。持续 3 次后松开,进入 KernelSU 内置的安全模式卸载导致变砖的模块。
C,对于能进入 Fastboot 的手机 但 不能进入 Fastbootd
进入 Fastboot,使用 欧加真刷机工具 解包当前 机型 和 系统 对应的 payload.bin,其中包括了手机里的所有分区,最后使用“救砖”模式刷入即可。
D,对于不能进入 Fastboot 的手机
对于升级了 ColorOS15 的手机,无法使用免授权的 9008 刷机工具,你可以考虑使用 钞能力(大概 60¥ 到 100¥ 不等) 或 走售后程序解决。
在 酷安 等数码论坛中,找到当前机型对应的 9008 线刷包 和 免受权的 9008 刷机工具,在关机状态下使用快捷键:音量 + 和 音量 - 一起按,然后插上数据线松手,或者 音量 + - 和 电源键 三个键一起按,然后连接数据线,松手进入 9008 刷机模式 使用 刷机工具进行救砖。