案例
LibrePods:借助逆向得出的协议在 Android 和 Linux 上使用 AirPods 功能
实现 AirPods 与苹果设备之间使用的专有协议(作者称由其本人逆向得出),使 Android 和 Linux 应用能够切换降噪模式、读取入耳检测和准确电量,并使用对话感知、头部手势和助听设置。仓库除 Android 应用和 Linux 应用外,还记录了抓包得到的数据包格式、操作码和控制命令。部分功能在 Android 上需要 root,或仍处于实验阶段。
- 目标
- 应用 · 协议
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 来源复核于
- 星标
- 30.7k
- 最近提交
- 2026-10-16
- 主要语言
- Kotlin
- 许可(GitHub 识别)
- GPL-3.0
GitHub 数据,截至 2026-11-09
使用条件与局限
- 固定的 main 提交对应 Android v1.0.4。v2.0.0 Android 重写版处于 alpha 阶段;main 包含 Qt 6 Linux 应用,Rust 重写版位于 linux/rust。“查找”、头部追踪空间音频及高质量双向音频仍为未知、计划中或实验性功能。
- 需要自有 AirPods 及受支持的 Android 或 Linux 设备。协议笔记描述在 AirPods Pro 2(USB-C)固件 7A305 上观察到的蓝牙 L2CAP 通信;其他型号和固件可能不同。
- Android 上的蓝牙协议栈绕行方案需要 root 和 Xposed,但 ColorOS/OxygenOS 16、realme UI 7.0 与 Android 16 QPR3 的 Pixel 设备例外。依赖厂商 ID 钩子的功能始终需要 root。Linux 应用需要 CMake 3.16+、Qt 6、OpenSSL 与 libpulse。
- Android CI 构建 FOSS APK;Rust Linux 分支有二进制构建工作流。仓库未发布协议一致性测试套件。
- 许可证:GPL-3.0-or-later。部分界面组件采用 Apache-2.0。苹果字体、产品图片和 AirPods 固件保留各自权利;Android 构建包含 SF Pro 和 AirPods 图片,Linux 应用使用 SF Symbols 6。
引用
BibTeX
@misc{librepods-airpods-protocol-case,
title = {{LibrePods: AirPods features on Android and Linux through a reverse-engineered protocol}},
howpublished = {\url{https://github.com/librepods-org/librepods}},
url = {https://github.com/librepods-org/librepods},
urldate = {2026-10-19},
note = {Awesome REA entry: \url{https://awesomerea.org/zh/resources/librepods-airpods-protocol-case/}}
}纯文本
LibrePods: AirPods features on Android and Linux through a reverse-engineered protocol。https://github.com/librepods-org/librepods(访问于 2026-10-19)。Awesome REA 条目:https://awesomerea.org/zh/resources/librepods-airpods-protocol-case/
有帮助?在 GitHub 上为 Awesome REA 加星2.4k
关于此条目
说明已依据一手来源复核。
一手来源
- README.md GitHub · librepods-org/librepods · 修订 89356c0
- docs/AAP%20Definitions.md GitHub · librepods-org/librepods · 修订 89356c0
- docs/control_commands.md GitHub · librepods-org/librepods · 修订 89356c0
- docs/opcodes.md GitHub · librepods-org/librepods · 修订 89356c0
- android/README.md GitHub · librepods-org/librepods · 修订 89356c0
- android/app/build.gradle.kts GitHub · librepods-org/librepods · 修订 89356c0
- android/app/src/main/res-apple GitHub · librepods-org/librepods · 修订 89356c0
- linux/README.md GitHub · librepods-org/librepods · 修订 89356c0
- linux/CMakeLists.txt GitHub · librepods-org/librepods · 修订 89356c0
- .github/workflows/ci-android.yml GitHub · librepods-org/librepods · 修订 89356c0
- .github/workflows/ci-linux-rust.yml GitHub · librepods-org/librepods · 修订 89356c0
- LICENSE GitHub · librepods-org/librepods · 修订 89356c0
- https://github.com/librepods-org/librepods/releases/tag/v1.0.4