v4.1.0
ColorOS Live Lyrics Bridge v4.1.0
中文
4.1 是一次稳定性与现代 LSPosed API 升级。Bridge 继续只运行于 system 和
com.android.systemui,播放器专属逻辑仍由 12 个独立 Provider 在播放器自己的
MediaSession 中发布标准 MediaMetadata["lyricInfo"]。本版把全部 Provider 统一迁移到
libxposed API 102,并集中修复 4.0 实机回归、完整代码审查以及歌词/封面边界问题。
12 Provider 全量 API 102 迁移
- Salt、Cone、酷我、LX、Poweramp、Metrolist、酷狗、QQ、网易云、Apple、Spotify 与汽水
全部改用唯一的XposedModule入口和META-INF/xposed现代资源。 - 12 个 Provider 均声明
minApiVersion=102、targetApiVersion=102、静态作用域、
exceptionMode=protective,并明确关闭 Hot Reload。 - 移除旧 Hook 入口、旧共享偏好和兼容层;Debug 配置切换到 libxposed Remote Preferences,
默认仍关闭,开启或关闭后需要完全重启目标播放器进程。 - 每个 Provider 的 package/process/profile、歌词获取、曲目 generation、翻译 lane、封面、
PlaybackState 与 action 所有权保持 4.0 已验证语义。 - 全部 Provider 内部版本统一提升到
1.1.0:SaltversionCode=6,其余 11 个
versionCode=2,可覆盖安装正式 4.0 Provider。
Bridge 稳定性与歌词修复
- 收紧 SystemUI 主进程路由,修复 MediaController 回调在控制器切换后的注册/注销与事件代际,
避免旧控制器或旧歌词结果污染当前曲目。 - 歌词发布新增本地 epoch 与曲目身份门禁;稳定 track key 优先,缺少身份的 payload 不再跨曲
复用任意旧歌词。 - 修复酷狗冷启动首曲身份和时间轴事务:fallback key、mediaId、songId 的同曲补全不再制造
新 generation;宿主官方lyric时间倒退时改用同批 KRC 生成的单调时间轴,完整保留制作
人员 credit,避免《回家的路》第一句在冷启动时丢失。QQ 音乐正常首句行为保持不变。 - 统一识别普通空格、NBSP 与 Unicode 空白占位,防止空白行被误判为翻译。
- 官方歌词自绘失败时立即回退宿主绘制,并确保 Canvas 状态始终恢复,避免单帧空白或后续绘制
污染。 - 修复 OPlus 媒体 action 图标在旧 Android API 上的类型读取风险;只有图标反射写入并回读成功
时才替换/提升翻译 action。 - 完成反射/Class 缓存、插件 Hook 生命周期、负速率回绕以及设置颜色对话框键盘与无障碍行为的
稳定性收口。 - 结构化日志不再记录完整歌词、稳定 media ID、URL query 或私人路径,诊断只保留计数、类型与
脱敏 hash。
酷我首曲封面
- 酷我 Provider 在播放器首次歌词早于宿主 metadata 到达时保持当前 MediaSession,避免首曲错过
立即发布窗口。 - 对酷我官方封面主机使用 HTTPS、无重定向、有限超时/大小/分辨率的封面补全;结果严格绑定
track identity 与 generation,切歌后的旧结果会被丢弃。 - 修复首次打开酷我时首曲封面降级为纯色、后续切歌却正常的问题;后续宿主原生 bitmap 仍优先。
Provider 支持矩阵 / Provider matrix
| 播放器 / Player | 资产 / Asset | Provider 内部版本 / Internal version | 已验证宿主 / Validated host | 歌词能力 / Lyrics |
|---|---|---|---|---|
| Salt Player | ColorOS-Live-Lyrics-Provider-Salt-v4.1.0.apk |
1.1.0 (6) |
12.3.0-alpha03 | 逐字、翻译 / Word timing, translations |
| Cone / GP | ColorOS-Live-Lyrics-Provider-Cone-v4.1.0.apk |
1.1.0 (2) |
1.2.0 profile / GP | 完整时间轴、翻译 / Timeline, translations |
| 酷我 / KuWo | ColorOS-Live-Lyrics-Provider-KuWo-v4.1.0.apk |
1.1.0 (2) |
12.2.0.0 | 官方追加、逐字、翻译 / Official append, word timing, translations |
| LX / Walnut | ColorOS-Live-Lyrics-Provider-LX-v4.1.0.apk |
1.1.0 (2) |
LX 1.8.4 / Walnut 26.07.16 | 逐字、翻译、蓝牙与封面兼容 / Word timing, translations, Bluetooth/artwork |
| Poweramp | ColorOS-Live-Lyrics-Provider-Poweramp-v4.1.0.apk |
1.1.0 (2) |
build 1025 | 同目录或内嵌歌词、翻译 / Sidecar or embedded lyrics, translations |
| Metrolist | ColorOS-Live-Lyrics-Provider-Metrolist-v4.1.0.apk |
1.1.0 (2) |
13.6.1 | BetterLyrics/LrcLib/KuGou,不支持翻译 / No translations |
| 酷狗 / KuGou Concept | ColorOS-Live-Lyrics-Provider-KuGou-v4.1.0.apk |
1.1.0 (2) |
20.8.0 / 5.2.61 | 官方追加、逐字、翻译 / Official append, word timing, translations |
| QQ 音乐 / QQ Music | ColorOS-Live-Lyrics-Provider-QQ-v4.1.0.apk |
1.1.0 (2) |
20.7.5.8 | QRC 逐字、翻译 / QRC word timing, translations |
| 网易云、荣耀、9.0.40 / NetEase, Honor, 9.0.40 | ColorOS-Live-Lyrics-Provider-NetEase-v4.1.0.apk |
1.1.0 (2) |
9.5.70 / 3.5.20 / 9.0.40 | 官方追加或构造、翻译 / Official append or constructed, translations |
| Apple Music | ColorOS-Live-Lyrics-Provider-Apple-v4.1.0.apk |
1.1.0 (2) |
6.5.2 | JNI TTML 逐字、翻译 / JNI TTML word timing, translations |
| Spotify | ColorOS-Live-Lyrics-Provider-Spotify-v4.1.0.apk |
1.1.0 (2) |
9.1.78.2208 | Color Lyrics 逐行或逐字,不支持翻译 / Line or word timing, no translations |
| 汽水音乐 / QiShui | ColorOS-Live-Lyrics-Provider-QiShui-v4.1.0.apk |
1.1.0 (2) |
20.7.0 | TrackLyric/缓存、逐字、翻译 / TrackLyric/cache, word timing, translations |
从 4.0 升级
- 需要支持 libxposed API 102 的 LSPosed/LSP 环境;建议使用 LSPosed 2.2.0 或更新版本。
- 使用正式
ColorOS-Live-Lyrics-Bridge-v4.1.0.apk覆盖安装 4.0.0,Bridge 作用域仍只保留
system与com.android.systemui。 - 使用同一 4.1.0 Release 中自己需要的 Provider APK 覆盖 4.0 Provider,并保持每个 Provider
只勾选对应播放器。 - Provider Debug 已迁移到 Remote Preferences,升级后会按默认关闭处理;需要日志时重新打开
Debug,并完全停止后重启播放器。 - 本版不支持 Hot Reload。更新 Provider、修改作用域或切换 Debug 后必须重启目标进程;首次
升级建议重启设备。 - 不要让旧词幕 Provider 与当前 Provider 同时 Hook 同一播放器。
需要回滚时可重新安装 4.0.0 正式 Bridge 与对应 Provider。Provider applicationId 和正式签名
保持不变;若 Android 阻止降版本,需要使用允许版本降级的安装方式。Bridge 设置 schema 未
变更,但仍建议升级前导出完整配置备份。
验证
- 12/12 Provider 已完成 API 102 资源、入口、scope、依赖、Remote Preferences、legacy 字符串、
单元测试和 Debug 全矩阵门禁;488 tests,0 failure/error/skip,生成恰好 12 个 Debug APK。 - Wave A–E 覆盖全部 12 个 Provider 及多宿主/profile 的用户真机回归;网易云 9.0.40 构造
profile 按其特殊安装前提验收。 - 本次 Bridge 审查修复通过 503 tests(0 failure/error,6 项明确 skipped)、debug/release
lint(0 error)与 Debug 构建门禁;酷狗首句、酷我首曲封面和 OPlus 媒体 action 崩溃路径
均由用户实机确认。 - 正式签名 RC/GA 流水线会重新构建 13 个 APK,并校验 R8、包名、内部版本、API 102 资源、
scope、证书、zipalign、DEX 禁用字符串、16 项资产与 SHA-256。
已知限制
- ColorOS 锁屏歌词属于私有 SystemUI 功能,系统更新后可能需要重新适配。
- 播放器私有歌词接口可能随播放器更新变化。
- Spotify 与 Metrolist 当前不提供翻译;QQ 音乐 HD 不在支持矩阵。
- 歌词源没有逐字或翻译 lane 时,Bridge 不会凭空生成。
- 4.1 Provider 要求 libxposed API 102;不提供旧 Hook API 回退或 Hot Reload。
本项目不分发词幕 Provider。需要词幕时请前往
LyricProvider 原项目,词幕显示或产品问题也请
向原项目反馈。
开发文档、致谢与支持
感谢 tomakino/LyricProvider 原项目及贡献者、Accompanist Lyrics Core,以及提供播放器样本、
SystemUI 证据、日志、录屏和实机验证的所有用户。第三方来源与许可证保留在 Bridge
LICENSE、Provider NOTICE、源码头和迁移报告中。
如果项目对你有帮助,可在
Bridge README 查看支持方式。
支持完全自愿,不影响 Issue 优先级或 Release 资产获取。
English
4.1 is a stability and modern LSPosed API release. Bridge remains limited to system and
com.android.systemui; player-specific code still lives in 12 independent Providers that publish
standard MediaMetadata["lyricInfo"] through player-owned MediaSessions. This release migrates the
entire Provider matrix to libxposed API 102 and closes the 4.0 device regressions, full code-review
findings, and lyric/artwork edge cases.
Complete 12-Provider API 102 migration
- Salt, Cone, KuWo, LX, Poweramp, Metrolist, KuGou, QQ, NetEase, Apple, Spotify, and QiShui now use
a singleXposedModuleentry and modernMETA-INF/xposedresources. - Every Provider declares API 102 as both minimum and target, static scope, protective exception
mode, and explicitly disabled Hot Reload. - Legacy hook entries, preferences, and compatibility layers were removed. Debug configuration now
uses libxposed Remote Preferences, remains off by default, and takes effect after a full player
process restart. - Existing package/process profiles, lyric acquisition, track generation, translation lanes,
artwork, PlaybackState, and action ownership preserve the device-validated 4.0 behavior. - All Provider internal versions move to
1.1.0: Salt usesversionCode=6; the other 11 use
versionCode=2, allowing in-place upgrades from the official 4.0 packages.
Bridge stability and lyric fixes
- Tightened the SystemUI main-process route and repaired MediaController callback registration,
teardown, and event epochs across controller changes. - Added local publication epochs and track-identity gates. Stable track keys are authoritative, and
identity-free payloads can no longer retain arbitrary lyrics across tracks. - Fixed KuGou cold-start identity and timeline transactions. Enriching the same track from a
fallback key to mediaId/songId no longer advances generation; a non-monotonic officiallyric
is replaced by a monotonic timeline generated from the same KRC while retaining every production
credit. This prevents the first real line from disappearing and preserves the correct QQ path. - Unified normal spaces, NBSP, and Unicode whitespace placeholder handling.
- Renderer failures immediately fall back to host drawing and always restore Canvas state.
- Removed the old-API OPlus media-action icon type risk; translation action replacement/promotion
now requires successful semantic icon writeback and readback. - Closed reflection/cache, plugin-hook lifecycle, negative rewind, settings keyboard, and
accessibility issues. - Structured diagnostics no longer expose full lyrics, stable media IDs, URL queries, or private
local paths.
First-track KuWo artwork
- KuWo keeps the current MediaSession when lyrics arrive before the first host metadata update, so
the first-track publication window is not lost. - Official KuWo artwork hosts are fetched over HTTPS with no redirects and bounded timeout, size,
and dimensions. Completion is tied to track identity and generation; stale results are dropped. - This fixes the first KuWo track degrading to a solid color while later track changes work. A
later host-provided bitmap still has priority.
The single bilingual Provider matrix above is shared by both language sections.
Upgrade from 4.0
- Use an LSPosed/LSP environment that supports libxposed API 102; LSPosed 2.2.0 or newer is
recommended. - Install the official
ColorOS-Live-Lyrics-Bridge-v4.1.0.apkover 4.0.0 and keep Bridge scope
limited tosystemandcom.android.systemui. - Install the matching Provider APKs from the same 4.1.0 Release over their 4.0 versions, keeping
each Provider scoped only to its player. - Provider Debug moved to Remote Preferences and starts from the disabled default after upgrade.
Re-enable it when logs are needed, then fully restart the player. - Hot Reload is not supported. Restart the target process after Provider, scope, or Debug changes;
a device reboot is recommended for the first upgrade. - Never let an old Lyricon Provider and the current Provider hook the same player simultaneously.
Rollback uses the official 4.0.0 Bridge and Provider packages. Application IDs and release signing
remain unchanged; Android may require an install method that explicitly permits version downgrade.
The Bridge settings schema is unchanged, but exporting a complete backup before upgrade is still
recommended.
Validation
- All 12 Providers passed API 102 resource, entry, scope, dependency, Remote Preferences, legacy
string, unit-test, and debug-matrix gates: 488 tests with no failures, errors, or skips, and exactly
12 debug APKs. - User-run Wave A–E device regression covered all Providers and multi-host/process profiles;
NetEase 9.0.40 was accepted under its documented special installation prerequisite. - The Bridge review fixes passed 503 tests (no failures/errors, six explicit skips), debug/release
lint with no errors, and the debug build gate. The KuGou first line, first-track KuWo artwork, and
OPlus media-action crash paths were confirmed on device by the user. - The signed RC/GA workflow rebuilds all 13 APKs and verifies R8, package IDs, internal versions,
API 102 resources, scopes, certificate, zipalign, forbidden DEX strings, 16 assets, and SHA-256.
Known limits
- ColorOS lock-screen lyrics are a private SystemUI feature and may require renewed compatibility
work after system updates. - Player-private lyric APIs can change after player updates.
- Spotify and Metrolist currently have no translations; QQ Music HD is outside the matrix.
- Bridge cannot invent word timing or translations absent from the source.
- 4.1 Providers require libxposed API 102; there is no legacy hook fallback or Hot Reload support.
This project does not distribute Lyricon Providers. Obtain them from the
original LyricProvider project, and report Lyricon
display/product issues there.
Developer documentation, acknowledgements, and support
Thanks to the original tomakino/LyricProvider project and contributors, Accompanist Lyrics Core,
and everyone who supplied player samples, SystemUI evidence, logs, recordings, and device
validation. Third-party provenance and licenses remain in the Bridge LICENSE, Provider NOTICE,
source headers, and migration reports.
Support is optional and never changes issue priority or access to release assets. See the
Bridge README for
support options.
Assets / 发布资产
The Release contains exactly 16 files / Release 恰好包含 16 项文件:
ColorOS-Live-Lyrics-Bridge-v4.1.0.apkColorOS-Live-Lyrics-Provider-Salt-v4.1.0.apkColorOS-Live-Lyrics-Provider-Cone-v4.1.0.apkColorOS-Live-Lyrics-Provider-KuWo-v4.1.0.apkColorOS-Live-Lyrics-Provider-LX-v4.1.0.apkColorOS-Live-Lyrics-Provider-Poweramp-v4.1.0.apkColorOS-Live-Lyrics-Provider-Metrolist-v4.1.0.apkColorOS-Live-Lyrics-Provider-KuGou-v4.1.0.apkColorOS-Live-Lyrics-Provider-QQ-v4.1.0.apkColorOS-Live-Lyrics-Provider-NetEase-v4.1.0.apkColorOS-Live-Lyrics-Provider-Apple-v4.1.0.apkColorOS-Live-Lyrics-Provider-Spotify-v4.1.0.apkColorOS-Live-Lyrics-Provider-QiShui-v4.1.0.apkColorOS-Live-Lyrics-Providers-v4.1.0.ziprelease-assets-v4.1.0.jsonSHA256SUMS
The Provider ZIP is an APK download bundle, not a Recovery package. / Provider ZIP 只是 APK 下载
合集,不是 Recovery 刷机包。
