欧加耳机音质助手

欧加耳机音质助手:让官方耳机面板更完整

把原本藏在系统蓝牙设置里的音质选项,直接加到 OPPO / OnePlus 官方「无线耳机」面板中。

它不是一个新的耳机管理 App。安装并启用后,仍然打开你平时使用的官方「无线耳机」页面,就能看到新增的控制项。

能做什么

  • 查看当前蓝牙音频协议,例如 AAC、LDAC、LHDC、LC3。
  • 直接切换播放质量,不用反复进入开发者选项。
  • 切换 44.1 / 48 / 96 / 192 kHz 等耳机实际支持的采样率。
  • 在支持的手机和耳机上开关 LE Audio。
  • 按耳机记住你的协议、播放质量和采样率,重新连接后自动恢复。
  • 在官方耳机主面板和 OneSpace 快捷面板中使用同一套控制。
  • 出现问题时可一键生成反馈包,方便适配不同机型和系统版本。

2.4.1 更新

  • 修复系统版本低于 16.0.7(非金标)时补丁状态的误报:这类系统里 LHDC V5 为原生支持、本就不需要内存补丁,之前切换「音质优先」可能误弹「未适配,请联系开发者反馈」,诊断页的「码率 branch 补丁」「快切等价补丁」也会显示红叉。
  • 现在这些系统会被正确判定为「原生支持(无需补丁)」:诊断页两项显示绿勾,切换音质优先不再出现任何补丁适配弹窗。
  • 判定只对系统版本低于 16.0.7.0 生效;16.0.7 及以上版本仍按原有补丁适配流程工作,行为不变。

三种 LHDC 播放质量怎么选

选项 适合谁 实际行为
自适应 大多数用户 使用系统原本的自适应算法,优先保证连续播放,并尽可能提高音质。
连接优先 经常卡顿、距离较远 使用约 500 / 560 kbps 的中档码率,连接更稳。
音质优先 想追求最好音质 按耳机能力固定最高码率(1000 或 900 kbps)。

「音质优先」会按耳机能力选择最高档位(部分耳机上限是 900 kbps)。如果你希望遇到拥堵时自动保护而不是死守最高档,可以到模块诊断页的「链路」页开启实验性「码率拥塞治理器」。

看到这些提示是什么意思

以下提示只会在系统版本 16.0.7 及以上(补丁适用版本线)出现;低于 16.0.7 的系统 LHDC V5 为原生支持、无需补丁,不会出现这些提示,诊断页两个补丁状态会显示绿勾。

  • 「未适配,请联系开发者反馈」:当前手机系统版本还没适配码率补丁,切换「音质优先」可能不会生效。这不是故障,把系统版本和反馈包发给我们即可。
  • 「未完整适配,强行使用可能出现异常卡顿」:码率补丁已生效,但快切补丁缺失,切换档位时可能出现卡顿。可以先继续用,同时把反馈发给我们。

使用条件

  • 手机已 Root,并安装支持 libxposed API 101 的 LSPosed / LSP 管理器。
  • OPPO / OnePlus / ColorOS 系统,且带有官方「无线耳机」App(包名 com.oplus.melody)。
  • Android 12 及以上。

本模块只能调用手机和耳机本来就支持的能力,不能让不支持 LHDC、192 kHz 或 LE Audio 的耳机凭空获得这些功能。不同系统版本、无线耳机 App 版本和蓝牙库可能存在差异,未验证组合不保证全部功能可用。

安装方法

  1. 从 Release 下载并安装最新 APK。
  2. 在 LSPosed / LSP 管理器中启用「欧加耳机音质助手」。
  3. 保留模块推荐的四个作用域,不要自行减少:
    • com.oplus.melody
    • com.android.bluetooth
    • com.oplus.wirelesssettings
    • com.android.settings
  4. 重启手机。
  5. 连接耳机,打开官方「无线耳机」App 查看新增选项。

下载最新版 · 查看源码与技术说明 · 反馈问题

出现问题怎么办

先确认模块已经启用、四个推荐作用域都已勾选,并且重启过手机。如果仍有问题:

  1. 打开桌面上的「欧加耳机音质助手」。
  2. 点击「开始记录问题」。
  3. 回到官方耳机面板,把问题复现一次。
  4. 再回到模块页面,点击「生成反馈包」。
  5. 提交 Issue 时附上反馈包、手机型号、系统版本、耳机型号和问题截图。

没有给模块 Root 授权也能生成反馈包,但蓝牙底层日志会少很多。诊断页里的「尚未采集」只代表当前记录里还没有对应事件,不代表模块没有生效

支持作者

