模块冲突导致无法开机 — 安全模式后逐个排查
典型症状
你刚刚装了一个新模块,重启后发现:
- 系统 bootloop(开机循环进不去)
- 进系统后很快崩溃重启
- 某些系统功能异常(通知栏出不来、相机打不开等)
大概率就是新模块和现有模块冲突,或者新模块本身有问题。
完整排查流程
第一步:安全模式救砖(让系统先活过来)
参考安全模式救砖章节的两种触发方式(音量键或 REC),让 APatch 禁用所有模块。系统成功启动后,打开 APatch 管理器,此时所有模块都显示禁用。
第二步:卸载可疑模块
在管理器的模块列表里,找到你最近新装的那个——如果是单个新装后立即出问题的,优先怀疑它。长按它,选择卸载(不是禁用——禁用只是不加载,但文件还在)。
第三步:重启验证
卸载后重启设备,看系统能不能正常启动。如果能,说明问题就是那个模块导致的,可以考虑不装它或找替代。
第四步:如果还是有问题——二分法定位
如果不知道是哪个模块,或者有多个模块新装后一起出的问题:
- 全部卸载(或全部禁用)
- 一个一个启用——启用第一个 → 重启 → 看系统正常 → 再启用第二个 → 重启 → ...
- 直到找到那个导致问题的模块
这个方法笨但可靠。APatch 模块系统里两个模块不兼容的情况:
- 都想 hook 同一个系统函数
- 都要修改同一个系统文件(冲突)
- 一个模块的脚本依赖另一个模块的存在
第五步:重启后系统还是崩溃
安全模式启用后系统仍然崩溃——可能是撤回 post-fs-data 修改失败导致的,再强制重启一次试试。还不行就刷回原厂 boot。
模块类型与常见冲突
| 模块类型 | 常见冲突原因 |
|---|---|
| Zygisk 类 | 多个 Zygisk 实现不能同时装(ZygiskNext vs NeoZygisk 等) |
| 系统 UI 修改类 | 改 SystemUI 的多个模块互相覆盖 |
| 字体类 | 两个字体模块叠加后可能乱码 |
| SELinux 修改类 | 多个模块追加 sepolicy.rule 可能产生规则冲突 |
模块消失了?
APatch 在提交 b843480 之后放弃了对 module.img 的支持。任何在此版本之前安装的 APM,升级到 CI build 10977 及后续版本后会彻底丢失——需要重新安装。
这个问题不会导致 bootloop,但模块会突然消失,别慌。
避免冲突的建议
- 安装新模块后立即重启验证,不要攒好几个一起装
- 从可信来源下载模块(GitHub 仓库、官方 Telegram 群)
- 模块描述里如果写了"和 XX 模块不兼容",仔细看
- 定期备份模块配置(特别是 module.prop 和脚本)