Skip to content

v4.5.0

Choose a tag to compare

@Andrea-lyz Andrea-lyz released this 13 Oct 09:44
· 3 commits to main since this release

ColorOS Live Lyrics Bridge v4.5.0

简体中文

v4.5.0 把 v4.4.0 之后的各个预览版(C17 Preview、C16 Artwork、C17 Artwork Preview / Preview1 /
Preview2)整合为正式版,并加入锁屏性能优化与动态封面帧率设置。从 v4.4.0 或任一预览版均可直接覆盖升级。

ColorOS 17 适配

  • 插件侧 Hook 改从插件 ClassLoader 工厂启动:C17 的插件 ClassLoader 已没有旧构造器入口。
  • 沉浸式歌词适配官方行号、缩放中心、歌词模式入口与行模糊(合入 @bakaduang 的 PR #48);官方字体
    变化后重新测量行高,测量与绘制使用同一字体,C17 歌词行读取与布局解析在缺失时安全降级。
  • 酷我:插件歌词模型兼容 C17 的 MediaInfo,同曲媒体卡片重建时保留歌词及歌词支持标记,缓解锁屏
    只剩封面的问题(#46)。
  • 翻译按钮改用 C17 的状态刷新入口,暂停时也会刷新;动作位被其他按钮复用后恢复显示。
  • 酷狗概念版:放开 C17 对模块管理播放器的 OPlus 歌词声明门禁,锁屏可正常显示歌词。
  • 锁屏动作规则:Bridge 重放规则时保留系统原始规则,解锁后恢复原样。
  • ColorOS 16 及更早系统的行为不变。

动态封面(可选)

动态封面演示:大封面与歌词页

  • 新增独立应用 动态封面 Provider 1.0.5:按歌曲信息匹配动态封面,下载并逐文件校验后交给 Bridge
    显示。安装同一 Release 中的 APK,在应用内打开来源,再到 Bridge「设置 → 动态封面」中选择、授权。
    Bridge 本身不联网、不进入播放器进程;不安装时锁屏保持官方静态封面,AOD 始终使用静态封面。
  • 显示位置:锁屏歌词小封面、大封面可分别开关;C17 还支持全屏背景,中央画面与上下镜像使用同一
    视频帧,保留系统渐变模糊、歌词模式整体模糊与遮罩。同曲在不同位置间切换时复用同一个解码器。
  • 过渡:尊重官方歌词/大封面模式及显隐状态;切歌过渡期间保留官方静态动画,新视频首帧就绪后
    柔和淡入(320 ms);暂停时从当前画面淡回静态封面(220 ms);同曲切换页面后等新帧再显现。
  • 帧率设置(新):10–30 fps 可调,默认 30 fps(视频原帧率)。动态封面的耗电主要来自画面刷新——
    每显示一帧视频,锁屏都要整体重绘并重新计算模糊,视频解码本身耗电很少。测试设备在 50% 亮度下,
    30 fps 时锁屏耗电约为静态封面的 3 倍,15 fps 时约 1.6 倍。调低更省电,但视频不够连贯。
  • 保持屏幕常亮(可选):仅在大封面上动态封面实际播放时保持亮屏;暂停、息屏/AOD、解锁或回到
    歌词小封面后释放,与“歌词显示时保持屏幕点亮”各自独立。
  • 来源与匹配(Provider):
    • Apple Music:专辑名优先搜索、身份未确认时补一次歌曲搜索;兼容简繁、艺人原生文字别名、合作
      艺人与 Single/EP 发行类型;保留中文版、现场、Remix、重录等版本边界;CN 市场搜索为空时回退
      同市场网页;Strict / Standard / Loose 三档匹配严格度。
    • 网易云(可选,默认关闭):官方客户端扫码登录,会话加密保存;按曲目名搜索并核对歌手与录音标记。
    • 两路并发查找、AM 优先下载,AM 最终失败才使用网易云;临时网络故障在总期限内自动补两轮。
    • 原生方形 AVC SDR 视频:AM 1080×1080,网易云最高 1280×1280 原样使用,不缩放、不转码。
  • Provider 设置:手动绑定专辑(本地专辑名与商店不一致时)、AM / 网易云独立搜索框与真实封面
    缩略图、市场切换、缓存上限(默认 512 MB,可选到 8 GB 或自定义,按最久未使用清理)、默认仅在
    非计费网络下载、Apple Music 商店连通性测试(新)。
  • 诊断:可选的本地脱敏 TXT 日志(约 1 MiB),在“高级”中导出或清除;错误提示区分来源视频读取
    失败、格式不支持、大小超限与锁屏挂载失败。
  • 动态封面设置独立保存,并纳入 Bridge 配置备份。

外观与歌词进度

  • C17 光晕颜色“跟随封面取色”:复用系统媒体进度条的封面主色,只改变光晕颜色,无需安装动态封面。
  • 修复 Unicode 词间空格未被识别、英文单词从中间换行的问题。
  • “普通逐行歌词进度”快速切句衔接更稳:高光所属句与播放时间一致,句尾短暂全亮停留,翻译进度与
    字符上浮同步。

锁屏流畅度

使用 Perfetto 在锁屏、卡片切换和 AOD 进出场景逐项排查 Bridge 自身开销:

  • 动态封面的显示资格检查不再每帧发起锁屏状态跨进程查询,主线程每帧耗时下降约 15%。
  • 翻译按钮查找跳过专辑封面等大图,按图标资源缓存识别结果,消除冷启动和刷新卡片后最长约 200 ms
    的主线程卡顿。
  • 字符上浮动画每个字只绘制自身及邻近字形,歌词行绘制耗时下降约 20%;连字(如 "fi")不再错位。
  • 对照测试显示:在没有安装 Bridge 的 ColorOS 17 测试版上,AOD 切换与卡片切换同样会掉帧;这部分
    来自系统本身,Bridge 无法修复。

Provider 更新

全部 14 个歌词 Provider 版本号各加一,动态封面 Provider 升至 1.0.5。

  • 13 个专属 Provider 不再在桌面显示图标:请在 LSPosed 模块列表中点开对应 Provider 进入设置。
    覆盖安装更新后,旧桌面图标需重启桌面(启动器)才会消失,属预期行为。通用播放器 Provider 与
    动态封面 Provider 是需要配置的独立应用,仍保留桌面入口。
  • 通用播放器 Provider 1.1.2:
    • 修复 ColorOS 17 上的模块加载失败:C17 的 MediaSessionRecord$SessionStub 不再有 this$0,
      旧版会抛 NoSuchFieldException 而对所有播放器无响应;现按名解析并按字段类型兜底。
    • 放开欢太音乐、QQ 音乐、酷狗及概念版、网易云及荣耀版,可在“播放器”页手动选择;目前仅酷我不可选。
    • 同一播放器只开一个 Provider:它的官方/专属 Provider 与通用 Provider 二选一,同时开启时两者
      都会写入 lyricInfo 而互相覆盖。

兼容矩阵与升级

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.5 (9)
  1. 从同一个 v4.5.0 Release 安装 Bridge 与所需 Provider APK;需要动态封面时一并安装动态封面
    Provider。v4.4.0 与各预览版均可直接覆盖安装,设置与动态封面绑定保留。
  2. Bridge 作用域保持 system 与 com.android.systemui。
  3. 升级后强行停止播放器并重启 SystemUI;涉及作用域变化时重启手机。
  4. 更新专属 Provider 后如仍看到旧桌面图标,重启桌面(启动器)即可。

验证与已知限制

  • 本地门禁:Bridge 780 项单测、release lint、debug 构建与发布契约校验;Provider testV5Matrix、
    14 模块 debug 构建,以及动态封面 Provider 单测与构建。
  • 正式签名 RC 已在 PJZ110 / ColorOS 17 实机验收通过;性能数据来自同一设备的 Perfetto 与电池计数器,
    其他机型与固件上的数值会有差异。
  • ColorOS 17 测试版本身存在锁屏与 AOD 掉帧;C17 的官方歌词时钟对齐路径在部分固件上仍可能未生效,
    沿用时间守卫降级。
  • 动态封面只支持经过校验的方形 AVC/H.264 SDR MP4,不支持 HEVC/HDR、竖版或旋转视频;匹配受来源
    网络、登录状态、专辑信息与页面变化影响;缺少资源、歧义或设备解码失败时保留静态封面。部分 C17
    内测设备存在系统媒体解析失败,本版不宣称修复。
  • 尚未覆盖 Readify 章节首尾短窗口、酷我 SystemUI 侧封面快照等全部 C17 路径;平板与折叠屏布局验证有限。
  • 兼容性仍取决于厂商 SystemUI 实现,以及播放器经 MediaSession 暴露的歌词与进度信息。

资产

正式 Release 包含 19 项已验证资产:1 个 Bridge APK、14 个 Provider APK、1 个动态封面
Provider APK、1 个 Provider ZIP、release-assets-v4.5.0.json 和 SHA256SUMS。Provider ZIP
只包含 14 个顶层歌词 Provider APK,动态封面 Provider 单独提供。

致谢

感谢 @bakaduang 的沉浸式歌词 PR #48、动态封面跨平台匹配的贡献者,以及提供 C17 实机反馈、诊断
日志与锁屏掉帧线索的用户。

English

v4.5.0 folds every preview since v4.4.0 (C17 Preview, C16 Artwork, C17 Artwork Preview / Preview1 /
Preview2) into a stable release, and adds lock-screen performance work and a motion cover frame-rate
setting. You can update in place from v4.4.0 or any of those previews.

ColorOS 17 support

  • Plugin-side hooks start from the plugin ClassLoader factory; C17's plugin ClassLoader no longer has
    the old constructor entry.
  • The immersive lyric page follows the official row index, scale pivot, lyric-mode entry, and row blur
    (merging @bakaduang's PR #48). Rows are re-measured when the official typeface changes, measurement
    and drawing share one typeface, and C17 row reading and layout resolution degrade safely.
  • KuWo: the plugin lyric model handles C17 MediaInfo, keeping lyrics and the lyric-support flag when the
    same song's media card is rebuilt; this mitigates the cover-only lock screen (#46).
  • The translation button refreshes through C17's state-update entry, also while paused, and reappears
    after its action slot was reused by another button.
  • KuGou Lite: lifts C17's OPlus lyric-declaration gate for module-managed players so lyrics show.
  • Lock-screen action rules: Bridge keeps the system's original rules when replaying them and restores
    them after unlock.
  • Behavior on ColorOS 16 and earlier is unchanged.

Dynamic artwork (optional)

Dynamic artwork demo: large cover and lyric page

  • New standalone Dynamic Artwork Provider 1.0.5 matches a motion cover for the song, downloads and
    verifies it file by file, and hands it to Bridge. Install the APK from the same Release, turn a source
    on in the app, then pick and authorize it in Bridge under Settings → Dynamic artwork. Bridge itself
    never goes online or enters a player process; without the Provider the lock screen keeps the official
    static cover, and AOD always uses the static cover.
  • Where it shows: the small lyric cover and the large cover can be toggled separately; on C17 it also
    drives the full-screen background, where the center and the mirrored bands use the same video frame
    and keep the system gradient blur, lyric-mode blur, and masks. Moving between surfaces for the same
    song reuses one decoder.
  • Transitions: follows the official lyric/large-cover modes and visibility; keeps the official static
    animation during track changes and fades the first new frame in softly (320 ms); pausing fades back
    to the static cover from the current picture (220 ms); a same-song page switch waits for a fresh frame.
  • Frame rate (new): adjustable from 10 to 30 fps, default 30 fps (the video's original rate). Most of
    the power goes into showing the video: every frame shown redraws the whole lock screen and recomputes
    its blur, while decoding costs little. On the test device at 50% brightness the lock screen drew about
    3× the power of a static cover at 30 fps and about 1.6× at 15 fps. Lower rates save battery but look
    less fluid.
  • Keep screen on (optional): only while a motion cover is actually playing on the large cover;
    released on pause, sleep/AOD, unlock, or returning to the small lyric cover, independent of "Keep
    screen on while lyrics are shown".
  • Sources and matching (Provider):
    • Apple Music: album-first search with one song-search fallback when identity is unconfirmed;
      Simplified/Traditional Chinese, native-script artist aliases, featured artists, and Single/EP
      release types; keeps language, live, remix, and re-recording boundaries; falls back to the same
      storefront's web page when CN search is empty; Strict / Standard / Loose matching levels.
    • NetEase (optional, off by default): QR sign-in with the official client and an encrypted session;
      searches by song title and checks artists and recording labels.
    • Both sources are prepared concurrently with AM download priority; NetEase is used only after AM
      fails. Transient network failures get two more attempts within the overall deadline.
    • Native square AVC SDR video: AM 1080×1080; NetEase up to 1280×1280 used as-is, never resized or
      transcoded.
  • Provider settings: manual album binding (when local tags differ from the store), separate AM /
    NetEase searches with real cover thumbnails, storefront selection, cache limit (512 MB by default, up to
    8 GB or custom, least-recently-used eviction), unmetered-only downloads by default, and an Apple Music
    storefront reachability test (new).
  • Diagnostics: optional local redacted TXT log (about 1 MiB) exported or cleared under Advanced;
    errors distinguish source-video read failures, unsupported formats, size limits, and lock-screen
    mounting failures.
  • Dynamic artwork settings are stored separately and included in the Bridge configuration backup.

Appearance and lyric progress

  • C17 "Glow color → follow artwork": reuses the system media progress bar's artwork color and only
    changes the glow; no dynamic artwork needed.
  • Fixes Unicode word spaces not being recognized, which broke English words mid-word.
  • Smoother fast line changes with Line-timed lyric progress: the highlighted line matches playback time,
    line ends hold full brightness briefly, and translation progress stays in step with character float-up.

Lock-screen smoothness

Bridge's own cost was profiled with Perfetto across the lock screen, card switching, and AOD transitions:

  • The motion-cover eligibility check no longer makes a cross-process keyguard query on every frame;
    main-thread time per frame dropped by about 15%.
  • Translation-button discovery skips large images such as album art and caches results per icon
    resource, removing main-thread stalls of up to about 200 ms after a cold start or card refresh.
  • The character float-up animation draws only each glyph and its neighbours, cutting lyric-row draw time
    by about 20%; ligatures such as "fi" are no longer shifted.
  • A baseline without Bridge showed that the ColorOS 17 beta drops frames on AOD and card transitions on
    its own; that part comes from the system and cannot be fixed in Bridge.

Provider updates

All 14 lyric Providers move up one version, and the Dynamic Artwork Provider moves to 1.0.5.

  • The 13 dedicated Providers no longer show a home-screen icon: open a Provider's settings from the
    LSPosed module list. After an update the old home-screen icon disappears only once the launcher
    restarts
    ; this is expected. The Universal Player Provider and the Dynamic Artwork Provider are
    standalone apps that need configuration and keep their home-screen entry.
  • Universal Player Provider 1.1.2:
    • Fixes the module load failure on ColorOS 17: C17's MediaSessionRecord$SessionStub no longer has
      this$0, so older versions threw NoSuchFieldException and answered no player; the field is now
      resolved by name with a type-based fallback.
    • Opens HeyTap Music, QQ Music, KuGou and KuGou Lite, and NetEase Cloud Music and its Honor build for
      manual selection on the Players page; only KuWo stays unavailable.
    • Enable only one Provider per player: use either its official/dedicated Provider or the Universal
      Provider. With both on, each writes lyricInfo and they overwrite each other.

Compatibility and upgrade

Bridge still runs only in system and com.android.systemui and never enters 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 Player 1.1.2 (4) Readify 1.0.2 (3)
Dynamic Artwork (standalone app) 1.0.5 (9)
  1. Install Bridge and the Provider APKs you need from the same v4.5.0 Release; add the Dynamic Artwork
    Provider if you want motion covers. v4.4.0 and every preview update in place; settings and artwork
    bindings are kept.
  2. Keep the Bridge scope at system and com.android.systemui.
  3. After upgrading, force-stop the player and restart SystemUI; reboot when scopes change.
  4. If an old dedicated-Provider icon remains on the home screen after the update, restart the launcher.

Validation and known limits

  • Local gates: 780 Bridge unit tests, release lint, debug build, and release-contract validation;
    Provider testV5Matrix, debug builds of all 14 modules, and Dynamic Artwork Provider tests and build.
  • The formally signed RC passed device acceptance on a PJZ110 / ColorOS 17 device. Performance figures
    come from Perfetto and the battery counter on that device and vary across devices and firmware.
  • The ColorOS 17 beta itself drops frames on the lock screen and AOD; C17's official lyric-clock
    alignment path may still be unresolved on some firmware and falls back to the time guard.
  • Motion covers support only verified square AVC/H.264 SDR MP4; no HEVC/HDR, tall, or rotated video.
    Matching depends on source network, sign-in state, album metadata, and page changes; missing assets,
    ambiguity, or a device decode failure keep the static cover. Some C17 beta devices fail system media
    parsing; this release does not claim to fix that.
  • Not every C17 path is covered yet (Readify chapter edge windows, KuWo SystemUI-side artwork snapshots);
    tablet and foldable layouts have limited validation.
  • Compatibility still depends on the vendor SystemUI implementation and on the lyric and progress data a
    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.0.json, and SHA256SUMS. The Provider ZIP holds
only the 14 top-level lyric Provider APKs; the Dynamic Artwork Provider ships separately.

Acknowledgements

Thanks to @bakaduang for the immersive lyric PR #48, to the contributors of cross-platform artwork
matching, and to the users who shared C17 device feedback, diagnostic logs, and lock-screen jank reports.

Donate

WeChat and Alipay donation QR code