更新内容
-
引入 DexKit,简化 Melody 宿主混淆类/方法发现流程,提高后续适配稳定性。
-
反馈包新增/完善记忆信息:
- 当前每个耳机的记忆 codec、播放质量、采样率;
- 上次记忆恢复的完整链路日志;
- replay / game mode / write 关键事件时间线。
-
修复官方游戏模式冲突:
- 游戏模式将协议切到 SBC 时,模块不再反复抢回记忆协议;
- 游戏在后台未真正退出时,继续跟随官方游戏模式,不恢复记忆;
- 真正退出游戏后再恢复记忆。
-
增强游戏模式退出判断:
- 不再只靠 TTL 到期判断游戏结束;
- 增加 live codec probe,确认不再是
SBC + specific2 > 0后才恢复记忆; - 避免游戏后台仍存活时误恢复。
-
优化退出游戏后的恢复速度:
- 修复晚到的
active=false事件取消待执行 replay 的问题; - active device ready / host false 时主动快速 probe;
- 游戏退出确认后的 replay 延迟从 2s 降到约 800ms;
- probe 做了去重,避免重复线程和日志噪声。
- 修复晚到的
-
修复手动切协议时与记忆重放竞态:
- 用户手动切 codec / 码率时,立即取消旧 pending replay;
- bump replay generation,让已排队的旧 replay 失效;
- 增加 20 秒用户写入静默窗口;
- 跨 Melody 主进程和
:fg进程广播同步,避免另一个进程继续回放旧记忆。
-
修复 AAC → LHDC 小概率默认质量错误:
- 不再把 AAC 记忆里的
specific1=133误用于 LHDC; - AAC/SBC 切到 LHDC 时默认使用 LHDC 自适应;
- LHDC→LHDC、LDAC→LDAC 这类同族记忆仍保留原档位。
- 不再把 AAC 记忆里的
-
日志降噪与诊断优化:
- 反射 Path-A fallback、optional fallback、recoverable timeout 等不再大量输出堆栈;
- 改为结构化事件,反馈包更好读;
replay.cancel.user_write、replay.skip.user_write_quiet、replay.stale.user_write等保护性事件标记为正常状态;- bootstrap 权限/查询失败日志只记录一次,减少刷屏。
整体效果:记忆恢复、官方游戏模式、手动切协议三条链路现在基本互不抢方向盘;反馈包也能更清楚地定位下一类问题。
提交记录
- fix: avoid reusing aac quality for lhdc writes (
638a94f) - fix: cancel memory replay during user codec writes (
890652f) - fix: speed up game mode replay recovery (
8cfda70) - chore: reduce recoverable fallback log noise (
f2f9cef) - fix: probe game mode exit before replay (
b70f186) - fix: clarify bootstrap diagnostics (
e7a09e0) - fix: harden game mode replay and dexkit loading (
b0e002e) - fix: suppress memory replay during official game mode (
6380133) - feat: use DexKit for host class discovery (
091b243) - fix: harden remembered codec replay (
dce7959)
构建信息
- 版本:1.9.0 (18)
- 分支:main
- 源提交:638a94f2c953836480a6d503e467f27eda33182c
支持作者
