Repository navigation
HyperGlow CN+ 193-0.3.166
安装包用途说明
hyperglow-cnplus-release-v0.3.166-193.apk(正式版):正常使用请安装此版本。正式签名、R8 压缩,适合日常安装使用。hyperglow-cnplus-debug-v0.3.166-193.apk(调试版):提 issue 反馈问题时请安装此版本,可提供详细诊断日志辅助排查。调试签名,仅用于测试与问题排查,请勿作为日常版本长期安装。
更新日志 · v0.3.166
修复
- AOD / 锁屏歌词空白(多根因合并):修掉歌词源未上报媒体时长(
durationMs=0)或行尾/逐词结束时间超出时长时,快照校验失败被静默降级为不显示;插件返回空文本不再覆盖非空活动行;状态协议拒收面过严(UTF-16 规整、超预算时仅丢弃逐词/罗马音等增强条目);以及歌词 surface 构建时省电监控初始化 NPE 中断挂载,导致每次息屏歌词空白。 - 歌词源不再"卡死":修掉 Lyricon 冷启动/重连后时间戳从 0 开始、整条时间轴被平移的问题;新增歌曲侧看门狗(位置通道仍在推送但歌曲通道静默丢失时歌词不再冻结);修掉回调链静默停止、看门狗盲区与仲裁器死锁导致的「暂无曲目」永不恢复;切歌不再被误判为重同步(此前会导致整首无歌词)。
- AOD 时钟不再被系统挤动:系统时钟下移时对时钟锚点防抖、时钟冻结时按已应用 Y 固定视图、时钟 pin 在控制器重建后仍保持,锚定模式下歌词不再被持续下移锁死。三条根因分别是灭屏抖动清空锚点、写回未落到效果层、锚点播种未基于未位移基准。
- 息屏超级岛残留:设备非交互期间把岛窗口根视图强制 GONE 并有界周期复断言,唤醒后按台账恢复;顺带修掉
View.GONE常量被误钉为 2(正确值 8)导致守卫失效、岛持续可见并闪烁的问题。 - 横屏与横屏全屏:修掉「横屏 + 横屏全屏」下 AOD 整屏空白(Canvas 变换顺序把平移量放大 1.7 倍、把逻辑框推出画布)、歌词被放大越出画布被裁、长行被推出可视区、歌词与元数据整块偏心(约 54px)等问题;横屏非全屏永不放大,画布按中心交换宽高并整体钳入屏幕。
- 翻译 / 音译偶发丢失:翻译 lane 对齐由精确相等放宽为 ±120ms 最近行匹配(带最近主行与重复文本双护栏),并扩充五个翻译键别名以兼容更多播放器;只带词级译文(translationWords)的源不再被静默丢弃(emit / 整首快照 / 插件桥三处兜底取文);SuperLyric 逐行流回退时,下一行的音标/翻译由插件富化层回填,四行呈现的第四行不再缺失。
- 自定义字体实机不加载:字体文件位于应用私有目录、SystemUI 读不到,导致息屏/锁屏永远回退字体;现取流副本落到宿主进程可写缓存并按版本自动失效清理。同时修掉
noto-sc/custom/custom:<id>令牌被归一化钳成spotify、非幂等改写致整帧快照被拒收。 - 第二行辅助文字被读成"第二条主行":辅助字号按有效主行字号等比封顶(不超过约 0.62 倍),不再被可读性下限顶到接近主行大小;换行动画中辅助行不再随第一行退场再入场,而与下一行同属内容延续组、随晋级平移到新主行的辅助槽位。
- 词距与超宽词换行:插件词表缺原文区间时不再回退固定 8dp 兜底(此前词距随渲染路径变化、换行点比预览早、晋级前后跳变),改按词文本在行文本中顺序定位补全、词距取原文分隔符实测宽(此类行的注音同时恢复显示);单词超过可用宽时先按字符切分(含中文避头尾)再走既有换行路径,修掉整行超宽被画布两端裁掉。
- 换行动画肉眼跳变:真机逐帧定位到三处——MIUI doze 冻结 SystemUI 使歌词状态批量投递、过渡进度按批跳进;位移段峰值速度超出 60fps 单帧上限;起步首帧几何不连续且首帧晚到被一帧跳进。现位置采样限速(平滑位置每帧最多按播放速率前进)、位移段时长按距离与速度上限、起点几何在两槽基线间线性插值并在越过退场段时重锚,旧账补播不再一帧硬切。
- 占位符与逐字词窗:修掉占位符 🎶 被按 UTF-16 单码元劈成孤立代理项、显示成方框(改为按码点切分,歌词里的 emoji 同样受益);修掉渐变档下源自带行级标记让真实词窗被整条忽略——带真实词窗的行现在在所有非 Minimal 档位都走逐字渲染。
- 首选源断连时暂停的歌曲不再清屏:回退与选源共用同一故障谓词,并新增冻结暂停兜底档(先取健康候选,再取首个带内容的冻结暂停候选;空态与 stale-playing 仍跳过,冻结行绝不压过在播活源)。
- 时间戳处理健壮性:插件链合并收尾对合并后的文档跑同一套行窗/词窗归一(词窗超出行窗扩为并集、行窗远超可唱估时且词窗可信时向词对齐);ElrcParser 时间戳语法对齐 LRC/SPL 标准,
[mm:ss](省略毫秒)与 4–6 位毫秒不再整行丢弃、词标记不再漏进歌词正文。 - 预览与实机不一致:预览换算与实机同源(字号、副文本/元数据透明度、取色与卡片色、对齐、字体解析不再静默回退),并补齐文字动画档位、注音绘制与歌词进度四档;演示快照携带逐字时间戳,无实时歌词时也能看出逐字效果;暂停后预览不再停在暂停前那句;切换息屏/锁屏分段时预览立即刷新。
- 插件(独立发行):amll-ttml 标题带括号后缀时取词失效——搜索原文标题导致 AMLL 库 0 结果、且负缓存写进规范化键毒化同曲干净标题(改为三变体按序搜索 + 缓存格式升级 + 传输失败不写负缓存);lyricfetch 缓存键含时长导致一首歌堆几十条缓存(宿主对逐行源上报的时长是当前行的结束时间;键去掉时长,时长仍参与候选打分与硬否决)。
- 界面细节:百分号(%)显示、暗色模式状态卡配色、弹窗内容不可滚动与旋转重建后弹窗状态丢失、返回按钮缺无障碍描述、关于页帮助/更新日志/贡献者/开源许可四屏无返回处理直接退出应用、主页统计卡与息屏外观页底部卡未接入玻璃化、歌词源弹窗过期文案等。
新增功能
- 插件生态:插件管理页新增「歌词增强」板块(列出所有提供歌词处理能力的插件并可进入其设置页)与「插件缓存管理」页(查看条目大小/更新时间、删除单条、清空全部),插件页新增「下载插件」入口直达插件发行页。新增官方插件 amll-ttml(AMLL TTML DataBase 逐字歌词:逐字/翻译/音译/和声/对唱,歌词 API 地址可配)与 ai-translation(任意 OpenAI 兼容接口的 AI 歌词翻译,按曲目缓存 30 天);插件以独立 ZIP 发行,不在主程序内。
- BetterLyrics 逐字效果:新增「BetterLyrics」逐字动画档——长音节(≥700ms)整块按已唱色亮起、放大 1.15 并带辉光,其余音节保留词内自左向右扫光;行级歌词源(普通 LRC)此前只走整块扫光,现按字符几何宽度合成逐字时间窗,未唱字下沉、唱到后上浮,这些效果在行级源上同样生效。
- 换行动画可配置:外观设置新增「换行动画」,提供 跟随源 / 淡入上移 / 交叉淡化 / 上滑 / 左滑 / 缩放 / 无 七种模式(默认「淡入上移」与历史效果逐像素一致,预览与实机共用同一套帧配方);换行改为逐行三段式(退场 → 位移放大 → 进场),速率档位由 3 档扩到 5 档:Slowest 2.0× / Slow 1.5× / Normal 1.0× / Fast 0.6× / Fastest 0.4×。
- 对唱与段落标记:新增「显示并发歌词(对唱)」——另一唱词行与主行播放窗口重叠 ≥1 秒时两行同显、各画各的逐字扫光,并发行跟随分侧左右(息屏与锁屏各自独立开关);新增「识别对唱标记」,自动识别(男)(女)(合)并左右分侧、同时剥离标记,也剥离(副歌)/(间奏)/(桥段)/(说唱)等段落标记。
- 辅助文字体系:新增「显示第二行辅助文字」(每个曲面独立开关),形成 第一行歌词 / 第一行辅助文字 / 第二行歌词 / 第二行辅助文字 的四行呈现;新增「辅助文字逐字效果」,第一行辅助文字(音标/翻译)随歌词逐字点亮。
- 歌曲信息与歌曲图片:歌曲信息内容(歌名/歌手/专辑)可选可排序、分隔符逐槽独立选择(换行或
·-|、/)、最多 3 行并计入高度预算;新增歌曲图片显示(专辑图,方形/圆形、圆形可旋转、可设定暂停时是否继续旋转、固定边长或自适应缩放)。 - 歌词时间偏移:布局页新增文档级滑杆(±5 秒、50ms 档),正数延后、负数提前显示;选行与逐字扫光整体平移到「播放位置 − 偏移」的显示时间轴,播放中拖动即刻生效,息屏与锁屏同时生效。
- AOD 亮度与帧率:新增 AOD 亮度增强设置;新增「渲染刷新率上限」(默认 60fps,可指定 Hz,随配置备份);未充电且电量 ≤15% 或设备过热时 AOD 自动降帧省电、恢复后回到正常帧率;新增「息屏省电降帧」开关(默认开启,关闭后画布始终按帧上限渲染)。
- 横屏与横屏全屏:新增「息屏画布随设备旋转」(未显式设置旋转模式时按 auto 处理)与「横屏歌词全屏化」——横屏时整体旋转歌词画布布局、内容铺满整屏并居中;新增横屏安全边界滑杆(短边 0–20%,默认 6%),避免内容贴住圆角/挖孔。
- 应用外观设置页:新增主题模式与主题颜色(默认/动态取色/自定义)、背景图片与遮罩强度、背景模糊、玻璃化半透明(顶栏/卡片/底部导航,控件颜色与不透明度可调)、文字颜色与字体、系统栏图标深浅;全部取色弹窗新增 8 色预设网格与颜色代码输入(
#RGB/#RRGGBB/#AARRGGBB)。 - 字体管理增强:自定义字体由单槽改为多槽(导入只新增不覆盖、重名自动编号、可逐个删除,历史单槽配置自动登记),按真实字体名显示并支持批量选择,字体选择对话框对每个候选实时渲染中英文样张。
- 界面与导航:App 界面重构为 状态 / 设置 / App 设置 / 关于 四页,设置页按 息屏 / 锁屏 / 其他 分段并常驻可折叠实时预览;导航改用带返回栈的 miuix-nav,系统返回手势 1:1 跟手驱动转场,新增「预测性返回」开关与「返回触发阈值」(0–60%,仅作用于手势返回)。
- 其他新增:配置备份/恢复(含歌词源、应用外观、诊断、界面语言与插件设置,旧备份缺键回落默认);诊断日志保留期限(1/3/7/15/30 天)与「清日志」;「重启挂钩进程」新增「HyperGlow 应用」与「歌词源(重连当前歌词源)」目标;「视频等非音乐音频不显示歌词」开关(默认开启,按播放器包名与会话声明的音频内容类型识别);「空档提前显示下一行」——前奏/间奏/行间空档不再显示 🎶 占位符,改为提前显示下一行(未唱状态),该行真正开始时直接开始逐字填充、不重播入场动画。
优化
- 插件发布流水线:新增插件 ZIP 滚动预发行(tag
plugins,每次 main 构建删除重建,四个插件 ZIP 始终对应最新提交),PR 上执行插件打包校验;插件打包脚本的 d8/android.jar 定位改为优先指定、缺失回落最新已装版本(顺带修掉两处构建脚本真 bug)。 - 诊断与日志:插件系统全链路日志(安装/加载/处理器链/结果合并携带违例原因/管线跳过原因与耗时);停滞期
select:/fallback:日志按结构签名去重并加 30 秒心跳;日志按 key 时间窗节流并报告期间抑制条数;诊断报告对私有存储路径脱敏;实机渲染模式诊断日志(animation / timed / words / glow / fill / lineSync);诊断 root 探测窗口 5s→15s、候选二进制扩到 7 个(含 KernelSU / APatch)。 - 设置页与文案清理:移除两个「可调但永不生效」的色键(主歌词颜色、背景遮罩色),避免误导;重置入口归位、互斥提示补齐;新增字符串的多语言与翻译模板同步补齐。
- 文档与规范:新增插件发布规范(
PLUGIN_RELEASE_CONVENTIONS)、插件致谢与许可义务说明、上游同步(UPSTREAM_SYNC)与 LSPosed 推送(LSPOSED_PUSH)runbook。 - 测试:
:app单元测试 98 个测试类全部通过;插件单测 amll-ttml 31 个、ai-translation 30 个、lyricfetch 51 个;换行过渡相关新增单测 27 条。
Full Changelog: aodianjun/com.aodianjun.hyperglow.cnplus@109-0.3.82...193-0.3.166