一个 LSPosed 模块,给 HyperOS「安全服务」里的自动任务补了几个原生没有的功能。
- 目标版本:安全服务 12.3.5(260211.0.1),包名
com.miui.securitycenter - 模块包名:
io.github.hyperosauto.unlockapp - 只 hook 安全服务,没有界面,装上、在 LSPosed 里勾选、重启安全服务即可
原生:条件选了「启动应用」或「离开应用」后,结果列表里的「打开应用」会被置灰。 现在:不再置灰,可以做“打开 A 时自动打开 B”这类任务。
在「添加条件 → 事件」里,紧跟在原生「启动应用 / 离开应用」之后。
- 冷启动应用:应用进程从无到有(被加载进内存)时触发
- 杀死应用:应用的所有进程都被清出内存时触发
和原生「启动 / 离开应用」的区别:原生看的是前后台切换,这两个看的是进程是否存在。 支持多选应用,支持「退出时恢复」(两者互为退出条件)。
在「添加结果 → 设置项」里,紧跟在「定位」之后,可选「开启」或「关闭」。
隐身模式是系统权限中心里那个开关(开启后所有应用无法录音、定位、拍照),系统只在设置页给了开关, 没有快捷入口。现在可以在自动任务里自动开关它,勾选「退出时恢复」会在任务退出时切回相反状态。
依赖已经放在仓库里,不需要 Android SDK / Gradle:
- JDK(脚本里写死在
D:\Environment\java,按需修改) build/libs/:android-4.1.1.4.jar、xposed-api-82.jarbuild/tools/aapt2.exe- d8 用的是 jadx 自带的 jar(脚本里的
JADX_JAR路径按需修改)
.\build.ps1 # Windows PowerShell
./build.sh # Git Bash / Linux产物:build/out/apk/HyperAutoTaskEnhance.apk。第一次构建会自动生成调试签名 build/debug.p12。
module/
AndroidManifest.xml
assets/xposed_init 模块入口类名
res/ 图标、名称、作用域
src/io/github/hyperosauto/unlockapp/
MainHook.java 入口,依次装载下面三个功能
UnlockAppResultHook.java 功能 1
FirstAppConditionHook.java 功能 2 的 hook 部分
InvisibleModeResultHook.java 功能 3 的 hook 部分
FirstAppKeys.java 各条件 / 结果的 key 常量
DexInjector.java 把模块 dex 注入安全服务的 ClassLoader
HookUtils.java 按签名找方法等公共工具
inject/ 会被注入到安全服务里运行的类
FirstAppConditionItem.java 冷启动 / 杀死应用条件的基类
FirstStartAppConditionItem.java
FirstLeaveAppConditionItem.java
FirstAppRuntime.java 进程存活跟踪,通知引擎重新判定
InvisibleModeResultItem.java 隐身模式结果项
InvisibleModeRuntime.java 切换隐身模式、弹开启 / 关闭选择框
stubs/ 安全服务与 miuix 类的编译桩,只参与编译不进 dex
build.ps1 / build.sh 构建脚本
安全服务 APK 及其反编译输出、构建产物、签名密钥都在 .gitignore 里,不随仓库上传。