ARTICLE · 1199734
超赞开源项目-AirPods打穿安卓系统限制
超赞开源项目-AirPods打穿安卓系统限制
手里有 AirPods,用着的却是安卓手机或 Linux 电脑,大概都遇到过这种尴尬:耳机能连上,但降噪模式切不了、电量看不到、戴没戴上系统也不清楚——这些功能被锁在苹果设备里。LibrePods 做的事,就是把 AirPods 与苹果设备之间那套私有通信协议重新实现一遍,让非苹果平台也能用上这些"专属能力"。项目用 Kotlin 写 Android 端,Linux 端正在用 Rust 重写,目前已覆盖监听模式切换、入耳检测、精确电量、头部手势、对话感知等一批核心功能。适合想在自己平台上把 AirPods 用透、又不打算换苹果设备的用户。
LibrePods 项目主视觉
🔗 开源地址
https://github.com/librepods-org/librepods
项目定位:AirPods liberated from Apple's ecosystem —— 把 AirPods 从苹果生态里解放出来。
内容说明
核心功能:把苹果专属能力搬到双端
LibrePods 实现了 AirPods 与苹果设备之间交换数据的私有协议,因此在非苹果平台上可以直接控制:
- ✓
监听模式切换:关闭 / 通透 / 自适应 / 降噪四种模式,并可分别为左右耳配置"按住"的行为(切模式或唤起数字助理)。
- ✓
入耳检测与自动连接:摘下自动暂停、戴上恢复,耳机断开后可自动回连。
- ✓
精确电量显示:左右耳与充电仓电量分别读数,不依赖系统的粗略估算。
- ✓
重命名 AirPods:可直接改耳机名称(安卓上改名后需要重新配对,才会用上新名字)。
- ✓
对话感知:开始说话时自动降低音量、切到通透;也可配置为直接暂停媒体。
- ✓
头部手势:点头接听、摇头拒接(目前仅 Android 支持)。
头部手势:点头接听、摇头拒接
Android 端把这些能力做成了一个完整的控制面板:主界面显示耳机与充电仓电量、监听模式、按压与按住的手势映射,以及来电控制。
Android 端主控制界面
技术亮点:协议逆向 + 主动"冒充"苹果设备
- ✓
自行逆向私有协议:作者在 Wireshark 解析插件出现之前就独立完成了协议逆向;插件作者 @pabloaul 整理的 apple-wireshark 解析器,则为双向高清音频、空间音频等尚在计划中的特性提供了基础。
- ✓
VendorID 伪造:AirPods 会检查连接的设备是不是苹果设备。把 DID Profile 里的 VendorID 改成苹果的(Linux 在
/etc/bluetooth/main.conf里加一行DeviceID = bluetooth:004C:0000:0000;Android 在设置中打开 "act as Apple device",该选项需 Xposed 可用且已启用 LibrePods 模块),就能再解锁一批特性,包括响度降低、助听、通透模式定制与双设备连接。README 把这些标注为"需 VendorID 伪造、自担风险"。 - ✓
双设备接管:最多两台设备可同时连接 AirPods,音频与控制都可用,切换是平滑的;安卓接管时,苹果那侧会收到与"Move to iPhone"相同的通知,安卓侧也会弹出提示。
- ✓
坦白开源实现方式:README 明确列出了哪些代码由 AI 生成——Android 的头部手势(含逻辑与 UI)、配合 r2 的偏移设置、疑难排查与日志收集工具;Linux 端
aacp.rs/att.rs由 Kotlin 转译 Rust、media_controller.rs的 pulse 集成部分。其余如后台服务、蓝牙管理层(AACP / ATT)、整套 UI 均为手工编写。
Linux 端是一个原生桌面应用(初版基于 Qt6),提供噪控模式、对话感知、电量监控、入耳自动播放/暂停、助听功能,并支持 Android 与 Linux 之间的无缝切换;另附一个命令行工具 librepods-ctl,可用脚本直接切模式(noise:anc / noise:transparency / noise:adaptive / noise:off)。Linux 端目前正在 linux/rust 分支上用 Rust 重写。
Linux 原生桌面应用
无障碍与助听配置
除常规功能外,LibrePods 还开放了面向听障用户的一组配置:通透模式下的放大、左右平衡、音色、对话增强、环境噪声抑制,以及响度降低等。助听相关的全部调整都能在 Android 端完成(Linux 端随后跟进),包括导入已有的听力图(audiogram)结果来设定参数。
需要说明的是,App 本身不提供听力测试——听力测试需要更高的精度,项目建议直接使用已有的听力图结果来设置。
助听器参数调整界面
适用场景与前置条件
- ✓
Android:无需 root 的机型有限。在 ColorOS / OxygenOS 16、realme UI 7.0,以及升级到 Android 16 QPR3 的 Pixel 设备(须装最新 Google Play 系统更新)上,多数特性无需 root;其余机型会因为 Android 蓝牙协议栈与苹果蓝牙实现不合规的问题而需要 root + Xposed,该问题已在跟踪中,预计 Android 17 会对所有设备解决。安装方式有 Google Play、GitHub Releases,或作为系统应用(root 模块)安装以获取特权蓝牙权限。
- ✓
Linux:可下载 AppImage 或可执行文件,初版需 Qt6 等依赖,按 README 中的发行版说明安装即可。
装上 root 模块后,耳机与手机的电量、监听模式可以一起放进桌面小组件。
桌面小组件显示电量与监听模式
总结说明
LibrePods 把 AirPods 的私有协议完整逆向并开源,Android 端的功能覆盖已经相当可观,Linux 端也在用 Rust 重写、持续跟进。它的价值在于让非苹果平台不再被硬件"阉割",适合愿意折腾的 Android / Linux 用户。需要注意的是,部分特性依赖 VendorID 伪造并被官方标注为"自担风险",Android 侧还有 root 与机型的门槛。项目以 GPL-3.0 发布,但 GPL 并不授予 LibrePods 名称与标识的使用权。另外,README 明确声明 librepods.org 并非官方站点,遇到类似站点请留意。















































































