kavishdevar/librepods

GitHub: kavishdevar/librepods

在非Apple设备上解锁AirPods专属功能的开源项目,通过逆向蓝牙协议打破生态锁定。

Stars: 26259 | Forks: 1453

![LibrePods 横幅](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/ba474b2e2d180414.png) ## 什么是 LibrePods? LibrePods 在非 Apple 设备上解锁了 Apple 独家的 AirPods 功能。您可以访问噪声控制模式、自适应通透模式、入耳检测、助听器、自定义通透模式、电池状态等功能——所有这些您已经付费,却被 Apple 锁定在其生态系统中的高级功能。 ## 设备兼容性 | 状态 | 设备 | 功能 | | ------ | --------------------- | ---------------------------------------------------------- | | ✅ | AirPods Pro (2nd Gen) | 完全支持且已测试 | | ✅ | AirPods Pro (3rd Gen) | 完全支持(心率监测除外) | | ✅ | AirPods Max | 完全支持(客户端会显示不支持的功能) | | ⚠️ | 其他 AirPods 型号 | 基础功能(电池状态、入耳检测)应该可以工作 | 大多数功能应该能在任何型号的 AirPods 上使用。目前,我只有 AirPods Pro 2 可供测试。但是,我相信所有其他 AirPods 的协议都是相同的(基于对 macOS 上蓝牙协议栈的分析)。 ## 主要功能 - **噪声控制模式**:轻松切换不同的噪声控制模式,无需伸手去长按您的 AirPods - **入耳检测**:当您戴上或摘下 AirPods 时自动控制音乐,并在您摘下时切换到手机扬声器 - **电池状态**:准确的电池电量 - **头部手势**:只需点头即可接听电话 - **对话感知**:您说话时音量会自动降低 - **助听器\*** - **自定义通透模式\*** - **多设备连接\***(最多 2 台设备) - **其他自定义功能**: - 重命名您的 AirPods - 自定义长按操作 - 所有辅助功能设置 - 以及更多! * 标有星号的功能需要将 VendorID 更改为 Apple 的 VendorID。 ## 平台支持 ### Linux 关于旧版本,请参阅 [Linux README](./linux/README.md)。(功能不多,维护者没有时间处理) 新版本开发中 ([#241](https://github.com/kavishdevar/librepods/pull/241)) ![new version](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/c872ad8859180416.png) ### Android #### 截图 | | | | | --------------------------------------------------------------------------------------- | -------------------------------------------------- | ---------------------------------------------------------------------------- | | ![设置 1](https://raw.githubusercontent.com/kavishdevar/librepods/main/android/imgs/settings-1.png) | ![设置 2](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d9db863529180418.png) | ![调试界面](https://raw.githubusercontent.com/kavishdevar/librepods/main/android/imgs/debug.png) | | ![电池通知与噪声控制模式的快捷设置磁贴](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9ebd5de024180421.png) | ![弹窗](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5af68c004c180423.png) | ![头部追踪与手势](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e7c1bd3d91180425.png) | | ![长按配置](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/b453f56684180427.png) | ![小部件](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e9242a8d2f180430.png) | ![自定义 1](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/ed08a02098180432.png) | | ![自定义 2](https://raw.githubusercontent.com/kavishdevar/librepods/main/android/imgs/customizations-2.png) | ![辅助功能](https://raw.githubusercontent.com/kavishdevar/librepods/main/android/imgs/accessibility.png) | ![通透模式](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/b3ab1da5e8180434.png) | | ![助听器](https://raw.githubusercontent.com/kavishdevar/librepods/main/android/imgs/hearing-aid.png) | ![听力测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/cfcad5c782180435.png) | ![助听器调节](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/82f96e0e33180437.png) | 这是一个非常不专业的演示视频 https://github.com/user-attachments/assets/43911243-0576-4093-8c55-89c1db5ea533 #### Root 需求 如果您使用的是 ColorOS/OxygenOS 16、Android 16 QPR3、Anroid 17 Beta 3 或更高版本,除了自定义通透模式、设置助听器以及使用蓝牙多点连接外,您不需要 root。更改 ANC、对话感知、入耳检测和其他自定义功能无需 root 即可使用。 对于其他所有人: **您必须拥有一台已 root 并安装了 Xposed 的设备才能在 Android 上使用 LibrePods。** ## 在 DID 配置文件中将 VendorID 更改为 Apple 事实证明,如果您将 DID 配置文件中的 VendorID 更改为 Apple,就可以访问多项特殊功能! 在 Linux 上,您可以通过编辑 `/etc/bluetooth/main.conf` 中的 DeviceID 来实现。将此行添加到配置文件中:`DeviceID = bluetooth:004C:0000:0000`。在 Android 上,您可以在应用的设置中启用 `act as Apple device`(作为 Apple 设备运行)设置。 ### 多设备连接 最多两台设备可以同时连接到 AirPods,进行音频传输和控制。无缝切换连接。当 Android 接管 AirPods 时,会像 Apple 设备一样在 Apple 设备上显示相同的通知(“移至 iPhone”)。当其他设备接管时,Android 也会显示一个弹窗。 ### 辅助功能设置和助听器 可以配置辅助功能设置,如自定义通透模式(放大、平衡、音调、对话增强和环境降噪)以及降低高音量。 所有助听器自定义功能都可以在 Android 上完成(Linux 即将支持),包括设置听力图结果。该应用程序不提供听力测试的功能,因为这需要更高的精度。使用现有的听力图结果要好得多。 #### 一些注意事项 - 由于近期 AirPods 的固件升级,您必须启用 `Off listening mode`(Off 监听模式)才能切换至 `Off`。这是因为在此模式下,不会降低高音量。 - 如果您将两个 AirPods 都摘下,应用程序将自动切换到手机扬声器。但是,Android 可能会继续尝试连接 AirPods,因为手机仍与它们连接着,只是 A2DP 配置文件未连接。如果检测到 AirPods 不在耳中且 Android 已重新连接,应用程序会尽快断开 A2DP 配置文件。 - 通过应用程序重命名您的 AirPods 时,您需要将它们与手机重新配对才能使名称更改生效。这是 Android 上蓝牙设备命名工作方式的限制。 - 如果您希望在 Android 设置应用中显示 AirPods 图标和电池状态,请通过使用 root 模块将此应用安装为系统应用。 ## 支持者 非常感谢所有支持该项目的人! - @davdroman - @tedsalmon - @wiless - @SmartMsg - @lunaroyster - @ressiwage ## 特别感谢 - @tyalie 制作了该协议的第一份文档!([tyalie/AAP-Protocol-Definition](https://github.com/tyalie/AAP-Protocol-Defintion)) - @rithvikvibhu 以及 lagrangepoint 的小伙伴们协助开发助听器功能 ([gist](https://gist.github.com/rithvikvibhu/45e24bbe5ade30125f152383daf07016)) - @devnoname120 协助开发了第一个 root 补丁 - @timgromeyer 制作了 Linux 应用程序的第一个版本 - @hackclub 举办了 [High Seas](https://highseas.hackclub.com) 和 [Low Skies](https://low-skies.hackclub.com)! # 许可证 LibrePods - 从 Apple 生态系统中解放出来的 AirPods Copyright (C) 2025 LibrePods 贡献者 本程序是自由软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款对其进行重新分发和/或修改,许可证的版本为第三版,或(根据您的选择)任何更高版本。 分发本程序是希望它能有用,但不对提供任何保证;甚至没有对适销性或特定用途适用性的默示保证。有关更多详细信息,请参见 GNU 通用公共许可证。 您应该已经随本程序收到一份 GNU 通用公共许可证的副本。如果没有,请参见 。 所有商标、标识和品牌名称均归其各自所有者所有。使用它们并不意味着有任何附属关系或 endorsements。所有 AirPods 图像、符号和 SF Pro 字体均为 Apple Inc. 的财产。
标签:AirPods, BLE, iOS生态, LibrePods, 安卓, 开源硬件, 生态解绑, 硬件交互, 第三方客户端, 耳机控制, 蓝牙低能耗, 蓝牙协议逆向, 越狱, 跨平台开发, 防御绕过, 降噪控制, 非苹果设备, 音频处理