NoActive 允许自启 - 非跳转启动的放行配置
自启拦截背景
NoActive 可以通过 MasterConfig 的 startLimit 配置全局拦截用户应用的非跳转启动。这意味着:
- 用户手动点击图标启动 → 正常允许
- 应用被广播唤起 → 被拦截
- 应用被 Alarm 定时唤起 → 被拦截
- 应用 Service 自动启动 → 被拦截
但某些应用有合法的后台启动需求,需要放行。
允许自启的作用
开启"允许自启"的应用,即使全局自启拦截已开启,也可以正常被非跳转方式启动。
典型需要允许自启的场景
无障碍服务
使用无障碍功能的应用(如自动化工具、输入法增强等)需要持续运行,被拦截启动后功能会异常。
快捷设置磁贴
NoActive 的磁贴解冻功能(系统界面作用域)需要正常的 Service 启动能力。
自动填充服务
Android 自动填充框架依赖应用 Service 正常启动。
通行密钥服务
Passkey 通行密钥需要对应的 Provider 正常启动。
定时任务类
使用 AlarmManager 执行定时任务的应用。
与 startLimit 的关系
startLimit 是全局开关,必须开启后,"允许自启"才发挥作用:
| startLimit 全局开关 | 应用"允许自启"配置 | 实际行为 |
|---|---|---|
| 关 | 任意 | 不拦截自启(默认) |
| 开 | 关 | 拦截该应用的非跳转启动 |
| 开 | 开 | 允许该应用正常自启 |
开启方法
- 打开配置文件 MasterConfig.json
- 将
startLimit设为true - 重启设备使配置生效
- 在 NoActive 应用列表中,为需要放行的应用开启"允许自启"
注意事项
滥用风险
如果给太多应用开启"允许自启",自启拦截形同虚设。建议仅为确实需要后台自动启动的应用放行。
系统应用默认放行
被认定为系统应用的应用不受自启拦截影响,无需额外配置。
配置过系统应用为用户应用的情况
如果之前通过 MasterConfig 的 userAppSet 将某些系统应用归类为用户应用,开启 startLimit 后这些应用也会被拦截。请斟酌后开启自启拦截。
→ 了解 冻结方式原理