模块启停开关——一键切换模块的运行状态
什么是启停开关
KsuWebUI 的模块管理页面上,每个已装模块旁边都有一个开关按钮。把它拉到「开」的位置就是启用模块,拉到「关」的位置就是禁用模块。
这个功能的核心优势是:不需要卸载模块就能让它失效。当你想测试某个模块是否导致问题时,先禁用它观察手机状态——确认没问题再决定要不要彻底卸载。
启用模块
把开关切到启用状态后:
- KsuWebUI 在后台为该模块创建启用标记
- 系统下次启动时会加载这个模块
- 部分支持热加载的模块可以在当前会话就生效(取决于模块本身的实现)
禁用模块
把开关切到禁用状态后:
- KsuWebUI 在后台创建禁用标记
- 系统重启时不会加载被禁用的模块
- 如果模块当前正在运行,需要重启才能完全停止
实时生效的例外
有些模块的启停可以实时生效,不需要重启:
- 只修改系统属性的模块(如修改 build.prop)
- 通过 prop 注入的简单改动
- 部分现代 Magisk 模块支持动态 prop 注入
但大多数模块,尤其是涉及系统文件替换和服务启动的,仍然需要重启才能完全切换状态。
为什么重启是必须的
Root 模块的工作机制是在系统启动时进行:
- 替换 system 分区文件(Magic Mount)
- 注入 sepolicy 规则
- 启动后台守护进程
这些操作发生在 boot 阶段,运行中的系统无法动态撤销。所以禁用后需要重启,让系统跳过被禁用模块的加载步骤。
批量启停
如果需要同时操作多个模块:
- 在模块列表顶部找到批量操作按钮(或长按某个模块进入多选模式)
- 勾选要操作的模块
- 统一启用或禁用
- 重启手机让更改生效
建议的排查流程
怀疑某个模块有问题时:
- 先禁用不要卸载——保留模块包方便后续恢复
- 重启手机观察
- 如果问题消失,确认是这个模块的锅
- 更新模块版本或换替代方案
- 问题确认且不再需要后,再卸载