Skip to content

0.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Aug 09:37
· 25 commits to main since this release

主要功能

  • 双击状态栏后强制停止当前前台普通应用。
  • 优先尝试 su -c am force-stop;SystemUI 的 SELinux 域不能执行 su 时,自动回退到 ActivityManager Binder。
  • 成功后显示 已强制关闭<应用名>,应用名来自实际被停止应用,不写死具体软件。
  • 保持单一职责:没有桌面图标、Activity、设置界面、Service、Receiver 或 Provider,静态作用域仅包含 com.android.systemui
  • 不修改、重签、替换或重新打包任何小米 APK,也不修改系统分区文件。

项目缘起

我以前很依赖 CustoMIUIzer 的“双击状态栏关闭当前应用”功能。升级到 HyperOS 4 后,原功能因 SystemUI Hook 点变化而失效,因此单独实现了这个 API102 模块,避免与综合模块的其他功能和后续适配进度耦合。

实机验证

在 Xiaomi nezha(25128PNA1C)、HyperOS OS4.0.0.10.XPACNXM、Android 17(SDK 37)、LSPosed 2.1.1-it(libxposed API 102)上验证:

  • SystemUI Hook 正常安装,双击识别正常。
  • 前台应用名称和包名解析正常。
  • su 路径因 SystemUI SELinux 限制返回失败后,Binder 回退成功强制停止应用商店。
  • 动态 Toast 正确显示“已强制关闭应用商店”。
  • 操作过程中 SystemUI 没有崩溃或重启。
  • 16 个单元测试全部通过,Android lint 无问题。

以上结果只证明当前实机与系统构建;其他 HyperOS 4、Android 或 SystemUI 版本尚未宣称兼容。

安装

  1. 安装 StatusBarForceClose-0.1.0.apk
  2. 在支持 libxposed API 102 的 LSPosed 实现中启用模块。
  3. 保持作用域为“系统界面” (com.android.systemui)。
  4. 重启 SystemUI 或重启设备,使首次 Hook 生效。

早期测试使用 debug 证书;从 debug APK 切换到本次正式签名版本时需要先卸载旧包。后续正式版本将持续使用同一证书,可以直接覆盖升级。

兼容性与日志

  • 当前最低和目标 SDK 均为 37。
  • 当前 Hook 点依赖 HyperOS 4 SystemUI 的 PhoneStatusBarView 类层级;结构不匹配时会停止安装 Hook,不对未知实现做模糊尝试。
  • release 构建已在编译期关闭诊断,并由 R8 移除 debug 日志分支。
  • 需要排障时请使用对应提交的 debug Actions artifact,并提交完整的同一次 requestId 日志。