伴侣 APP
包名 com.qsc.battery · 桌面名 充电控制 · Kotlin + Jetpack Compose · Android 8+(minSdk 26)。
只负责配置、状态、更新与主题;不挂后台保活。停充逻辑始终由 Magisk 模块执行。
可不装模块单独使用(主题、检查更新、下载模块)。装上模块并授权 Root 后才能读写停充配置。
功能
| 区域 | 内容 |
|---|---|
| 引导 | Root / 通知 / 安装包 / XP 检测 |
| 首页 | 状态舞台、软开关、策略入口 |
| 策略 | 常用停充/温度;进阶含 省电策略(档位/息屏/夜间)、持锁、无线、通知、App、历史、电流、守护 |
| 动态 | 运行日志 + 充电事件 + LSP;导出 zip 系统分享反馈 |
| 我的 | 主题、更新、配置档、排障(调试开关 / 导出日志)、LSPosed/XP 面板、磁贴说明、权限 |
| 磁贴 | 快捷设置切换 module_off(需 Root+模块) |
主题与图标
- 颜色模式:跟随系统 / 浅 / 深 / 纯黑 AMOLED / 动态取色
- 调色板与种子色
- 动态桌面图标(默认关):电量约 10% 一档;充电时闪电为黄色;默认/环形两套风格
- 仅打开 APP 或插拔电等稀疏时机刷新(不监听每秒
BATTERY_CHANGED)
LSPosed(可选)
作用域勾选 系统框架(包名 system;仅勾「Android系统」android 不够)。APP「我的 → LSPosed / XP」可一键 requestScope("system")。
三层状态(不必为①②重启;③注入需重启):
- 服务已连接:
XposedServicebinder(官方 libxposed service,打开 APP 即可) - 作用域已含 system:
getScope()/ 一键请求 - 框架已注入:
/data/system/qsc_xp_alive或runningTargets含 system_server
- 作用:
- 前台包名总线:
qsc_xp_fg(+ edge);简介 / 游戏旁路 / App 停充共用。门禁:三者全关时 XP 不写盘。分级:仅简介→管理器;游戏/停充→各自包名列表。管理器 进出各 3s 稳定,离开后立即写 leave(第三列为管理器包名);列表约 1s 进 / 30s 离(游戏另认进程)。普通 App fg 落盘 800ms。无 XP、软关或策略空闲/异常时回退 dumpsys,边沿恢复后再切回 - 管理器边沿队列:
qsc_xp_viewer追加 enter/leave;有 XP 时主服务直接消费并刷module.prop(不启简介 worker),观看中约 45–60s 一轮;无 XP 才用 dumpsys 降级 worker - 插拔边沿:仅 qscd 不可用且已武装时写
qsc_xp_wake - 辅助边沿(默认关):
want_screen/want_doze/want_bcast→ 分别写qsc_xp_screen/qsc_xp_doze/qsc_xp_bcast;息屏策略优先读 screen;武装时亦可打断 sleep。广播动作列表见qsc_xp_bcast_actions(空则用内置 SCREEN/IDLE/插拔)
- 前台包名总线:
- 通道:
/data/system/;qsc_xp_off全关;qsc_xp_no_wake仅关插拔唤醒;qsc_xp_no_viewer关前台总线 - 停充始终由 Magisk 模块负责
- 排查:开 LSP「详细日志」后
adb logcat -s QscXp可见ok viewer enter|leave;Magisk 默认log.log不再记管理器进出。开「详细调试日志」可见简介刷新等内部 dbg;Rust qscd 支持--wake-file与 viewer 同 poll
安装
- Release 中的 APK,或刷模块时选择安装内嵌 APK
- 固定 release 签名;从旧 debug 包升级需先卸载一次
- 授予 Root(读写模块)与通知权限(可选)
更新通道(三套独立)
| 目标 | 清单 | 谁在查 |
|---|---|---|
| 模块 zip | update.json | Magisk / APP「模块」 |
| qscd | qscd/manifest.json | WebUI 守护卡片 |
| APP | app-update.json | APP「自身」 |
单独发 APK 或守护不会改模块 update.json,避免误提示 Magisk 更新。
构建(维护者)
推送 apps/android/ 或手动触发 GitHub Actions App 工作流。详见仓库 apps/android/README.md。