如果这个模块对你有帮助,可以扫码请我喝杯咖啡。感谢支持,也欢迎通过反馈一起完善更多设备适配。

微信 / 支付宝捐赠二维码

Releases

8/13/2026, 3:45:53 PM

2.4.1 更新

  • 修复系统版本低于 16.0.7(非金标)时补丁状态的误报:这类系统里 LHDC V5 为原生支持、本就不需要内存补丁,之前切换「音质优先」可能误弹「未适配,请联系开发者反馈」,诊断页的「码率 branch 补丁」「快切等价补丁」也会显示红叉。
  • 现在这些系统会被正确判定为「原生支持(无需补丁)」:诊断页两项显示绿勾,切换音质优先不再出现任何补丁适配弹窗。
  • 判定只对系统版本低于 16.0.7.0 生效;16.0.7 及以上版本仍按原有补丁适配流程工作,行为不变。
  • 诊断页与反馈包同步支持新的 not_required(原生支持)状态,方便区分「无需补丁」和「尚未适配」。

提交记录

  • fix(system): anchor pre-16.0.7 gate to OPlus display shape; add boundary and diag-state tests (474dd00)
  • fix(system): gate native LHDC V5 memory patch on pre-16.0.7 builds (4279714)
  • docs: logcat fast_switch example and semantic-fallback feedback note [skip ci] (ed988ce)
  • docs: 2.4.0 highlights and refresh Xposed release page [skip ci] (c533d39)

构建信息

  • 版本:2.4.1 (27)
  • 分支:main
  • 源提交:435acf230e37a8de7fdddb21ebdf2a251bbcfd36

支持作者

微信 / 支付宝捐赠二维码

Assets

1

8/11/2026, 5:14:03 PM

更新内容

