MIUI / HyperOS 用户特别注意 — 自动备份原厂 boot 的缺失
问题背景
在所有主流 root 方案里,Magisk 有一个贴心设计——修补 boot.img 时,会自动把原厂 boot.img 备份一份(放在 /data/adb/magisk/ 下)。APatch 没有这个功能。
对于 MIUI / HyperOS 用户,这个差异会导致 OTA 更新时的麻烦。
为什么 MIUI 特别敏感
MIUI / HyperOS 的 OTA 更新有严格的校验机制——它会检查 boot 分区的完整性:
- OTA 更新包下载完成后,系统会检查当前 boot 分区
- 发现 boot 分区被修改过(被 APatch 修补了),校验不通过
- OTA 提示"系统分区已修改,无法增量更新"
- 只能被迫下载完整 OTA 包(几个 GB,比增量包大很多)
Magisk 用户遇到同样的校验失败后,可以用 Magisk 自动备份的原厂 boot 快速恢复再 OTA。APatch 用户因为没有自动备份,恢复原厂 boot 就多了一步——需要手动准备好原厂 boot。
解决方案
方案一:OTA 前手动恢复原厂 boot(推荐)
OTA 更新前,先刷回原厂 boot,再 OTA,再重新修补:
# 1. 刷回原厂 boot
adb reboot bootloader
fastboot flash boot stock-boot.img
fastboot reboot
# 2. 在系统里执行 OTA 更新(正常流程)
# 3. OTA 完重启后,APatch 管理器里执行"安装到未使用槽位"(会自动修补新槽位)
# 或者手动修补新的原厂 boot.img
OTA 恢复原厂 boot 后,校验通过,增量更新包就能用了。
方案二:直接用 OTA 保 root 功能
如果你准备了新系统版本的原厂 boot.img,可以跳过恢复原厂这步,直接用 APatch 管理器的"安装到未使用的槽位(OTA 后)"功能——它本质上就是在新槽位上修补原厂 boot。
关键是你要有新版本系统的原厂 boot.img,而不是旧版本的。这个可以从 OTA 更新包里提前提取。
方案三:忍受全量 OTA 包
如果上面两种方案都嫌麻烦,就让 MIUI 用全量包更新——缺点是下载慢(几个 GB)、安装时间长、更新完还得重新修补 boot。
具体操作建议
如果你是 MIUI/HyperOS 用户,建议把这些操作记下来:
- APatch 安装好后,立刻备份原厂 boot.img 到电脑上(不要只放手机上)
- 每次 OTA 前,确认能拿到新版本的原厂 boot.img(从 OTA 增量包里提取,或等完整刷机包出来)
- OTA 时要么先恢复原厂 boot 再 OTA,要么直接用"安装到未使用槽位"功能
- OTA 完如果开不了机,先刷回原厂 boot 排查
关于开发版
如果你用的是 MIUI 开发版或 HyperOS 开发版,强烈建议每次 OTA 前先恢复原厂 boot——开发版更新频率高、boot.img 变化大,直接修补旧版本 boot 刷到新系统上很容易出问题。