LibrePods:让 AirPods 解锁苹果专属功能
通过逆向苹果私有协议,让 AirPods 在 Android 和 Linux 上也能使用降噪切换、入耳检测、电量显示等苹果设备专属功能。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v1.0.4
- 平台
- Android
详细介绍
项目简介
LibrePods 实现了 AirPods 与 Apple 设备之间交换数据的私有协议,从而让 AirPods 在非 Apple 平台(Android、Linux)上也能使用原本只在苹果生态内提供的功能,例如切换噪音控制模式、快速入耳检测、精确电量显示、头部手势和对话感知等。
项目主体为 Kotlin 编写的 Android 应用,同时提供 Linux 端实现。
主要功能
以下功能在 Android 与 Linux 上均已实现且工作良好:
- 切换聆听模式(降噪 / 通透 / 关闭)
- 入耳检测
- 电量状态显示
- 重命名 AirPods(Android 上重命名后需重新配对,因为系统可能不会使用最新名称)
- 对话感知(Conversational Awareness)
- 自动连接 AirPods
Android 端另外提供:
- 头部手势
- 无障碍相关配置:按压速度、按住时长、单只 AirPod 开启降噪、滑动调节音量、滑动速度等
- 通用配置:按住在聆听模式间循环或唤起语音助手、通话控制、个性化音量、麦克风侧选择、入睡时暂停媒体、开启「Off 聆听模式」等
- 助听器相关自定义(通透模式的放大、平衡、音色、对话增强、环境降噪,以及听力图结果设置)
多设备连接(Bluetooth Multipoint)最多支持两台设备同时连接,可在设备间切换;Android 接管 AirPods 时,Apple 设备上会显示类似「移动到 iPhone」的提示。
安装与使用
按平台查阅对应说明:
- Android:https://github.com/librepods-org/librepods/blob/main/android/README.md
- Linux:https://github.com/librepods-org/librepods/blob/main/linux/README.md
VendorID 伪装
把 DID Profile 中的 VendorID 改成 Apple 的,可以解锁若干特殊功能。
Linux:编辑 /etc/bluetooth/main.conf,在配置文件中加入:
DeviceID = bluetooth:004C:0000:0000
Android:在应用设置中开启「act as Apple device」(仅在 Xposed 可用且已启用 LibrePods 模块时显示)。
高质量双向音频
在 iOS/iPadOS 上,AirPods 可以通过 AACP 发送麦克风的高解析音频流,同时继续使用 A2DP。Android 端可在应用内使用 AirPods 麦克风录音而不切换到 Headset/Handsfree 配置、不降低播放质量;录音功能仍在开发中,位于 android/rewrite 分支。Linux 端可关注 PR #655。
注意事项
- 部分功能依赖 VendorID 伪装,需自行承担风险。
- 头部追踪空间音频目前尚未把头部追踪信息提供给 Android 系统做 HRTF,可能需要 root;将立体声空间化不在本项目范围内。
- 查找(Find My)相关能力仍在规划中,需要进一步逆向,Android 上可能需要 root。
- 心率监测在 Android 上位于
android/rewrite分支,Linux 端尚未提供。 - 应用不提供听力测试功能,建议直接使用已有的听力图结果。
- 协议细节可参考 pabloaul 的 Wireshark 解析插件:https://github.com/pabloaul/apple-wireshark
- 注意:librepods.org 并非 LibrePods 项目的官方网站,如发现类似站点可向项目作者举报。
- 许可证:GPL-3.0。
本作品整理自 GitHub 开源项目 librepods-org/librepods,原作者 @librepods-org,许可证 GPL-3.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v1.0.4当前版本
Android 端调整了从 FOSS 版切换到 Play 版时的提示文案,新增日语和韩语翻译,更新德语与简体中文翻译,并将「conversational」统一改为「conversation awareness」。
评论