Skip to content

v4.5.2

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 19 Oct 18:42
· 3 commits to main since this release

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)
  1. 覆盖安装 Bridge 4.5.2。歌词 Provider 与动态封面 Provider 无需为本次功能重装;若从本 Release
    补装歌词 Provider,文件名是 v4.5.2,内部版本与 v4.5.1 相同。
  2. Bridge 作用域保持 system 与 com.android.systemui。
  3. 同一播放器仍只开一个 Provider:专属 Provider 与通用播放器 Provider 二选一,同时开启会互相覆盖
    lyricInfo。
  4. 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, and updatePkgActionsRule accept 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. Both e(Drawable, boolean) and f(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 logs ARTWORK_C17_PROFILE.
  • MediaInfo.albumArt is 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
    named onMetaDataChanged(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: minifyEnabled and shrinkResources are 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.list pointing at the XposedModule
    subclass. If shrinking renames that class, the list is rewritten with it.
  • kotlin.coroutines.Continuation keeps its original name. R8 otherwise renames the copy in
    this APK and rewrites the matching Class.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)
  1. 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.2 and keep the v4.5.1 internal versions.
  2. Bridge scope remains system and com.android.systemui.
  3. Enable one Provider per player. A dedicated Provider and the Universal Provider overwrite each
    other's lyricInfo when both are on.
  4. 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_PROFILE reported
    c17Profile=resolved roles=dexkit cardSpringRoles=dexkit with no letter mismatch, and the
    immersive motion cover reached playback twice. That is not device acceptance of the signed R8
    release.
  • getArtWorkIconByMediaMetaData and loadMediaDataInBg are 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.