切换控制器规则会不会丢 PM 换 IFW 时 Bloker 会自动转换
控制器切换:规则不会直接丢
在 Bloker 设置页里把控制器从 PackageManager 改成 Intent Firewall(或反过来),你可能会担心:之前辛辛苦苦关了的组件会不会白做了?
答案:不会——Bloker 在切换时会自动做规则转换。
切换时 Bloker 做了什么
PM → IFW
- Bloker 读取当前所有应用的组件"禁用规则"(哪些被关了)
- 切 PM 状态为"保留"(PM 规则写在系统文件里,不会被 Bloker 自动清除)
- 把"禁用组件 X"翻译成 IFW 规则(拦截所有启动 X 的 intent)
- 写入 IFW XML 规则文件
- 界面上显示的"开关状态"变成 Bloker 自己维护的规则标记
IFW → PM
- Bloker 读取当前所有应用的 IFW 禁用规则
- 把"拦截组件 X 的 intent"翻译成 PM 状态修改(把 X 设为 disabled)
- 执行 pm disable 命令
- 界面上显示系统层面真实的组件 enabled/disabled 状态
规则转换的"脏"问题
切换后你可能会发现一些不一致:
- 从 PM 切到 IFW 再切回 PM:组件状态可能乱了(PM 层没被自动清掉旧规则)
- 多次切换后:某些组件可能出现"PM 禁用 + IFW 拦截"双重状态
- IFW 模式下组件被应用复活:切回 PM 后可能还是 enabled(因为 IFW 不碰 PM 状态)
怎么处理:在 Bloker 设置页里找"清除所有规则"或类似选项(以当前版本为准),清掉后重新设置。或者直接卸载重装 Bloker(记得先导出备份)。
建议:长期固定用一种控制器
为了避免切换导致的规则不一致问题:
- 有 root → 优先 IFW + PM(最彻底,两种控制器都能用,换也无所谓)
- 无 root 有 Shizuku → 先试试 Shizuku,不行就换 Shizuku + IFW(如果 IFW 也能用)
- 固定之后,尽量不要频繁切来切去
切换后立刻做的事
切换控制器完成后,不要立刻把旧控制器的规则文件删掉——先跑一周验证新控制器下所有规则稳定生效。
- 验证:关掉 3~5 个组件 → 杀掉应用重开 → 确认功能变化符合预期
- 一周后:确认没有规则丢失、没有状态混乱 → 再清理旧备份(如果有)
- 有问题:直接拿旧备份文件重新导入,回到切换前的状态