为什么 HyperCeiler 开了功能还要重启
为什么要重启
Xposed 模块的 Hook 逻辑只有在 目标进程被创建时 才会被注入进去。当你在 HyperCeiler App 里打开某个功能开关时,这个开关的配置值只是写进了 /data 分区的配置文件里,已经在运行的进程并不会主动去读这个新配置——它们跑的还是启动时加载的那份代码。
所以必须重启进程:进程被 kill 掉 → zygote 重新 fork 它 → 模块在 fork 时把新的 Hook 代码注入进去 → 进程带着新逻辑重新启动 → 你看到效果。
三种重启方式
1. 在 LSPosed 里重启单个应用
LSPosed 的每个模块详情页、每个作用域应用的卡片上,都有一个「重启」按钮。点击后 LSPosed 会用 root 权限杀掉该应用进程,触发系统的开机自启或用户主动重新打开。
- 适用:只改了某一个作用域的功能(比如只改了相机)
- 速度:几秒
- 局限:system(系统框架)和 systemui(系统界面)不能用这种方式重启,它们被 kill 掉会触发 System Server 崩溃保护重启
2. 在 HyperCeiler App 里重启作用域
HyperCeiler App 内每个功能页右上角也有一个重启按钮,逻辑和 LSPosed 里的重启是一样的——调用 LSPosed 的 API kill 目标进程。好处是它自动知道你当前这个功能对应的作用域,不用你自己回忆。
3. 重启整个设备
最稳妥、最通用的方式,适合:
- 第一次启用 HyperCeiler(system 和 systemui 不能单应用重启)
- 改动了多个作用域,嫌一个个重启麻烦
- 遇到奇怪的不生效问题,先试试全量重启排除缓存干扰
改了功能不重启会怎样
什么都不会发生。开关开着但进程跑的还是旧逻辑,你会以为"模块坏了"。所以 HyperCeiler 开发者在 App 里加了提示弹窗——功能开关切换后弹一个 Toast 提醒你重启对应作用域。
重启后功能立刻生效吗
大部分功能重启后就能看到效果。但有几类需要额外注意:
- 状态栏 / 系统界面 功能:重启 systemui 后整个状态栏和通知栏会闪一下然后恢复,新设置随之生效
- 锁屏 功能:有些锁屏相关功能需要先亮屏熄屏一次才能看到变化
- 应用商店机型伪装:应用商店启动时读取一次 Build.PROP,伪装后重启商店即可
- 后台进程控制:重启后新的进程管理策略才会应用到之后启动的 App
如果重启后还是没看到效果,跳到 模块不生效排查 的清单逐条核对。