OTA 升级保 Root — 安装到未使用的槽位
OTA 更新为什么会破坏 Root
大多数现代 Android 设备(Android 7+)使用 A/B 分区方案:
- 系统有两套分区(slot A 和 slot B)
- 当前运行的系统在 slot A,OTA 更新会把新版本刷到 slot B
- 重启时切换到 slot B,完成 OTA
如果你的 APatch 修补好的 boot 分区在 slot A,OTA 把新系统刷到 slot B 后,slot B 用的是原厂 boot——root 就没了。
APatch 的 OTA 保 Root 方案
APatch 继承了 Magisk 成熟的 OTA 保 root 流程:
步骤 1:正常执行 OTA
像往常一样在系统设置里点击"系统更新",下载并安装 OTA 更新包。
步骤 2:OTA 安装完成时打开 APatch 管理器
系统显示"OTA 安装完成,即将重启"的时候,不要等它自动重启——先打开 APatch 管理器。
步骤 3:安装到未使用的槽位
点击管理器右上角的菜单按钮,选择 "安装到未使用的槽位(OTA 后)"。
管理器会:
- 读取新槽位的 boot.img(OTA 刚刷进去的原厂 boot)
- 用当前版本的 KernelPatch(已经在运行中的内核补丁框架)修补它
- 把修补好的 boot.img 刷到新槽位
- 重启后就会进修补好的新槽位系统
步骤 4:重启验证
重启后进入新系统,打开 APatch 管理器——root 应该还在。
注意事项
APatch 的 OTA 功能目前不太稳定
官方文档明确说:
APatch 的 OTA 功能目前不太稳定,可能会出现问题。 当遇到问题时,最好前往 APatch 项目 GitHub 仓库提交 issue。
极少量情况下会出现切换槽位失败。这时候的补救方式是手动重新修补:
- 重启到 bootloader
- 把当前槽位的原厂 boot 备份下来(或者用刷机包重新提取)
- 手动修补并刷入新槽位的 boot
- 重启
不要等太久
OTA 安装完成后要尽快打开管理器执行槽位安装操作——系统可能会在几秒后自动重启。如果没赶上,重启后 root 就丢了,需要手动重新修补。
关于自动模式
某些版本的 APatch 可能在 OTA 安装完成后自动弹出"安装到未使用槽位"的提示——跟着提示点就行。如果没弹出来,手动去菜单里找。
OTA 失败后的补救
如果 OTA 切槽位失败了:
# 1. 重启到 bootloader
adb reboot bootloader
# 2. 找到当前活动槽位
fastboot getvar current-slot
# 输出 current-slot: a 或 b
# 3. 把修补好的 boot 刷到刚才 OTA 刷的那个槽位(不是当前运行的)
# 假设当前运行的是 slot a,OTA 刷的是 slot b
fastboot flash boot_b your-patched-boot.img
# 4. 重启
fastboot reboot