LHDC V5 快切等价补丁新增语义扫描兜底

  • 未命中精确整块签名时,按 ARM64 指令语义与控制流结构自动定位 default 块:38 条指令窗口固定布局、入口常量(mov wN,#0x563)、accept/reject 相对几何(+0x90/+0x98)、tbz/tbnz 目标咬合、组别寄存器(x21/x28)与 CIE 栈偏移(0x70/0x60)交叉校验,全库唯一命中才写入
  • 结构不变的重编译(OTA 只改 adrp/add/adr/bl 立即数)不再需要逐版本维护精确签名——「每机型每版本维护 spec」成为历史
  • 真机验证(一加 13 / ColorOS 16.0.10.501):移除该版本精确签名构建测试包,杀蓝牙进程重启后快切等价补丁由 semantic_quality_switch_v1 自动命中(写入地址与离线样本偏移自洽),音质优先切档正常
  • 精确签名表保留全部 6 个已知版本线(含 16.0.10.501)作为快路径,与语义兜底双保险;码率 branch 补丁原有语义扫描兜底不变

诊断与反馈

  • 状态广播新增 fast_switch_spec= 字段:反馈包直接可见快切补丁命中的补丁名(如 semantic_quality_switch_v1),无需再靠日志推断

测试与文档

  • 语义扫描回归测试:8 个真实库样本各恰一个命中且组别正确、形状变异拒识;测试支持 MELODY_NATIVE_RESEARCH_DIR 环境变量
  • README 与适配指南同步:适配决策表改为「精确签名优先 + 语义兜底」,结构不变的重编译无需人工适配

提交记录

  • feat(system): semantic fallback for LHDC V5 fast-switch equivalence patch (#23) (669b029)
  • docs: 2.3.1 highlights and refresh Xposed release page [skip ci] (ab0929e)

构建信息

  • 版本:2.4.0 (26)
  • 分支:main
  • 源提交:669b0291e1074306dddca29924a0abd6592995b1

支持作者

微信 / 支付宝捐赠二维码

Assets

1

8/11/2026, 3:20:11 PM

更新内容

LHDC V5 native 补丁新增 PJZ110 16.0.10.501 适配(真机验证)

  • 快切等价补丁新增 lhdcv5_quality_equals_pjz110_1610501 整块签名:一加 13 升级 ColorOS 16.0.10.501 后,「音质优先」纯码率切档不再被判定为必须重建输出,消除切档卡顿 / 重建拥塞
  • 码率 branch 补丁 guard 与 16.0.9.401 同字节(branch_plus_68_pjz110_1609401_1610501),沿用既有模式即可命中
  • 一加 13(16.0.10.501)实机验证:码率 branch / 快切等价两条补丁状态均 patched,音质优先切档正常,适配矩阵新增该版本线(✅ 真机验证)

文档

  • 新增《LHDC V5 Native 补丁新版本线适配指南》(docs/native-patch-adaptation-guide.md):适配决策树、脚本命令、唯一性验收与设备验证清单,后续 OTA 重编译可按流程直接适配

提交记录

  • feat(system): adapt LHDC native memory patch for PJZ110 16.0.10.501 (648dc7f)

构建信息

  • 版本:2.3.1 (25)
  • 分支:main
  • 源提交:648dc7f7c0fbb78eb3fe3ab9af08e09e2db22be3

支持作者

微信 / 支付宝捐赠二维码

Assets

1

8/10/2026, 7:46:53 PM

更新内容

LHDC V5 快切等价补丁(native 内存补丁)

  • 修复 ColorOS 16 A2DP_CodecEquals 漏接 LHDC V5:纯码率档位切换不再被强制重建输出,消除"切档卡顿 / 重建拥塞"问题
  • 覆盖全部已知版本线:PJZ110 16.0.9.401/.402(真机验证)、OP15/Ace6T 16.0.7.201、PJZ110 16.0.8.301/PLK110、PLC110 16.0.8.300、RMX6688(MTK)
  • 码率 branch 补丁同步新增 RMX6688(MTK)适配与语义扫描兜底;诊断页补丁状态拆为「码率 branch / 快切等价」两行

宿主适配提醒

  • 切换「音质优先」时按补丁适配状态提示:「未适配,请联系开发者反馈」或「未完整适配,强行使用可能出现异常卡顿」
  • 记忆回放路径同步提醒(覆盖系统更新后补丁失效场景),同一回放片段 60 秒内只提示一次

码率拥塞治理器(实验性)

  • 新增实验性开关(默认关闭,跨蓝牙进程重启保留)
  • Phase N 重构:统一 Target_Cap 事务、分层触发(choppy 漏桶 / 8 秒跳变窗口 / 灾难影子哨兵 / BQR valid gate)、阶梯降档与不对称恢复、恢复倒计时与边界条进度可视化

诊断页 v3

  • 四分类底部导航(概览 / 状态 / 链路 / 反馈)+ Android 手势沉浸
  • 概览新增:模块激活状态、环境信息作用域勾叉标记、关键状态速览、记忆信息卡片化;状态页手动刷新
  • 状态行与反馈录制脱钩:正常使用触发即更新,不依赖录制会话

其他

  • LE Audio / LC3 激活时 OneSpace 与 DetailMain 不再弹出音质选择面板
  • 诊断页细节:导航形变、滚动条、回放链展示等修复
  • 修复英文环境下模块名称/描述显示为英文的问题:桌面图标与 LSPosed 管理器统一显示「欧加耳机音质助手」与中文描述。
  • 文档:中英 README 重构(语言切换、双补丁矩阵、治理器专节与流程图)、治理器算法白皮书、Native 补丁适配计划

提交记录

  • Revert "chore: release 24-2.3.0" (9b3fd10)
  • fix: unify module name/description to Chinese across locales (991e841)
  • chore: release 24-2.3.0 (e0ebc72)
  • Revert "chore: release 24-2.3.0" (c88c852)
  • feat: declare module name/description in module.prop (908a140)
  • docs(lsp): refresh Xposed Modules Repo release page for 2.3.0 (a175b56)
  • chore: release 24-2.3.0 (89008bb)
  • docs: 2.3.0 highlights, diagnostics v3, dual native patches and governor section [skip ci] (df64ccc)
  • fix(native): remember applied equivalence spec for alreadyPatched attribution (24df524)
  • docs: mark all five equivalence specs implemented [skip ci] (bd418b5)
  • feat(native): fast-switch equivalence specs for all five version lines (ba42ee8)
  • docs: record toast-matrix device verification results [skip ci] (4cb75ea)
  • fix(host): dedup replay advisory to one toast per episode per mac (ea2393f)
  • fix(host): qwen review round — looper-safe replay toast + HIGH-mode advisory (689baae)
  • feat(host): native patch advisory toast matrix for quality-priority switch (e6196d3)
  • docs: governor switch is not required for patch verification [skip ci] (e080074)
  • docs: replay path shares B/F matrix to surface post-OTA patch invalidation [skip ci] (842aa11)
  • docs: advisory toast also fires on memory replay of quality-priority [skip ci] (a6df614)
  • docs: narrow advisory matrix to switching into quality-priority only [skip ci] (ea74b22)
  • docs: host-side patch advisory toast matrix (confirmed requirement) [skip ci] (018467b)
  • docs(design): mark v3 plan Phase C verified and registry items complete [skip ci] (25791f7)
  • docs(design): sync v3 plan checklist with implemented V3-07/V3-15 [skip ci] (c258abc)
  • fix(diag): hide page scrollbar (e423de8)
  • feat(diag): manual refresh button on status page (a5bb7a9)
  • fix(diag): v3 device feedback round 1 (5b83d4e)
  • fix(diag): qwen review fixes for v3 wiring (0294056)
  • feat(diag): wire diagnostics v3 layout, edge-to-edge bars and status decoupling (b9f345c)
  • docs(design): add diagnostics v3 categorized layout example and iteration plan (bea68bd)
  • feat(diag): surface native patch status without a recording session (85bd952)
  • fix(host): never open codec quality pickers while LC3 is the active codec (5397a5c)
  • feat(diag): split native patch status into bitrate branch and fast-switch equivalence rows (3608836)
  • docs: sample table with model/SoC map, version-line rule, fix PLK110 label [skip ci] (c1fb81e)
  • docs: correct build identifiers to PJZ110_ (PJZ401/PJZ301 do not exist) [skip ci] (5c39d39)
  • docs: LHDC V5 native patch adoption plan (bitrate branch + quality-switch equivalence) [skip ci] (099ba7e)
  • fix: persist experimental governor switch in bluetooth-process prefs (survives restarts) (d3dbf3a)
  • fix: review — remote prefs pipe, live-subscription isolation, full governor reset on disable (f9e1599)
  • feat: experimental governor switch (default off, UI toggle, runtime gating) (fa83103)
  • docs: English version of the governor algorithm whitepaper [skip ci] (11e05b4)
  • docs: LHDC quality-first governor algorithm whitepaper with flow diagrams [skip ci] (3d42be5)
  • fix: gate timeout dependency to live mode with toybox fallback (PR #11 review) (ae96091)
  • fix: PR #10 Copilot review — capture session tie-in and timeout-driven live log capture (a4661f1)
  • test(system): strengthen replay assertions per review (decision-47/45 discrimination, non-vacuous checks, 6s cadence) (e5c706f)
  • test(system): Phase 5 device replay and abnormal recovery suites (decision 48) (cfc828c)
  • fix(system): mid-tier noRx gate relaxes to <28 (decision 47) (a5f0d2f)
  • docs(system): sync stale tier comments to non-bad evidence (review) (d95e4d2)
  • fix(system): mid-tier 500->900 recovery uses non-bad retx gate (decision 46) (f00cc45)
  • fix(ui): countdown copy spacing (review P3) (83e3b67)
  • feat(ui): Phase 5 recovery countdown and progress-filled boundary bars (7a43d0d)
  • refactor(system): clamp escalation to shorter hold table (review P3) (54cb5ab)
  • fix(system): strict 900->1000 tier tolerates one-sided hot windows, escalating hold 120/240/300s (decision 45) (501f19a)
  • refactor(system): drop dead healthy gate after mid-tier noRx relaxation (review P2) (48b255f)
  • fix(system): mid-tier 500->900 recovery relaxes noRx to <25, retx stays <24 (decision 44) (02314a6)
  • fix(ui): leaky-bucket cap also drives downgrade pill/evidence text; legend covers unsupported (edc59e4)
  • fix(ui): boundary bars show tier status (restored/recovering/blocked) with leaky cap in snapshot (f2a5827)
  • fix(system): 900->1000 strict tier uses non-bad evidence (X3 reachable) (3a7d64a)
  • fix(ui): diagnostics boundary bars and evidence text reflect Phase N-4 tiered caps (9fdf661)
  • feat(system): Phase N-4 downgrade dead zone, stepped downgrades and tiered asymmetric recovery (8c691b0)
  • fix(system): Phase N-3 leaky recovery uses the bad-window complement + 60s re-trigger dead zone (fb709b1)
  • fix(system): Phase N-3 leaky recovery evidence aligned with BQR fallback (no AFH gate) (5cacc83)
  • fix(system): Phase N-3 review round — streaming gates on shadow paths, bucket integration guards (6a18554)
  • feat(system): Phase N-3 layered triggers — choppy leaky bucket, 8s leap window and disaster shadow sentinels (7136661)
  • fix(system): Phase N-2 review round — suspect return, CAS stamp clear, guard arming, legal-window probe gating (a57707f)
  • feat(system): Phase N-2 BQR valid gate, choppy 1s dedup and dual start/post-switch guards (9422a75)
  • fix(system): Phase N-1 review round — same-value guard, quiet bypass writes, streaming-gated timeout (a698922)
  • feat(system): Phase N-1 Java single brain, unified Target_Cap with requestId transactions (e550162)
  • feat: root feedback capture, SO collectors and governor resilience baseline (validated 2026-08-07) (c5445ec)
  • docs: add English README (c5274dc)
  • feat: LHDC 900kbps peer ceiling fallback with per-device memory and governor link (3fbd5b7)
  • feat(system): adapt LHDC native memory patch for realme RMX6688 (MTK) (a04a187)

构建信息

  • 版本:2.3.0 (24)
  • 分支:main
  • 源提交:9b3fd10e9365723500754265b4ebbcdad9e1b580

支持作者

微信 / 支付宝捐赠二维码

Assets

1

7/29/2026, 2:53:44 AM

更新内容

🎧 音质优先播放优化

  • 优化 900 kbps 稳定档位的利用,减少 900 与 500 kbps 之间频繁跳变。
  • 加入升档试探、稳定性验证、失败冷却和证据衰减机制,降低反复升档造成的可感知卡顿。
  • 修复部分环境下码率长期停留在 500 kbps、无法重新升档的问题。
  • 修复无效或延迟的 BQR 样本被误判为链路拥塞的问题。
  • 优化队列满、持续高重传、No-Rx 和 AFH 信道恶化时的快速保护。
  • 完善协议切换、耳机断开及播放会话变化时的状态清理,避免旧锁定状态影响新连接。
  • 缩短耳机连接后记忆配置恢复的等待时间,改善首次连接后出声较慢的问题。

📊 全新诊断页面

  • 全面启用新版诊断页面。
  • 新增 LHDC BQR 实时环境显示:
    • 重传率
    • No-Rx
    • 可用 AFH 信道
    • 蓝牙音频队列占用
  • 新增 5 分钟、30 分钟和全程历史趋势图。
  • 新增当前码率上限、升档边界以及试探、验证、锁定状态显示。
  • 新增拥塞治理事件理由和中文说明,方便判断降档或无法升档的具体原因。
  • 实时诊断数据不再依赖「开始记录问题」。
  • 页面仅在前台持续刷新;退出或切换到后台后立即停止,不产生后台周期采集。

🛠️ 诊断可靠性修复

  • 开始记录问题后,自动重新请求各作用域状态,并进行有限次数重试。
  • 支持补发当前进程中仍然有效的 Hook、页面注入、Native 补丁和 Bridge 状态。
  • 正确区分 DetailMain 与 OneSpace 页面路径,未进入对应页面时不再误判为模块未生效。
  • 修复「最近警告」「最近错误」没有异常时显示“尚未采集”的问题,现在会明确显示“未发现”。
  • 修复部分诊断状态需要手动点击「重抓记忆快照」才更新的问题。
  • 改进最近事件、记忆快照和作用域状态的显示文案。
  • 修复诊断页面白屏、文字溢出、状态描述歧义及历史图表显示异常。

⚙️ 其他改进

  • 改进 Native 治理器与 Java 状态机之间的升档结果同步。
  • 增加播放会话标识,避免跨会话沿用过期的瞬时状态。
  • 完善诊断与拥塞治理相关自动化测试。

更新模块后建议重启设备,确保蓝牙、无线耳机和无线设置作用域加载最新代码。

提交记录

  • feat: finalize LHDC governor and diagnostics (392cba1)
  • fix(ui): use real MLog kv names for BQR/governor/reason parsing (6e972e9)
  • feat(ui): wire BQR cards into MasterSwitchActivity (round 3) (e8bb109)
  • fix(ui): foreground-only heartbeat, restore hidden diagnostic UI (88043ad)
  • fix(system): retune LHDC link health to recover from stuck-at-500 ceilings (fa40b7e)
  • docs: refresh project and LSP release pages [skip ci] (99bd3a5)

构建信息

  • 版本:2.2.0 (23)
  • 分支:main
  • 源提交:392cba1c2ad9579d55bb4f829cfd3789446ab0ce

支持作者

微信 / 支付宝捐赠二维码

Assets

1

7/27/2026, 8:37:58 PM

更新内容

  • 优化 LHDC「音质优先」模式:以 1000 kbps 为目标,根据实时链路拥塞在 1000 / 900 / 500 / 400 kbps 间动态保护,显著减少固定 1000 kbps 环境下的卡顿。
  • 接入系统蓝牙 BQR 链路质量报告,综合 AFH 可用信道、重传、无响应、RSSI 等指标判断升档时机,避免在不适合的环境中反复尝试高码率。
  • 为 500→900、900→1000 分别学习链路能力;多次快速失败后锁定稳定档位,链路恢复健康后再逐级探测。
  • 自适应和音质优先模式新增实时码率显示,便于观察当前编码器目标码率。
  • 修复诊断日志可能频繁触发模块后台自启动的问题:平时不再持续唤醒模块,只有主动点击“开始记录问题”后才开启最长 30 分钟的限时记录,生成反馈包后立即停止。
  • 优化诊断页提示,将容易引起误解的 “not seen” 改为“尚未采集(不代表模块未生效)”。
  • 加强 LHDC native 治理器安装与活动编码器捕获路径,避免旧式链接器 Hook 带来的蓝牙进程稳定性风险。
  • 完善反馈包中的 BQR、LHDC 治理状态和蓝牙栈日志,便于后续根据不同设备与射频环境继续调参。

提交记录

  • feat: finalize safe LHDC quality governor (7d86fde)
  • fix: capture active LHDC handle from encode path (d27ce09)
  • fix: protect fixed LHDC 1000 kbps playback (2077b18)
  • fix: resolve loaded LHDC encoder without linker namespace (c429d26)
  • fix: install LHDC governor without loader hooks (f3d0f8b)
  • feat: add seamless LHDC quality governor (60b5d9d)
  • Revert "feat: add seamless LHDC quality governor" (8dbeac4)
  • Revert "fix: retry LHDC governor after native library maps" (970a749)
  • fix: retry LHDC governor after native library maps (ca5b798)
  • feat: add seamless LHDC quality governor (41c757e)

构建信息

  • 版本:2.1.0 (22)
  • 分支:main
  • 源提交:7d86fdef04cf1795c57ff6063f47b1c80ef81c63

支持作者

微信 / 支付宝捐赠二维码

Assets

1

7/11/2026, 1:26:52 PM

更新内容

  • 修复深色模式下二级弹窗背景色异常。#7

提交记录

  • fix: align COUI choice popup to card edge (0a8c539)

构建信息

  • 版本:2.0.1 (21)
  • 分支:main
  • 源提交:0a8c539d554f38b556592efef32635bb7833a6ca

支持作者

微信 / 支付宝捐赠二维码

Assets

1

7/11/2026, 11:35:55 AM

更新内容

主要更新

  • 新增并优化 LE Audio 开关与回连逻辑。
  • 区分“LE Audio 已开启”和“LE Audio 已连接”状态,连接过程中显示明确的连接中状态。
  • 优化耳机开仓、ACL/A2DP 重连后的 LE Audio 自动回连,增加有限次数重试与冷却机制。
  • 优先使用标准 LE Audio Profile 连接接口,减少不必要的厂商广播调用。
  • 修复快速切换耳机页面时可能误写入上一只耳机状态的问题。
  • 加强按耳机记忆的 codec、采样率回放与多进程 owner 管理。
  • 修复 A2DP 尚未 ready 时记忆配置无法保存的问题。
  • 完善跨进程蓝牙桥接校验,增加发送者身份、MAC、连接状态和参数校验。
  • 优化 A2DP codec 写入失败时的多级 fallback 链。
  • 增强 LHDC V5 native patch 的 ARM64 语义扫描与安全回滚机制。
  • 新增适配一加 13 PJZ110 / ColorOS 16.0.9.401 的 libbluetooth_jni.so patch。
  • native patch 写入后增加指令回读、缓存刷新和权限恢复校验。
  • 反馈包日志统一脱敏蓝牙 MAC。
  • 移除与模块功能无关的 Live 弹窗、Nearby Discovery、Fast Pair 日志探测。

兼容性

  • 适配 OPPO / OnePlus / ColorOS 无线耳机页面。
  • 已验证一加 13 PJZ110 16.0.9.401
  • 仍依赖厂商私有页面结构和隐藏蓝牙接口,不同系统版本可能存在行为差异。

验证

  • 单元测试:23 项全部通过。
  • Debug lint:通过。
  • Release 构建:通过。
  • LE Audio 手动开启测试:成功完成自动连接。

提交记录

  • feat: harden LE Audio reconnect and codec patching (cac909b)

构建信息

  • 版本:2.0.0 (20)
  • 分支:main
  • 源提交:cac909bf4af72e12ea5f8260de6085ec88b3fa8d

支持作者

微信 / 支付宝捐赠二维码

Assets

1

7/9/2026, 9:21:19 AM

更新内容

  • 新增 PLC110 / ColorOS 16.0.8.300 系列 libbluetooth_jni.so 机器码 pattern 适配。#6

提交记录

  • fix: add PLC110 LHDC native patch pattern (6c6ca40)
  • ci: append donation QR to release notes (586e5ef)
  • docs: add donation QR code (24a6b1a)

构建信息

  • 版本:1.9.1 (19)
  • 分支:main
  • 源提交:6c6ca400ee7c9bdabafb0f27f59380e0cefb754b

支持作者

微信 / 支付宝捐赠二维码

Assets

1

7/2/2026, 1:47:28 PM

更新内容

  • 引入 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 这类同族记忆仍保留原档位。
  • 日志降噪与诊断优化:

    • 反射 Path-A fallback、optional fallback、recoverable timeout 等不再大量输出堆栈;
    • 改为结构化事件,反馈包更好读;
    • replay.cancel.user_writereplay.skip.user_write_quietreplay.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

支持作者

PY_QR

Assets

1

6/23/2026, 3:46:18 PM

更新内容

  • 优化记忆开关稳定性。

提交记录

  • fix: stabilize remembered codec settings (cdb72e6)
  • docs: clarify LHDC native patch pattern coverage [skip ci] (a7b07e4)

构建信息

  • 版本:1.8.2 (17)
  • 分支:main
  • 源提交:cdb72e6eec874e578c6c5617aacbdea443dc6296

Assets

1

6/16/2026, 11:31:36 AM

更新内容

  • 对存在阉割LHDC V5版本的耳机进行优化

提交记录

  • fix: keep LHDC quality priority semantic (790aff8)
  • test: expose LHDC 900 and 1000 kbps options (cfcc0ed)
  • fix: accept LHDC 900 kbps ceiling (9bb77fc)
  • docs: update feedback and native patch notes [skip ci] (99dcff5)

构建信息

  • 版本:1.8.1 (16)
  • 分支:main
  • 源提交:790aff89bd2e0a0a3859f95c80e80bd722790870

Assets

1

6/13/2026, 2:25:36 PM

更新内容

新增

  • 新增 native patch 未适配提示:当检测到当前机型蓝牙库不支持补丁时,切换失败会提示“未适配,请联系开发者反馈”。
  • 新增桌面图标隐藏开关。请重启手机或重启桌面进程。

优化

  • 优化 AAC / SBC / LHDC 编码记忆,减少断开重连后回落到其他编码的情况。
  • 优化反馈包日志采集能力,优先通过 root 抓取关键蓝牙日志。
  • 优化诊断页状态摘要,native patch、写入、记忆回放等状态更直观。
  • UI 调整为 MIUIX 风格。

修复

  • 修复部分场景下耳机未连接时面板状态异常点亮的问题。
  • 修复反馈包中 native patch 状态显示为 not seen 的问题。
  • 修复开始新诊断记录时旧状态残留的问题。
  • 修复 Path-A fallback 警告干扰诊断摘要的问题。

适配

  • 为一加15 C16.0.7.207适配native patch

当前适配native patch机型:

  • 一加13:C16.0.8.301
  • 一加15 C16.0.7.207

提交记录

  • Restore PJZ110 native patch signature (f54adea)
  • Add native patch unsupported test build (9e369bb)
  • Handle unsupported native patch feedback (03199fb)
  • Filter root logcat before feedback capture (c5426fd)
  • Improve feedback log capture (46701e6)
  • Fix hidden launcher icon entry (ec3abd9)
  • Improve diagnostics and launcher settings (33eea26)
  • Support OP15 patch and codec memory replay (47f60b7)

构建信息

  • 版本:1.8.0 (15)
  • 分支:main
  • 源提交:f54adea0da99d0e9bde478fdbae0f2f8a5d01a10

Assets

1

6/12/2026, 7:19:31 AM

更新内容

  • 优化 LHDC V5 音质与采样率切换流程,连接后会等待 A2DP 音频路由真正就绪再恢复记忆设置,避免耳机开仓但未佩戴时误判切换失败。
  • 修复 Melody 多进程同时回放记忆导致设置被旧值覆盖的问题,例如自适应 / 192 kHz 被意外恢复成 1000 kbps。
  • 修复耳机未连接时蓝牙栈残留旧 codec 状态,导致模块面板误点亮、质量/采样率选项可点击的问题。
  • 优化与声音通道切换的逻辑冲突,耳机开仓连接但耳机尚未佩戴就绪时,面板会显示“等待耳机就绪”,此时尝试切换会给出等待提示。

提交记录

  • Ignore stale codec status after ACL disconnect (857c344)
  • Limit remember replay to foreground process (45f8602)
  • Require A2DP active broadcast before ready (b3fbdf1)
  • Wait for A2DP route readiness (6c90715)
  • Revert A2DP readiness gating (911e183)
  • Gate codec replay until A2DP is ready (962b5cb)
  • docs: clarify lhdc bitrate log capture (89dd59f)
  • docs: clarify memory patch log capture (6f2ade1)
  • docs: fix memory patch logcat command (2950891)
  • Update README.md (fc4df44)
  • docs: describe runtime lhdc memory patch (5fd999c)

构建信息

  • 版本:1.7.1 (14)
  • 分支:main
  • 源提交:857c344958e588efc718be329d0898e7f8f08c70

Assets

1

6/11/2026, 10:23:43 PM

更新内容

  • 优化 LHDC V5 播放质量控制,选项收敛为自适应、连接优先(500/560kbps)、音质优先(1000kbps)三档。
  • 针对新 ColorOS / OPlus 系统限制,切换音质优先失败时显示“由于金标系统限制,切换失败”。
  • 改进蓝牙编解码状态读取路径,优先使用 bridge / 广播状态,减少开发者选项 CDM 权限报错和日志刷屏。
  • 新增系统设置作用域日志降噪,屏蔽 LHDC V5 特定码率导致的开发者选项 summary 报错。
  • 修复 LHDC V5 切换音质时偶发音频短暂切到手机扬声器的问题:移除 LHDC priming 二段写入,改为单次目标配置写入。
  • 配合 native/KSU 补丁验证,LHDC V5 音质优先可稳定达到约 1000 kbps,切换后不会回落自适应。
  • OPlus-LHDCV5-Native-Patch-dynamic-test-v0.3.zip:经由一加13 C16.0.8版本验证。
  • 新增实验性 native 运行时补丁:在蓝牙进程内修补 ColorOS / OPlus LHDC V5 固定码率限制,不再依赖替换系统 libbluetooth_jni.so

提交记录

  • Experiment with runtime LHDC native patch (0c9265f)
  • docs: add ksu native patch source (b32c1e7)

构建信息

  • 版本:1.7.0 (13)
  • 分支:main
  • 源提交:0c9265fe78f05cb86b83becf94acbb9492b0f271

Assets

1

6/11/2026, 8:38:02 PM

更新内容

  • 优化 LHDC V5 播放质量控制,选项收敛为自适应、连接优先(500/560kbps)、音质优先(1000kbps)三档。
  • 针对新 ColorOS / OPlus 系统限制,切换音质优先失败时显示“由于金标系统限制,切换失败”。
  • 改进蓝牙编解码状态读取路径,优先使用 bridge / 广播状态,减少开发者选项 CDM 权限报错和日志刷屏。
  • 新增系统设置作用域日志降噪,屏蔽 LHDC V5 特定码率导致的开发者选项 summary 报错。
  • 修复 LHDC V5 切换音质时偶发音频短暂切到手机扬声器的问题:移除 LHDC priming 二段写入,改为单次目标配置写入。
  • 配合 native/KSU 补丁验证,LHDC V5 音质优先可稳定达到约 1000 kbps,切换后不会回落自适应。
  • OPlus-LHDCV5-Native-Patch-dynamic-test-v0.3.zip:经由一加13 C16.0.8版本验证。

提交记录

  • Avoid LHDC priming route churn (9ec0571)
  • Prefer broadcast status before direct API (4efb909)
  • Fix codec status fallback noise (a3f78ac)

构建信息

  • 版本:1.6.0 (12)
  • 分支:main
  • 源提交:86241cab246f9b190ec40a2ed0053c3ae204e57d

6/11/2026, 6:38:48 PM

更新内容

  • 优化播放质量逻辑

提交记录

  • Refine LHDC quality options and restriction toast (75c1816)
  • Fix LHDC prime status polling thread (f74f530)
  • Test LHDC V5 quality diagnostics (2a5d946)

构建信息

  • 版本:1.5.1 (11)
  • 分支:main
  • 源提交:75c18166360fcb0fee5532d04b01567bb7e96ef7

Assets

1

6/3/2026, 10:23:36 PM

更新内容

  • 编解码器加入AAC选项(蓝牙音质)
  • 优化UI以及动画,使其更加贴合官方UI视觉

提交记录

  • Add AAC high quality SBC warmup fallback (cb3a490)
  • Retry intermittent high quality restore (1babc8e)
  • Guard stale codec switch fallbacks (eb07caf)
  • Fast path standard codec switching (759f093)
  • Fast path high quality codec restore (6c4b520)
  • Use selectable codec capabilities for high quality fallback (4d21958)
  • Fix high quality codec restore from AAC (dc61873)

构建信息

  • 版本:1.5.0 (10)
  • 分支:main
  • 源提交:cb3a490eee813ba423a8acbde5fd0e195d90372b

Assets

1

6/1/2026, 7:40:10 AM

更新内容

  • 新增蓝牙编解码器切换功能,支持在蓝牙音质弹窗中从 LHDC 切换至 SBC。
  • 修复金标系统下的 UI 表现问题,提升整体视觉一致性。

提交记录

  • ci: force push to Xposed-Modules-Repo (1980382)

构建信息

  • 版本:1.3.0 (8)
  • 分支:main
  • 源提交:1980382a5082cfae0c57b1cc47d895b32ca10568

Assets

1