NoActive 系统应用白名单机制 - 如何调整归类
为什么系统应用默认白名单
NoActive 将所有系统应用视为全局白名单,不做任何冻结处理。这是为了保证系统稳定性:
- 系统进程被冻结可能导致系统服务不可用
- 关键系统组件异常可能引发系统崩溃
- 厂商定制 ROM 的系统应用比原生 Android 更多更复杂
如何判定系统应用
NoActive 根据应用安装位置判断:
| 安装位置 | 判定 |
|---|---|
| /system/ | 系统应用 |
| /product/ | 系统应用 |
| /system_ext/ | 系统应用 |
| /vendor/ | 系统应用 |
| /data/app/ | 用户应用 |
将系统应用改为可冻结
有些用户希望某些"伪系统应用"(如厂商预装的第三方应用)也能被冻结。
方法
修改 MasterConfig.json 的 userAppSet 字段,将目标应用包名加入。
示例
{
"userAppSet": "com.xiaomi.smarthome,com.miui.videoplayer"
}
将小米智能家居和小米视频播放器强制归类为用户应用,可以被冻结。
使用注意
谨慎操作。以下类型的应用即使归类为用户应用,也不建议冻结:
- 输入法(冻结后无法输入)
- 电话/短信应用(冻结后无法通信)
- 设置应用(冻结后无法调整系统设置)
- 蓝牙/Wi-Fi 服务(冻结后连接异常)
风险
强制归类后,这些应用会被 NoActive 当作普通用户应用处理:
- 会被冻结
- 可能触发 ANR 或卡屏
- 自启拦截可能影响其后台运行
将用户应用改为系统应用
反向操作也支持。修改 MasterConfig.json 的 systemAppSet 字段。
使用场景
某些第三方应用具有系统级权限或功能,不希望被冻结。但不想把它加入白名单(白名单影响更大)。
{
"systemAppSet": "com.example.systemtool"
}
这会让该应用享有系统应用待遇,自动白名单。
如何查找应用包名
方法一:NoActive 应用详情
在 NoActive 应用列表点击应用详情,通常可以看到包名。
方法二:ADB 命令
adb shell pm list packages | findstr <应用关键词>
方法三:Root 文件管理器
查看 APK 文件的路径:
- 系统应用:
/system/app/xxx/xxx.apk - 用户应用:
/data/app/xxx-xxx.apk
APK 安装位置决定了是否默认被视为系统应用。
→ 继续 进程配置设计说明