装完不生效排查思路
模块装上了、手机也重启了,后台应用却一个都没冻住——这是 NoActive 最常见的求助。本篇按命中率从高到低给出排查顺序,多数人在前三步就能找到原因。相关文档:墓碑机制与后台冻结原理.md · 冻结规则与豁免搭配.md
一、先确认「生效的判据」是什么
打开 NoActive,进入「用户应用」切到「运行列表」:随便开一个应用再退回桌面,几秒后列表里该应用显示「已冻结」就是生效了。列表里什么动静都没有,才算「不生效」——个别应用没被冻住是规则问题(它可能正在通话、定位、播放,本来就在豁免名单里),去看 冻结规则与豁免搭配 就能对上号。
二、按命中率排查
① 作用域没勾「系统框架」,或勾了没重启。 模块的作用域是系统框架,LSPosed 里没勾等于没装;勾完不重启也等于没勾——作用域必须重启手机才加载。这是命中率最高的原因,先查它。
② 冻结方式和内核不匹配。 「运行列表」全都没动静时,到右上角设置换冻结方式,按内核对号入座:
| 你的情况 | 先试 |
|---|---|
| 内核 5.0 及以上 | V2,再试 API |
| 4.19 内核的 MIUI / HyperOS / RealmeUI / ColorOS | V1 |
| 其他 4.19 及以下 | KILL 兜底 |
切换后重启一次再回「运行列表」实测。KILL 档有已知的机制短板(内存吃紧时可能被系统整体解冻、回前台或重载),能冻住就先用,之后再逐步往 V2 / API 迁。
③ 系统框架没有权限读写冻结器。 部分机型的系统框架碰不到 Freezer 目录,设置里有「提权模式」开关,打开再试。
④ 环境本身不达标。 没 Root、没装 LSPosed、系统低于 Android 12,装上安装包也不会有任何效果——这不算故障,是前提缺失。
三、都不行时的最后手段
社区流传的最后兜底是把冻结方式切到 Kill -19,并在每次开机后以 root 执行一条放行 SELinux 策略的命令(效果不跨重启)。嫌麻烦可以写进开机脚本,具体写法随 Root 管理器不同而不同。走到这一步还冻不住的机器,基本是移植包或第三方内核的环境问题——换回原生系统包与内核再试,是社区反复验证过的建议。
四、冻住了但不舒服的两种情况
- 切回前台要重载:多与 KILL 方式有关,换 V2 / API 观察是不是改善。
- 个别应用冻结后行为异常:先把它加白名单止血,再开「定时解冻」观察;频繁无响应的应用去日志里找 error 级记录定位。
排查依赖的两样东西——运行列表与日志的用法、四种冻结方式的完整对照——在 NoActive 介绍站 都有展开;机制层面的疑问(冻结为什么不重载、省电从哪来)先读 墓碑机制与后台冻结原理。