分享一个可以在最新的 macOS 系统上面直接去使用第三方的视频作为壁纸的一个项目。它的名字叫做Phosphene这个项目因为使用了一些逆向工程的方法直接去调用了苹果的私有框架所以它实现了和系统深度的集成以及非常好的性能。这个项目在技术上面和系统集成上面有很多特别有意思的点。Phosphene是第一个成功逆向工程苹果私有框架 WallpaperExtensionKit 并利用该框架实现自定义视频壁纸的项目。它的做法是在运行时动态加载这个私有框架通过 Swift 的 Mirror 机制解析系统的 XPC 类型直接接入了 macOS 原生的壁纸渲染管道。它完全抛弃了传统的窗口覆盖或者注入方式带来的好处是视频壁纸可以真正成为系统壁纸生态的一份子。它会在系统设置的壁纸里面直接出现跟苹果官方的 Aerial 壁纸在一起。进程跑在系统的 WallpaperAgent 里面就算主应用退了壁纸也依然会在。它对锁屏、空闲、睡眠这些状态的处理跟系统的壁纸完全一致。支持每个显示器不同的壁纸以及虚拟空间所有的这些配置都是由系统来自动持久化的非常原生。Phosphene设计了一套非常完整的自适应播放策略。有一个叫做 PlaybackPolicy 的东西会综合机器的热状态、电池的电量、电源的类型、是不是在游戏模式、现在的显示模式动态调整播放等级。播放等级分为 full、reduced、minimal、paused 四个等级。它有遮挡检测当所有的显示器都被窗口完全盖住的时候会自动暂停渲染直到桌面重新露出来才会继续。它还会根据当前的策略自动切换不同的分辨率和帧率的视频。通过时间戳的偏移和双 AVAssetReader 的预加载实现无间隙循环保证视频循环完全没有卡顿、没有闪烁。Phosphene在实现过程中遇到了多个棘手的技术难题。它要在远程的 CAContext 里面去驱动 AVPlayerLayer这是苹果不允许的Phosphene 直接用了AVSampleBufferDisplayLayer自己去管理整个解码的流程绕过了苹果的限制。系统快照的问题是在锁屏的时候会编码失败导致看到的是一个灰色的屏幕它用了一个运行时的method swizzle替换了编码逻辑。XPC 类型因为是私有没有头文件它用了Mirror 反射动态读取字段不用头文件就可以跟系统进行通信。它的锁屏动画用了三次曲线的缓入缓出体验跟系统自带的 Aerial 完全一样。传统的macOS视频壁纸应用一般有两种实现方式。一种是创建一个全屏的窗口把这个窗口放到桌面图标的下面去播放视频另一种是把视频拆成一帧一帧的 PNG 图片利用壁纸管理器非常快速的切换来模拟视频。Phosphene完全不一样它直接走的硬件加速解码CPU 和 GPU 的占用会非常的低。它不会去修改任何系统文件也不会注入到其他进程稳定性会高很多支持锁屏壁纸、多显示器、虚拟空间所有的这些系统级的功能。它的整个生命周期都是交给系统去管理的不会存在内存泄漏或者进程残留的问题。Phosphene项目的出现在技术上面和生态上面带来了比较深远的影响。它最大的意义就是证明了通过逆向工程私有框架完全可以写出一个跟官方几乎没有差别的系统级的扩展给 macOS 的定制化开发打开了一扇全新的门。它很严格的保证了系统的稳定性同时又可以去调用一些官方没有开放的功能。它里面用到的自适应播放、无间隙循环这些东西对于其他做视频渲染的开发者来讲也是非常有参考价值的。另外它也有可能会间接的推动苹果去开放正式的视频壁纸 API或者苹果可能会因此加强对私有框架的保护。这个项目的局限性以及未来可能会遇到一些兼容性的挑战。它的限制还是比较明显的只能在 macOS 26 也就是 Tahoe 及以上的版本运行。它是基于 SwiftUI 和 glassEffect 这个 API 来做的不支持老的系统所以还在用老版本的 macOS 或者还在用 Intel Mac 的用户没有办法用。更大的一个风险就是因为它是直接调的苹果的私有框架苹果只要在任何一个大版本的系统更新里面动了这些接口它很有可能就会一下子完全不能用了未来的兼容性是完全掌握在苹果手里的。https://github.com/kageroumado/phosphene
逆向苹果私有框架!他把第三方视频逼成了macOS原生壁纸
发布时间:2026/5/22 3:37:50
分享一个可以在最新的 macOS 系统上面直接去使用第三方的视频作为壁纸的一个项目。它的名字叫做Phosphene这个项目因为使用了一些逆向工程的方法直接去调用了苹果的私有框架所以它实现了和系统深度的集成以及非常好的性能。这个项目在技术上面和系统集成上面有很多特别有意思的点。Phosphene是第一个成功逆向工程苹果私有框架 WallpaperExtensionKit 并利用该框架实现自定义视频壁纸的项目。它的做法是在运行时动态加载这个私有框架通过 Swift 的 Mirror 机制解析系统的 XPC 类型直接接入了 macOS 原生的壁纸渲染管道。它完全抛弃了传统的窗口覆盖或者注入方式带来的好处是视频壁纸可以真正成为系统壁纸生态的一份子。它会在系统设置的壁纸里面直接出现跟苹果官方的 Aerial 壁纸在一起。进程跑在系统的 WallpaperAgent 里面就算主应用退了壁纸也依然会在。它对锁屏、空闲、睡眠这些状态的处理跟系统的壁纸完全一致。支持每个显示器不同的壁纸以及虚拟空间所有的这些配置都是由系统来自动持久化的非常原生。Phosphene设计了一套非常完整的自适应播放策略。有一个叫做 PlaybackPolicy 的东西会综合机器的热状态、电池的电量、电源的类型、是不是在游戏模式、现在的显示模式动态调整播放等级。播放等级分为 full、reduced、minimal、paused 四个等级。它有遮挡检测当所有的显示器都被窗口完全盖住的时候会自动暂停渲染直到桌面重新露出来才会继续。它还会根据当前的策略自动切换不同的分辨率和帧率的视频。通过时间戳的偏移和双 AVAssetReader 的预加载实现无间隙循环保证视频循环完全没有卡顿、没有闪烁。Phosphene在实现过程中遇到了多个棘手的技术难题。它要在远程的 CAContext 里面去驱动 AVPlayerLayer这是苹果不允许的Phosphene 直接用了AVSampleBufferDisplayLayer自己去管理整个解码的流程绕过了苹果的限制。系统快照的问题是在锁屏的时候会编码失败导致看到的是一个灰色的屏幕它用了一个运行时的method swizzle替换了编码逻辑。XPC 类型因为是私有没有头文件它用了Mirror 反射动态读取字段不用头文件就可以跟系统进行通信。它的锁屏动画用了三次曲线的缓入缓出体验跟系统自带的 Aerial 完全一样。传统的macOS视频壁纸应用一般有两种实现方式。一种是创建一个全屏的窗口把这个窗口放到桌面图标的下面去播放视频另一种是把视频拆成一帧一帧的 PNG 图片利用壁纸管理器非常快速的切换来模拟视频。Phosphene完全不一样它直接走的硬件加速解码CPU 和 GPU 的占用会非常的低。它不会去修改任何系统文件也不会注入到其他进程稳定性会高很多支持锁屏壁纸、多显示器、虚拟空间所有的这些系统级的功能。它的整个生命周期都是交给系统去管理的不会存在内存泄漏或者进程残留的问题。Phosphene项目的出现在技术上面和生态上面带来了比较深远的影响。它最大的意义就是证明了通过逆向工程私有框架完全可以写出一个跟官方几乎没有差别的系统级的扩展给 macOS 的定制化开发打开了一扇全新的门。它很严格的保证了系统的稳定性同时又可以去调用一些官方没有开放的功能。它里面用到的自适应播放、无间隙循环这些东西对于其他做视频渲染的开发者来讲也是非常有参考价值的。另外它也有可能会间接的推动苹果去开放正式的视频壁纸 API或者苹果可能会因此加强对私有框架的保护。这个项目的局限性以及未来可能会遇到一些兼容性的挑战。它的限制还是比较明显的只能在 macOS 26 也就是 Tahoe 及以上的版本运行。它是基于 SwiftUI 和 glassEffect 这个 API 来做的不支持老的系统所以还在用老版本的 macOS 或者还在用 Intel Mac 的用户没有办法用。更大的一个风险就是因为它是直接调的苹果的私有框架苹果只要在任何一个大版本的系统更新里面动了这些接口它很有可能就会一下子完全不能用了未来的兼容性是完全掌握在苹果手里的。https://github.com/kageroumado/phosphene