Repository navigation
Releases: Eikeitsu/QSC-Battery
Releases · Eikeitsu/QSC-Battery
Release list
KernelSU Module
Immutable
release. Only release title and notes can be modified.
下载哪个?
- 多数人:
QSC-Battery_v*-full.zip(双守护 + WebUI,可内嵌伴侣 APP;在线更新也指向它) - 只要脚本、包要小:
…-lite.zip(无 WebUI / 无内嵌 APK / 无守护) - 其它模块包:
-rust/-c只带对应守护;-sh有 WebUI、守护可后装 QSC-Battery_v*.apk:伴侣 APP;非 lite 模块刷入时也可选装,不必单独下qscd-rust-*/qscd-c-*:事件守护单文件;一般由 full 自带或 WebUI 下载,不要当模块刷
完整说明:安装与升级
更新说明
- KernelSU Next 模块横幅:增加模块背景横幅,使用ksu next管理器开启模块背景横幅可以给模块增加图片背景;
- KernelSU 模块仓库:仓库根目录增加
module.yaml(便于提交 modules.kernelsu.org),为将模块提交至ksu官方模块仓库做准备 - 音量键 volkey:
bin/volkey(EVIOCGRAB)供安装 customize 与 Action 共用,避免 BakaSU 等管理器不吞键时弹出系统音量条;SukiSU 管理器常自吞 KeyEvent。缺二进制时回退getevent - Lint:接入
lint:py(ruff)、lint:clang、lint:rust、lint:kotlin(缺工具本机跳过 / CI 强制);format:all与 lint-staged 覆盖 py / C / Rust / Kotlin
versionCode=2026101201
Full Changelog: v2026.10.08...v2026.10.12
Tile
下载哪个?
- 多数人:
QSC-Battery_v*-full.zip(双守护 + WebUI,可内嵌伴侣 APP;在线更新也指向它) - 只要脚本、包要小:
…-lite.zip(无 WebUI / 无内嵌 APK / 无守护) - 其它模块包:
-rust/-c只带对应守护;-sh有 WebUI、守护可后装 QSC-Battery_v*.apk:伴侣 APP;非 lite 模块刷入时也可选装,不必单独下qscd-rust-*/qscd-c-*:事件守护单文件;一般由 full 自带或 WebUI 下载,不要当模块刷
完整说明:安装与升级
更新说明
- 修复停充后反复「插入 / 再停」:假停充自愈误把放电负载电流(status=Discharging、|I| 仍大)当成「没停住」,还原
input_suspend后又触发停充。现以 Discharging/Not charging 为准;节点仍为停充值时只重申不还原;调试日志带符号电流与节点当前值。 - 快捷磁贴:增加「充满再停」磁贴,经自带 CLI
cfg set切换。优化「定量停充」磁贴样式 - 修复 APP 部分配置项修改时卡 UI ,点击之后页面无变化需要切换页面才能看到配置变化
- APP 底栏阴影加深
versionCode=2026100801
Full Changelog: v2026.09.25...v2026.10.08
HotFix
下载哪个?
- 多数人:
QSC-Battery_v*-full.zip(双守护 + WebUI,可内嵌伴侣 APP;在线更新也指向它) - 只要脚本、包要小:
…-lite.zip(无 WebUI / 无内嵌 APK / 无守护) - 其它模块包:
-rust/-c只带对应守护;-sh有 WebUI、守护可后装 QSC-Battery_v*.apk:伴侣 APP;非 lite 模块刷入时也可选装,不必单独下qscd-rust-*/qscd-c-*:事件守护单文件;一般由 full 自带或 WebUI 下载,不要当模块刷
完整说明:安装与升级
更新说明
新增
- 安装方式简化:音量上默认安装(全量可用组件;有旧配置则保留核心);音量下自定义安装(逐项选择)。无人值守(
install_auto)不变。 - App 导出日志:动态页 /「我的 → 排障」打包 zip(运行日志、事件、XP、配置与标记)并走系统分享,方便反馈。
- 简介 × LSPosed:边沿改为队列消费、总线文件权限可写;主服务可直接刷简介;息屏再亮、KSU 随机包名、无 XP 降级等一并打通,减少「在前台但不更新」。
- 事件守护:Rust
watch/wait-event支持--wake-file(与 viewer 同 poll);C 版仅做轻量poll+ burst drain。
修复
- App / 温控停充后充不回:无
battery_switch时不再误套用电量门闩。 - 热更新 / 假停充留下孤儿停充:清标记前先还原节点;插电周期性复检残留(未插电跳过,避免与 OEM 打架)。
- 未插电过勤 / 挡 Doze:去掉盲
sleep丢插拔与「无 XP 也整夜 5s」;lean 释放残留wake_lock;race kill 不再把 130/137/143 当成功。 - 默认日志:去掉管理器进出等刷屏文案。
versionCode=2026092501
Full Changelog: v2026.09.21...v2026.09.25
Power and LSP
下载哪个?
- 多数人:
QSC-Battery_v*-full.zip(双守护 + WebUI,可内嵌伴侣 APP;在线更新也指向它) - 只要脚本、包要小:
…-lite.zip(无 WebUI / 无内嵌 APK / 无守护) - 其它模块包:
-rust/-c只带对应守护;-sh有 WebUI、守护可后装 QSC-Battery_v*.apk:伴侣 APP;非 lite 模块刷入时也可选装,不必单独下qscd-rust-*/qscd-c-*:事件守护单文件;一般由 full 自带或 WebUI 下载,不要当模块刷
完整说明:安装与升级
更新说明
机型过多适配困难,本版已引入详细调试日志开关
反馈问题请详细描述问题,并打开详细日志开关提供关键日志
新增
- 详细调试日志开关:App「我的 → 排障」、WebUI「测开关与缓存」、CLI
qsc debug on|off;写data/debug_on,约 2 秒内随开随关。开启后log.log记录插电判定、停充评估、节点写入/复核、假停充自愈、涓流电流与时间、电流控制、qscd 等待/唤醒等;默认关闭不影响日常。 - 分级省电策略(
config/power.conf):档位均衡/强力/自定义;息屏加强、夜间时段、深睡 DeepPark;未插电事件驱动驻停,插拔仍即时响应(非绝对零耗电)。WebUI「省电策略」、APP「进阶 → 省电策略」。 - 配置拆分:省电键迁入
power.conf,通知迁入notify.conf;旧config.conf启动时自动迁移。 - 停充维持 × 息屏/夜间:非 MCA 息屏约 180s、夜间/深睡约 300s;MCA 仍按
loop_interval_maintain_sec重申。 - 夜间时段:模板默认
23:00-07:00(跨天);WebUI/APP 可编辑;开启「夜间省电」且无时段时自动写入该默认。 - 简介按需刷新:检测到 Magisk/KSU/APatch/MMRL 等管理器在前台时勤刷电量;无人看列表时几乎不更新电量(停充/插拔等状态仍即时写)。内置含 Alpha / Kitsune、KSU Next / SukiSU / ReSukiSU、APatch Next / FolkPatch、WebUI X 等活跃分支;可选
desc_viewer_pkgs追加包名。 - LSPosed 管理器前台边沿:系统框架 Hook Activity 恢复;进出各 3s 稳定,确认离开后再 90s 超时写
qsc_xp_viewerleave。无 XP 时仍 dumpsys 轮询降级。与既有插拔qsc_xp_wake(仅 qscd 不可用)独立。 - LSPosed 前台包名总线:每次前台切换写
qsc_xp_fg;简介 / 游戏旁路 / App 停充共用;有 XP 时跳过认前台用的 dumpsys,无 XP 再降级。 - LSPosed 辅助边沿(默认关):亮灭屏 →
qsc_xp_screen(息屏策略优先读);Doze →qsc_xp_doze;白名单广播 →qsc_xp_bcast(可改qsc_xp_bcast_actions)。APP「LSPosed / XP」面板开关;武装时亦可打断 qscd 回退 sleep。 - XP 生效时事件驱动:简介后台零轮询;管理器进出各 3s 稳定 后才确认,确认离开后再 90s 超时 才停刷;会话未结束时切回不重复强制刷。观看中约 45–60s 复刷。游戏限流:前台或进程命中(后台子进程也维持),再套约 1s 进 / 30s 离 墓碑;App 停充同间隔(有 XP 以前台为准)。
- 无 XP / XP 异常回退:
alive缺失、软关、或与 dumpsys 连续不一致时写xp_fg_unreliable,简介与认前台改 dumpsys/进程路径;边沿恢复后自动切回 XP。漏边沿时 dumpsys 安全网仍能发现管理器。 - 省电诊断统计:
touch data/diagnostic_on后按心跳写出service_power_stats与日志「省电统计」(skip/均睡/简介写盘/未插电 %/h);默认关闭,避免调试本身耗电。 - 策略边沿日志与驻停总结:进入/退出息屏·夜间·深睡写 INFO;同段重合不重复结算;退出时总结唤醒次数、均睡、skip,并给出「接近少唤醒 / 偏勤」评判。管理器前台进出、配置热重载亦有日志。息屏加强须连续息屏约 90s 才进档;不足约 3 分钟的短驻停不写总结,减轻亮灭闪动刷屏。
- CLI:
help汇总命令;缩写st/cfg/diag/test/ver;stats看省电证据;diagnostic on|off;debug on|off;未知命令提示相近指令。 - 用户文档:功能/配置/WebUI/APP/FAQ/首页对齐分级省电与多 conf;顶栏增加「常见问题」。
优化
stop_hold_wakelock=auto不再日用常持锁:仅息屏/夜间持锁,亮屏释放,减轻对深度 Doze 的阻挡;强制1仍持续持锁。- 未插电 lean wait:确认未插电后主循环再入几乎只做「读 online + 策略/idle + wait」;简介/XP 管家仅在拔电首轮或配置变更时跑。配置本就按 mtime 哨兵,未变不重读全文;App/WebUI 保存另 bump
conf_reload_req。 - 深睡粘滞:已进 deep 后连续数次跳过亮度 sysfs,沿用
deep_idle_sec;约每 3 次醒全量探测一次以便亮屏退出。进入息屏加强/深睡时停简介 worker,离开驻停再拉起。 - 未插电不再强制满轮:取消
FULL_MAX_GAP定时qsc_switch;qscd 失败回退未插电至少按 idle 地板(≥90s),避免短睡抖醒。 - 管理器前台误报:息屏禁用 dumpsys 安全网与「在看」判定;退出驻停需亮屏滞回且连续两次非 deep;XP enter 要求亮屏。修复过夜周期性「管理器前台」假日志与短驻停无退出总结。
修复
- 管理器前台息屏后再亮简介卡静态:亮灭屏边沿补发 viewer enter(不依赖 want_screen);仅简介策略无
qsc_xp_fg时 dumpsys 认管理器;观看循环每轮复核、离开息屏压制后立即安全网,避免一直停在静态文案。 - 停充基线对齐 v2026.08.14:机型相关停充以 0814 为准(MCA 仅
mca=1、写成功即认、非 MCA 不抢handle_state)。保留优化:全量盲写、假停充自愈、插电多信号、MCA raw echo、详细调试日志。事后电流硬复核改为switch_hard_verify(默认关;App/WebUI「冷门/实验」可开)。 - XP 前台门禁与分级:Magisk 同步
qsc_xp_fg_policy;简介/游戏限流/App 停充全关时 XP 不写前台盘(qsc_xp_fg_idle热路径快判)。仅简介→只处理管理器且不写qsc_xp_fg(只要 viewer);游戏/停充→列表包(离开再写一次)。未插电时游戏/停充不纳入 XP。非详细日志下 DEBUG 不进 logcat。 - CI 通道检测版本落后于 Actions:
publish-updates/publish-ci-dist曾把整份 tip 拷进 STAGE 再推送,并发的 App/守护发布会把模块元数据回滚(如远端已是.ci.315却检测到.ci.314)。改为只推送本产品文件,state.json与 tip 合并。 - (继承)充满拔线后 uevent 乱叫醒、停充持锁间隔等,见 2026.09.18。
versionCode=2026092101
Full Changelog: v2026.09.18...v2026.09.21
HotFix
下载哪个?
- 多数人:
QSC-Battery_v*-full.zip(双守护 + WebUI,可内嵌伴侣 APP;在线更新也指向它) - 只要脚本、包要小:
…-lite.zip(无 WebUI / 无内嵌 APK / 无守护) - 其它模块包:
-rust/-c只带对应守护;-sh有 WebUI、守护可后装 QSC-Battery_v*.apk:伴侣 APP;非 lite 模块刷入时也可选装,不必单独下qscd-rust-*/qscd-c-*:事件守护单文件;一般由 full 自带或 WebUI 下载,不要当模块刷
完整说明:安装与升级
更新说明
相对 2026.09.16 的变更。本版起模块 versionCode 以 2026091701 为兼容切断线。
升级说明
- 自 09.16 及更早版本升级将触发一次强制完整重装:清空旧配置、运行数据与外部
/data/adb/qsc;重启后需重新设置。此后更新按正常路径保留配置。 - 切断过程不执行旧版
uninstall.sh,且不删除modules_update(修复 KernelSU 安装结束报No such file)。 - 建议刷入本版 zip 后重启,再通过 WebUI / APP 完成配置。
新增
- 涓流模式(
charge_full_mode):在「充满再停」且停止电量=100% 时,可选自动 / 仅电流 / 仅时间(约 10 分钟)后再停充;WebUI「策略」、APP「策略」可配置。 - 拔线立刻还原(
unplug_restore,默认开):拔线后立即恢复充电节点;关闭则保留停充迟滞,再插电仍停至恢复电量。 - 动态简介开关(
description_enable,默认开):开启时管理器列表随状态刷新;关闭后写入固定产品简介并停止简介 worker,略减待机开销。入口:WebUI「更多选项」、APP「循环与省电」。 - 日志结果态:主徽章区分停充中 / 已恢复 / 已拔线 / 已关闭 / 停充失败等;成功停充标注「已停充」。
修复
- 停充后误判拔线(K60 等):
input_suspend停充后电池常报 Discharging,旧逻辑误还原节点。现以充电类型与 VBUS 为强证据,不再被假放电否决。 - 强制升级后简介显示「核心脚本丢失」:切断前先停止旧服务与简介进程,避免未重启时旧进程写入异常简介。
- 强制升级失败或循环刷入:切断时保留
modules_update;无人值守与 APP/WebUI 安装页避免重复触发刷入。 - APP 启动反复提示更新:未安装事件守护时不再将本地 versionCode=0 判为可升级;「稍后」会记住当前远端版本集合,同一批不再重复提示。
- 涓流模式选项换行异常:WebUI 改为与其它预设一致的 Chip 横排。
- 安装残留:安装与热更新收尾后移除模块目录内仅安装期使用的
customize.sh、install/、apk/(仍包含于 zip)。 - LSPosed:关闭热重载;作用域应勾选系统框架(
system),不可仅勾选android。
工程
- 仓库路径与内部命名对齐重构;用户侧模块 id 仍为
QSC_Battery。 - 发版:正式 / 预发布
version可空,按日期自动升号;versionCode与日期对齐。 - 发布工作流:伴侣 APK 输出路径与
apps/android对齐,修复 CI 拷贝失败。 - 切断实现:
qsc_wipe_incompatible_module仅删除modules/QSC_Battery与外部 qsc,保留modules_update;切断线前跳过热更新。
versionCode=2026091801
Full Changelog: v2026.09.16...v2026.09.18
StopCharge Fix
下载哪个?
- 多数人:
QSC-Battery_v*-full.zip(双守护 + WebUI,可内嵌伴侣 APP;在线更新也指向它) - 只要脚本、包要小:
…-lite.zip(无 WebUI / 无内嵌 APK / 无守护) - 其它模块包:
-rust/-c只带对应守护;-sh有 WebUI、守护可后装 QSC-Battery_v*.apk:伴侣 APP;非 lite 模块刷入时也可选装,不必单独下qscd-rust-*/qscd-c-*:事件守护单文件;一般由 full 自带或 WebUI 下载,不要当模块刷
完整说明:安装与升级
更新说明
新增
- 全量盲写开关
switch_batch_blind(默认开):对齐 0814 全量写节点并在条件满足时每轮重申;关闭则只写首个成功节点后重申。WebUI「更多选项 → 冷门/实验」、APP「进阶策略 → 停充行为」可改 - APP 启动检测正式版更新:打开伴侣 APP(完成引导后)静默查一次正式通道;有模块 / APP / 守护可升级时弹窗,可「去更新」或「稍后」;失败或已最新不提示
- 更新通道(正式 / 预发布 / CI):APP「更新」与 WebUI「我的」可切换通道;检测统一读
updates分支(stable/prerelease/ci),下载分别为 Pages / GitHub Release /ci-dist;可分别检测并更新 模块 · APP · 守护;本地高于当前通道时可「切换」安装通道版;CI 可选用 CDN(jsDelivr,默认关;正式/预发布不展示),关 CDN 时检测与下载链接均回退 GitHub raw - 通道安装体验:模块支持写
install_auto后 CLI 无人值守刷入(失败再打开管理器;WebUI 成功后硬刷新);APP 模块更新进命令行风格安装页;守护按当前native_impl(Rust/C)下载,APP/WebUI 可预拉清单与二进制经QSCD_LOCAL_BIN安装;守护 分侧 versionCode(只升变更一侧);版本展示 CI 为….ci.N、预发布为….pre;停在预发布/CI 时旁路提示正式版 - 发版与 CI 产物:
ci-dist分目录module/·app/·qscd/(仅完整产物);工作流按路径拆分构建;versionCode跨通道单调递增且按产品增量;发版勾选多产物;Pages / updates 元数据与清单字段对齐 - WebUI 信息架构:「策略 / 我的」改为 Hub + 二级子路由(日常项留一级,开关排障 / 运行采样 / 守护、机型社区 / 工具说明 / 关于进子页)
修复
- 停充回归:以可靠基线收敛——①
Not charging+|I| 不再误判为放电(否则会否决插电、charge_eval进不去,K60U/K90U 等多机失效);② 常规节点恢复 盲写整批,取消电流硬回滚;③ MCA 写成功即认(不因单次大电流拉黑);④ 停充条件仍满足时每轮重申;⑤ 未识别 MCA 不盲扫handle_state;⑥ dumpsyspowered:true作插电正证据兜底。末位电流墙仍校验;省电/快照等优化保留在不破坏上述语义的前提下
构建
- APP 迁到 AGP 内置 Kotlin;CI Actions 升到 artifact/setup-gradle/Pages v5–v6,消除 Node 20 弃用警告;WebUI 固定
js/app.js等路径并生成webroot/.qsc-files,热更整目录替换以免 HTML/JS 不一致
versionCode=2026091337
Full Changelog: v2026.09.13.2...v2026.09.16
UpdateChannel_20260914
下载哪个?
- 多数人:
QSC-Battery_v*-full.zip(双守护 + WebUI,可内嵌伴侣 APP;在线更新也指向它) - 只要脚本、包要小:
…-lite.zip(无 WebUI / 无内嵌 APK / 无守护) - 其它模块包:
-rust/-c只带对应守护;-sh有 WebUI、守护可后装 QSC-Battery_v*.apk:伴侣 APP;非 lite 模块刷入时也可选装,不必单独下qscd-rust-*/qscd-c-*:事件守护单文件;一般由 full 自带或 WebUI 下载,不要当模块刷
完整说明:安装与升级
更新说明
构建
- APP 迁到 AGP 内置 Kotlin(去掉
builtInKotlin/newDsl兼容开关);CI Actions 升到upload-artifact@v6/download-artifact@v6/setup-gradle@v5/ Pagesupload-pages-artifact@v4+deploy-pages@v5,消除 Node 20 弃用警告
更新通道与版本
- APP「更新」与 WebUI「我的」可切换 正式 / 预发布 / CI;正式仍走 Pages(Magisk 同源),预发布直连 GitHub Release,CI 走
ci-dist(无 Token,只保留最新构建) - 停在预发布 / CI 时检查更新会旁路提示正式版;预发布与草稿不写正式镜像
versionCode跨通道全局单调递增;用户可见版本:CI 为….ci.N,预发布为….pre(模块与 APP 一致)
停充兼容
- 修复 K90U 等 MCA:未插电粘住
present=1时误报已插电、停充 / 拔线清理异常;present需 VBUS 或类型旁证(停充冷却期内除外),不再单信孤立Not charging;放电判定忽略电流符号;Rustplugged与 shell 对齐
versionCode=2026091307
Full Changelog: v2026.09.13.2...v2026.09.14.pre
Release_20260913
下载哪个?
- 多数人:
QSC-Battery_v*-full.zip(双守护 + WebUI,可内嵌伴侣 APP;在线更新也指向它) - 只要脚本、包要小:
…-lite.zip(无 WebUI / 无内嵌 APK / 无守护) - 其它模块包:
-rust/-c只带对应守护;-sh有 WebUI、守护可后装 QSC-Battery_v*.apk:伴侣 APP;非 lite 模块刷入时也可选装,不必单独下qscd-rust-*/qscd-c-*:事件守护单文件;一般由 full 自带或 WebUI 下载,不要当模块刷
完整说明:安装与升级
更新说明
- 模块在线更新改为指向
-full;原无后缀主包改为-sh;新增无 WebUI / 无内嵌 APK 的-lite - 安装文档补充 Release 各文件说明(模块 zip / APK / qscd),方便按需选择下载
Full Changelog: v2026.09.13...v2026.09.13.2
APP_20260913
更新说明
伴侣 APP
- 新增 Compose 伴侣 APP(
com.qsc.battery):首页 / 策略 / 动态 / 我的;Root 读写模块配置与状态,不挂后台保活;minSdk 26/targetSdk 35 - Charge 设计系统:浅/深/AMOLED/动态取色、调色板、首启引导、模块与 APP 分通道更新、配置档;快捷设置磁贴切换模块软开关
- 模块 zip 可内嵌 APK,安装时可选写入;写入成功后删除模块目录内临时 APK
- 桌面动态电量图标(约 10% 分档,充电闪电标黄);默认关闭;切换 activity-alias 改为先启后禁,失败回退默认入口(避免「装完桌面无图标」)
- 可选 LSPosed(libxposed API 102):作用域勾选 系统框架 (
system);仅在qscd不可用时插拔边沿唤醒;/data/system通道、存活探测与独立 XP 面板(服务连接 / 作用域 / 注入) - 「动态」增加 LSP 子页(合并多路径 XP 日志);从 XP 详情进入时自动切到 LSP 并加载
模块
- 新增
bin/qsc.shCLI(status / on|off|toggle / config / log / events / diagnose / test-switch / detect / daemon 等);C 包装安装到/data/adb/qsc/bin/qsc(不挂载system/bin) - 新增 充电事件日志
data/charge_events.log与learn_stats.sh;可选常显功耗通知notify_power_status(默认关) - 新增 设备档案库:
device.profile压缩归档 / 一键还原;WebUI 可复用;扩展旁路节点列表,并移除危险旁路自动探测 - 插电判定:简介与供电标记不再单信
status=Charging或 dumpsyspowered(一加等假充电);也不再把无端口证据的孤立Not charging当成已插电(小米 17 / K90U 等未插电却显示充电中);MCA 无online时仍认present/ VBUS,明显放电时忽略粘住的present - 待机省电:修复事件等待时父 shell 每秒轮询抵消 qscd;服务心跳写盘改为约 180s;未插电 idle / native 默认拉长;简介 worker 未就绪短重试、未插电拉长周期;同 tick 缓存插电判定;
qscd失败时可武装 XP,回退 sleep 可被qsc_xp_wake打断 - 保留更新:音量上只迁移停充阈值/温控/通知/开关/时段等核心项;
power_saver与loop_interval_*一律用新版默认,避免旧间隔盖掉省电优化 - 热更新:接管校验改为确认 service PID、主循环与心跳即可,不再强依赖简介 worker 的
last_refresh窗口(修复近期「热更新未完成 / 接管检验失败」) - 原生守护补充:Rust
plugged/diagnose、精简 wake;C 版cat/stat
WebUI
- 充放电曲线:等距降采样、单调 Hermite、范围切换、增量刷新与健康趋势;打开时刷新间隔改为 60s;修复强制刷新仍走旧缓存的问题
- 日志页拆成运行日志 / 充电事件 Tab;常显功耗开关入口;我的页接入档案库与配置档增强,守护卡片与安装流程对齐
构建与发版
- APP 独立更新清单
app-update.json;发版工作流可分项勾选模块 zip / 守护 / APK - CI:停充用例适配 MCA「供电中」简介文案;统一
checkout@v5/setup-node@v5;抽取setup-android;Vitest 迁至webui/test/unit
Full Changelog: v2026.09.01...v2026.09.13