SyncedLyricsViewController.Specs
同步歌词 UI 的全部可配置参数:布局、字体、颜色、动画时序与弹簧物理 —— 含 iPhone / iPad / Stage Manager 三套预设的真实数值。这是「逐词歌词为何如此还原」的核心依据。
海量、扎实的逆向工程
LyricsBlossom 的还原度并非靠肉眼比对或反复试错。它建立在对 iPadOS 16.4 Apple Music 的真实逆向工程之上 —— 反汇编、动态插桩、真机调试与运行时分析,把每一处动画曲线、间距、颜色与时序都从原生二进制里逐一还原出来。
还原,是一项工程,而非临摹。 下面是这项工作的一部分真实记录。
从 dyld 共享缓存中抽取二进制,批量导出伪代码与方法签名,dump metallib 着色器,再用成组的 Python 脚本梳理符号、参数与调用关系。配合 Frida 脚本在运行时 hook 关键函数,把私有结构体与参数原样打印出来。
在一台越狱的真机 iPad(iPadOS 16.4)上运行原生 Apple Music,进入歌词界面实时调试。直接在真实设备上选中、测量、对照每一行歌词的位置与状态 —— 这是任何静态截图都无法替代的第一手依据。
借助 FLEX 在运行时深入视图层级,逐个查看 SyncedLyricsLineView 等私有视图的真实属性 —— frame、bounds、transform、背景色、图层结构。所见即所得的精确数值,直接成为还原的标准答案。
这项工作离不开越狱、调试与动态分析社区的开源工具。
静态反汇编与反编译 —— 逐函数分析二进制,还原符号、调用关系与伪代码。
动态插桩与 hook —— 在运行中捕获函数参数与私有结构。
运行时视图与对象分析 —— 实时读取私有视图的真实属性。
提供 iOS 15.0 – 16.5.1 的越狱环境,让真机调试成为可能。
LyricsBlossom 的开发环境 —— 跨平台 C/C++ IDE,承载工程的构建与调试。
下面是从 iPadOS 16.4 Apple Music 逆向得到的一部分真实代码:完整的同步歌词参数表,以及 Apple 自身的歌词解析逻辑。翻译整理为可读 Swift,供研究参考。
同步歌词 UI 的全部可配置参数:布局、字体、颜色、动画时序与弹簧物理 —— 含 iPhone / iPad / Stage Manager 三套预设的真实数值。这是「逐词歌词为何如此还原」的核心依据。
Apple Music 解析其服务端下发的 TTML 格式歌词、构建内部歌词模型的完整流程:行字典构建、逐音节解析、背景和声处理、RTL 方向判定,以及底层的 COW 数组与哈希表实现。
以上代码的反编译、调试、翻译与著作编写权均归 Eplor 所有,为 LyricsBlossom 项目打造。仅供研究与参考,请勿用于商业用途。
由 Eplor 编写的运行时小工具,去除 macOS 26.4 及以上 Apple Music「正在播放」界面的背景模糊。它以注入 dylib 的方式工作,在运行时 hook Metal Performance Shaders 的高斯模糊(MPSImageGaussianBlur),把模糊半径 sigma 强制归零 —— 保留流动的动态背景,只去掉那层糊化,不修改应用本体。
用 lldb 把 dylib 注入正在运行的 Apple Music 进程即可立即生效。注入后在 lldb 中输入 c(continue)让 Music 继续运行;如需让其继续运行并退出调试器,输入 detach。
# 1 · attach to Apple Music, then inject the patch
sudo lldb -p $(pgrep -x Music)
(lldb) expression --timeout 0 -- (void*)dlopen("/path/to/MusicFreeBlur.dylib", 2)
# 2 · resume — Apple Music keeps running, blur removed
(lldb) c
需要能够附加调试器(sudo)。从网络下载的 dylib 可能被 Gatekeeper 隔离,注入前可先执行 xattr -dr com.apple.quarantine /path/to/MusicFreeBlur.dylib。本工具由 Eplor 创建,仅供学习研究,使用风险自负。