LibrePods: 将 Apple AirPods 生态系统功能带到 Android 和 Linux
LibrePods: 将 Apple AirPods 生态系统功能带到 Android 和 Linux
LibrePods 是 Apple AirPods 使用的专有协议的开源实现,允许用户在非 Apple 平台访问生态系统专属功能。虽然 AirPods 在任何设备上都可以作为标准的 Bluetooth 耳机使用,但 LibrePods 可以在 Android 和 Linux 上实现高级控制——例如切换降噪模式、准确的电池电量报告以及入耳检测。
核心功能可用性
LibrePods 在 Android 和 Linux 上提供不同程度的支持。该项目专注于实现 Apple 用于管理设备状态和设置的数据交换协议。
已完全实现的功能
Android 和 Linux 用户都可以访问以下功能:
- Listening Mode Control:更改降噪控制模式(例如,在降噪和通透模式之间切换)。
- Ear Detection:根据耳机是否在耳中自动暂停/播放媒体。
- Battery Status:准确报告耳机和充电盒的电池电量。
- Renaming:重命名 AirPods 的能力(不过 Android 用户可能需要重新配对设备才能看到更新后的名称)。
- Conversational Awareness:支持根据检测到的语音自动调节音频的功能。
- Automatic Connection:配对后无缝连接到 AirPods。
平台特定及高级功能
某些功能受限于操作系统的 Bluetooth stack 或需要特定的修改:
- Head Gestures:在 Android 上已完全实现;在 Linux 上不受支持。
- Accessibility and Hearing Aid:Android 支持全面的辅助功能配置,包括按压速度、按住时长以及为助听器定制设置听力图结果的能力。Linux 对这些功能的支持正在计划中。
- General Configurations:Android 允许配置通话控制、麦克风侧选择以及在入睡时暂停媒体的能力(在较新的固件上)。
计划中及实验性功能
几个高复杂度的功能目前正在开发中或被标记为未知:
- Find My:计划中的功能包括将 AirPods 添加到 Find My 网络、通过充电盒播放声音以及“遗忘”通知。这些功能在 Android 上可能需要 root 权限。
- Heart Rate Monitoring:目前正在对 AirPods Pro 3 及后续型号进行逆向工程;在 Android 上可能需要 root 权限。
- Spatial Audio:目前尚未向 Android 提供用于 HRTF (Head-Related Transfer Function) 的头部追踪信息。该项目明确指出,空间化立体声输出超出了其范围。
- High-Quality Two-Way Audio:计划实现 A2DP 用于输出,同时使用 AACP 用于麦克风输入,但由于 Android 音频集成的深度性,这可能需要 root 权限。
技术实现与逆向工程
LibrePods 依赖于对 Apple 专有通信协议的逆向工程。开发者指出,虽然 pabloaul/apple-wireshark dissector plugin 对未来的目标很有用,但最初的大部分实现是通过独立的逆向工程完成的。
VendorID Spoofing
为了解锁某些“特殊功能”,LibrePods 利用 VendorID 欺骗来让 AirPods 相信它们已连接到 Apple 设备:
- Linux:用户可以编辑
/etc/bluetooth/main.conf以添加DeviceID = bluetooth:004C:0000:0000。 - Android:拥有 Xposed 环境且启用了 LibrePods 模块的用户可以使用“act as Apple device”设置。
在开发中使用 AI
该项目展示了一种现代的混合开发方法,利用 AI 来实现特定组件:
- Android:Head gestures 逻辑/UI、Xposed 模块偏移量设置以及故障排除器/日志收集器都是由 AI 生成的。
- Linux:
aacp.rs和att.rs文件是通过 AI 从 Kotlin 翻译成 Rust 的,而media_controller.rs的部分内容(特别是 PulseAudio 集成)也是由 AI 生成的。
社区洞察与替代方案
社区讨论突出了生态系统解放的愿望与专有硬件带来的风险之间的紧张关系。一些用户担心 Apple 可能会在未来的固件更新中修复这些漏洞以破坏兼容性。
替代方案
对于其他平台的用户或无法 root 设备的用户,以下是替代方案被提及:
- CAPod:适用于版本 16 QPR3 或以下的非 root Android 用户。
- MagicPods:适用于 Windows 和 Steam Deck。
"AirPods 已经在其他设备上作为普通的 Bluetooth 耳机工作了。这只是对集成在 Apple 产品中的一些额外功能和接口的实现。"
"如果我不确定 Apple 是否会在未来尽力修复所有实现此功能的途径,那么购买 AirPods 可能会成为一种动力。"
项目状态与许可
LibrePods 采用 GNU General Public License v3 (GPLv3) 许可。项目维护者警告用户,librepods.org 不是官方网站,且错误地声称其与该项目有关联。