Repository navigation
v4.5.2
ColorOS Live Lyrics Bridge v4.5.2
简体中文
v4.5.2 是 Bridge 的兼容与发布构建更新。同一 SystemUI / SystemUIPlugin 的 versionName 与
versionCode 不再被当成同一份二进制:RUS 参数、沉浸式封面写入和 C17 角色按唯一日志或类型定位,
核对过的混淆字母只做回退。正式 Bridge APK 从本版起使用 R8 压缩代码并收缩资源,与歌词 Provider
的 release 构建一致。14 个歌词 Provider 与动态封面 Provider 1.0.6 的代码不变,歌词 Provider 的
资产文件名随套件改为 4.5.2。从 v4.5.1 可直接覆盖升级。
跨设备 SystemUI 兼容
- 一加 16 最新 ColorOS 17 版本上 versionName 同为 17.99.02 / 17.000.002 的 SystemUI 与 SystemUIPlugin,内部方法
和字段仍可能不同。Bridge 不再只按参考机的混淆字母绑定这些差异。 - RUS 的
dealEndTag、saveListToSP、updatePkgActionsRule接受参考机与多一张 immersive
full-background map 的参数形态。 - 沉浸式封面写入按日志
[updateAlbumArtView] animation is running, pending new drawable定位,
e(Drawable, boolean)与f(Drawable, boolean)都接受。 - C17 沉浸控制器的槽位、待应用模型、切换标记和渲染器按对应日志的读写字段选择。模型字段可以是
接口。选不中时回退已核对字母,并始终打出ARTWORK_C17_PROFILE。 MediaInfo.albumArt按 toString 标签, albumArt=绑定;卡片弹簧的 running 位按
cancel/start 的主线程文案交叉定位。- metadata 变更入口按
onMetaDataChanged error: metaData is null定位,同时接受命名实例方法
onMetaDataChanged(String, MediaMetadata)和合成方法
access$onMetaDataChanged(..., Continuation)。设置里的歌词清理重放只调用可安全 invoke 的
两参数实例方法。
发布构建
- Bridge release 启用 R8:
minifyEnabled与shrinkResources均为 true,规则沿用 libxposed
入口适配,并保留 DexKit 的 JNI 类名。Debug 构建不压缩。 - 模块入口仍由
META-INF/xposed/java_init.list指向XposedModule子类;类名被压缩改写时,
该列表会一起改写。 kotlin.coroutines.Continuation保留原名。R8 会把本包里的这个类改名,并改写
Class.getName()用到的同名字面量;插件里的状态流参数仍是原名,改写后封面流绑定会失败。
兼容矩阵与升级
Bridge 仍只作用于 system 和 com.android.systemui,不进入播放器进程。
| Provider | 版本 | Provider | 版本 |
|---|---|---|---|
| Salt | 1.1.2 (8) | Cone | 1.1.2 (4) |
| KuWo | 1.2.2 (5) | LX | 1.2.1 (4) |
| Poweramp | 1.2.1 (4) | Metrolist | 1.2.1 (4) |
| 酷狗 | 1.2.4 (7) | QQ 音乐 | 1.2.1 (4) |
| 网易云 | 1.2.1 (4) | Apple Music | 1.2.1 (4) |
| Spotify | 1.1.2 (4) | 汽水音乐 | 1.1.2 (4) |
| 通用播放器 | 1.1.2 (4) | Readify | 1.0.2 (3) |
| 动态封面(独立应用) | 1.0.6 (10) |
- 覆盖安装 Bridge 4.5.2。歌词 Provider 与动态封面 Provider 无需为本次功能重装;若从本 Release
补装歌词 Provider,文件名是v4.5.2,内部版本与 v4.5.1 相同。 - Bridge 作用域保持
system与com.android.systemui。 - 同一播放器仍只开一个 Provider:专属 Provider 与通用播放器 Provider 二选一,同时开启会互相覆盖
lyricInfo。 - Debug 签名的测试包不能覆盖正式签名包,需要先卸载。
验证与已知限制
- 本地 debug 包已在本机确认:
ARTWORK_C17_PROFILE为c17Profile=resolved roles=dexkit cardSpringRoles=dexkit,没有字母偏差;沉浸式动态封面两次进入播放。这不是 R8 正式签名包的
设备验收。 getArtWorkIconByMediaMetaData与loadMediaDataInBg在当前 SystemUI 上不存在,Bridge 继续
跳过,不对其做 DexKit。- 正式签名 RC 的真机确认仍是公开 tag 之前的发布门禁。R8 可能改变反射与资源收缩结果,不能用
debug 包的播放结果代替正式包验收。 - 兼容性仍取决于厂商 SystemUI 实现,以及播放器经 MediaSession 暴露的歌词与进度信息。
资产
正式 Release 包含 19 项已验证资产:1 个 Bridge APK、14 个 Provider APK、1 个动态封面
Provider APK、1 个 Provider ZIP、release-assets-v4.5.2.json 和 SHA256SUMS。Provider ZIP
只包含 14 个顶层歌词 Provider APK,动态封面 Provider 单独提供。
致谢
感谢提供同一版本号、不同内部实现的 SystemUI / SystemUIPlugin 样本,并复核动态封面日志的用户。
English
v4.5.2 is a Bridge compatibility and release-build update. Identical SystemUI / SystemUIPlugin
versionName and versionCode values are no longer treated as the same binary: RUS parameters, the
immersive album writer, and C17 roles are located from unique log lines or types, and the reviewed
obfuscated letters are only a fallback. Release Bridge APKs are now minified and resource-shrunk
with R8, matching the lyric Provider release builds. The 14 lyric Providers and Dynamic Artwork
Provider 1.0.6 are unchanged; lyric Provider asset file names follow the suite as 4.5.2. Update in
place from v4.5.1.
Cross-device SystemUI compatibility
- On ColorOS 17, SystemUI and SystemUIPlugin builds that share versionName 17.99.02 / 17.000.002
can still differ internally. Bridge no longer binds those differences only to the reference
device's obfuscated letters. - RUS
dealEndTag,saveListToSP, andupdatePkgActionsRuleaccept the reference shapes and the
shape that adds the immersive full-background map. - The immersive album writer is found from
[updateAlbumArtView] animation is running, pending new drawable. Bothe(Drawable, boolean)andf(Drawable, boolean)qualify. - C17 immersive controller slots, the pending model, switch flags, and the renderer are chosen from
the fields read or written beside their log lines. The model field may be an interface. If that
scan misses, Bridge falls back to the reviewed letters and always logsARTWORK_C17_PROFILE. MediaInfo.albumArtis bound from the toString label, albumArt=. The card spring running flag
is the boolean both read by cancel and written by start.- The metadata-changed entry is found from
onMetaDataChanged error: metaData is null. Both the
namedonMetaDataChanged(String, MediaMetadata)and the synthetic
access$onMetaDataChanged(..., Continuation)are accepted. Lyric-cleanup replay invokes only the
two-argument instance method.
Release build
- Bridge release enables R8:
minifyEnabledandshrinkResourcesare both true. The libxposed
entry rule is unchanged, and DexKit's JNI classes keep their names. Debug builds are not
minified. - The module entry remains
META-INF/xposed/java_init.listpointing at theXposedModule
subclass. If shrinking renames that class, the list is rewritten with it. kotlin.coroutines.Continuationkeeps its original name. R8 otherwise renames the copy in
this APK and rewrites the matchingClass.getName()literal, while the plugin's flow
parameter keeps the original name and cover binding fails.
Compatibility and upgrade
Bridge still enters only system and com.android.systemui. It does not enter player processes.
| Provider | Version | Provider | Version |
|---|---|---|---|
| Salt | 1.1.2 (8) | Cone | 1.1.2 (4) |
| KuWo | 1.2.2 (5) | LX | 1.2.1 (4) |
| Poweramp | 1.2.1 (4) | Metrolist | 1.2.1 (4) |
| KuGou | 1.2.4 (7) | QQ Music | 1.2.1 (4) |
| NetEase | 1.2.1 (4) | Apple Music | 1.2.1 (4) |
| Spotify | 1.1.2 (4) | QiShui | 1.1.2 (4) |
| Universal | 1.1.2 (4) | Readify | 1.0.2 (3) |
| Dynamic Artwork (standalone app) | 1.0.6 (10) |
- Install Bridge 4.5.2 over the previous release. Lyric Providers and the Dynamic Artwork Provider
do not need a reinstall for this change. Lyric Provider files from this Release are named
v4.5.2and keep the v4.5.1 internal versions. - Bridge scope remains
systemandcom.android.systemui. - Enable one Provider per player. A dedicated Provider and the Universal Provider overwrite each
other'slyricInfowhen both are on. - A debug-signed test build cannot replace a release-signed install; uninstall first.
Verification and limits
- A local debug build was confirmed on device:
ARTWORK_C17_PROFILEreported
c17Profile=resolved roles=dexkit cardSpringRoles=dexkitwith no letter mismatch, and the
immersive motion cover reached playback twice. That is not device acceptance of the signed R8
release. getArtWorkIconByMediaMetaDataandloadMediaDataInBgare absent on the current SystemUI.
Bridge still skips them and does not DexKit them.- Device confirmation of the signed RC remains the gate before the public tag. R8 can change
reflection and resource shrinking, so a passing debug build does not accept the release APK. - Compatibility still depends on the vendor SystemUI and on the lyric and position data the player
exposes through MediaSession.
Assets
The formal Release contains 19 verified assets: 1 Bridge APK, 14 Provider APKs, 1 Dynamic Artwork
Provider APK, 1 Provider ZIP, release-assets-v4.5.2.json, and SHA256SUMS. The Provider ZIP
contains only the 14 top-level lyric Provider APKs. The Dynamic Artwork Provider is separate.
Thanks
Thanks to the user who supplied SystemUI / SystemUIPlugin samples that share a version number but
not their internals, and who checked the motion-cover logs.