安装包用途说明
hyperglow-cnplus-release-v0.3.82-109.apk(正式版):正常使用请安装此版本。正式签名、R8 压缩,适合日常安装使用。hyperglow-cnplus-debug-v0.3.82-109.apk(调试版):提 issue 反馈问题时请安装此版本,可提供详细诊断日志辅助排查。调试签名,仅用于测试与问题排查,请勿作为日常版本长期安装。
更新日志 (v0.3.82 / versionCode 109)
🌟 修复 AOD 切歌后整首无歌词(issue #11)
- 根因(0.3.81 实机日志确认):网易云共享内存的位置不是逐帧写入,而是按 base 元组 + 墙钟 × 速度 公式续算,Doze 冻结的是 base 更新。切歌后写入端仍停在旧歌时间线上续算,位置持续动态越界递增(实测 487520ms → 528687ms,新歌时长仅 188718ms)。0.3.81 的越界钳制把每个越界值钳到歌尾并清空歌词行——整首歌 AOD 纯色背景无歌词,并伴随 60Hz
capping日志刷屏;亮屏/切歌/seek 唤醒写入端后才恢复。 - 同一 bug 的另一种表现:旧歌比新歌短时,残留落在新歌时长内、被当成真实位置接受,歌词整段错位(显示在"偏移=旧歌时长"处的新歌歌词)。
- 修复:
- 切歌可信门控:切歌后首个真实位置必须 ≤ 切歌后墙钟 × 观测速率 + 10s 容差,否则视为旧时间线残留拒绝、从 0 外推(新歌正确推进到歌尾);首个可信值或 seek 后开门恢复正常追踪。上界速率由残留增量估计(残留与真实位置同速推进),1.25x~3x 倍速播放不受影响;冻结型残留记首值持续拒绝,防上界随墙钟增长后被误接受。
- 越界值视为 stalled:超过歌长 +2s 容差的位置一律不可信,从最后可信基准外推到投影歌尾、再按既有语义稳定占位——取代 0.3.81 直接钳歌尾清行;小幅越界(元数据时长略小于实际音频)仍钳到歌尾;
capping日志去重消除刷屏。 - 正常播放 / 暂停 / seek / 单曲循环行为不变(门控只作用于切歌后首个可信值之前),issue #3/#9/#10 的修复全部保持。
- 新增回归测试:时长内残留拒绝与冻结残留、2x 速率跟踪、越界残留外推等;全部 554 个测试通过。
🔄 同步上游 hyperglow 更新(amarinne/hyperglow)
- 中文歌拒绝错误的日语假名注音(上游
8422d78):数据源(网易云)常给中文歌词错误标注日语 furigana,显示出来既难看又误导。现在中文歌(zh/zh-Hant等)检测到 ruby 注音含日语假名(平/片假名)时,拒绝显示注音和罗马音;日语歌的假名注音是正确数据,原样保留。文档语言标签从歌词数据贯通到投影层。 - 版本锁定退役,新设备不再被误报"不支持"(上游
6216fdc):移除 SystemUI/AOD 版本号白名单门禁,改为按符号探测实际解析出的能力判断——有可用 surface 即"可用",UI 显示"n/16 个挂钩可用"计数而非旧的置信度标签。修复新 HyperOS 设备明明能跑却被显示为"不支持配置文件"、诊断报告误报 setup failed 的问题。本地实验模式覆写逻辑保持不变。 - 诊断报告接受 "available" 状态(上游
c5b1ffa):与新状态机配套的校验放行,避免诊断报告被拒收。 fillEndMs允许越过本行行尾(跨行填充是合法数据),渲染端钳制行窗口防止行级扫光越界。- 全部 564 个测试通过。
Full Changelog: aodianjun/com.aodianjun.hyperglow.cnplus@108-0.3.81...109-0.3.82