你兴冲冲拆开一副全新的 AirPods Pro,花了一千五。连上安卓手机,能响,没问题。但翻遍设置菜单找不到电量显示,降噪开关像从来不存在过。你想调一下通透模式——手机上根本没这个选项。你在淘宝确认了一下,买的确实是正品。
这些功能不是坏了。它们都在耳机里,完好无损。只是没有苹果设备,耳机拒绝把这些数据交出来。
这件事的荒诞之处,正在被一个叫 LibrePods 的开源项目揭穿。
耳机在跟谁说话?
要理解这场对抗,得先知道 AirPods 和 iPhone 之间到底在传送什么。
任何一台苹果设备连接 AirPods 时,耳机和手机之间建立了两条通讯路线。第一条走标准蓝牙协议,负责把歌传到耳朵里。第二条走的是苹果自己的秘密通道——一个名叫 AAP(Apple Accessory Protocol,苹果配件协议)的东西。
这条专用通道跑在蓝牙的 L2CAP 层上,端口号 0x1001,服务 ID 是 74ec2172-0bad-4d01-8f77-997b2be0722a。在普通蓝牙设备看来,这就是个无关紧要的数据管道;但对 AirPods 来说,这才是真正的大脑。
通过这条通道传送的数据包有固定格式:四字节头部 04 00 04 00,跟着长度字节、功能编号、具体数据。电池状态用 22 个字节描述左耳、右耳和充电盒的电量。入耳检测 8 个字节。降噪切换——关闭、降噪、通透——靠 0D 后面 01、02 或 03 就完成了。
换言之,AirPods 向苹果设备发送的所有”高级功能”信息,其实都是固定格式的短数据包。耳机一直在广播,只不过用了一种只有苹果设备才”听懂”的语言。
除此之外,AirPods 还通过 BLE 广播向外发送加密数据,包含电池信息和入耳状态。但加密钥匙——iCloud 云端密钥——只在苹果设备间同步。非苹果设备收到的只是一堆乱码。
三道锁:苹果是怎么封住这些功能的
苹果的封闭策略靠的是一种意识缝隙:你不觉得奇怪,你就不会去要。但如果你试着去要,你会发现下面三道门都锁着。
第一道:iCloud 配对锁。 当你用 iPhone 首次连接 AirPods,苹果云端服务在后台交换一组加密密钥,绑定 Apple ID,存进耳机的安全芯片。此后任何没有这组密钥的设备都无法参与高级功能数据交换。你在安卓手机上看到的”已连接”只是残缺状态:音乐能放,但耳机拒绝告诉你还剩多少电。
第二道:专有 BLE 广播扩展。 蓝牙广播协议规定了标准宣告方式。苹果在标准之上加了一层加密载荷,只有拿到 iCloud 密钥的设备才能解密。LibrePods 的做法是主动向耳机请求这组密钥,模仿苹果设备的请求方式。这个过程在代码里叫”Magic Pairing”——假装自己是一台苹果设备,耳机就把钥匙给你了。
第三道:MFi 芯片和 Vendor ID 检查。 苹果的 MFi(Made for iPhone)认证要求配件里装一颗认证芯片。AirPods 虽然不需要外部认证,但它们会检查连接设备的 Vendor ID(厂商编号)。如果 Vendor ID 不是 0x004C(苹果的公司编号),部分功能就会被静默禁用——什么提示都不给,只是功能菜单里少了几个选项。LibrePods 项目发现,把 Android 设备的 Vendor ID 伪装成苹果的,就能解锁额外功能。Linux 上更简单:改一行配置文件就行。
这三道锁揭示了一个别扭的事实:AirPods 硬件能做远超苹果允许它做的事。
28,000颗星星和一个16岁学生
LibrePods 项目的发起人叫 Kavish Devar,住在印度古尔冈,项目被媒体广泛报道时才 16 岁。根据 GitHub 仓库的数据,项目目前获得超过 28,000 颗星标(相当于 28,000 人留下了”我想持续关注这个项目”的标记),1,600 多人复制了代码去自己改进。
反向工程的第一步是抓包——用蓝牙嗅探工具捕获 iPhone 和 AirPods 之间的原始数据交换。你看到的是十六进制数据流:04 00 04 00 开头的手掌请求,0D 01 代表”切换降噪”,28 01 代表”打开对话感知”。
第二步是逐个功能实验。把降噪切来切去,观察数据包变哪几个字节。反复几百次后,每个字节的含义被翻译出来。Devar 感谢了多位社区贡献者——@tyalie 编写了第一份协议文档,@pabloaul 开发了 Wireshark 解析插件,@timgromeyer 实现 Linux 版原型。
这个反向工程过程的精妙之处在于:它没有破解任何加密算法,也没有窃取苹果的商业机密。它做的是最朴素的事——坐在两个正在交谈的人旁边,一句一句把对话记下来,然后猜出每个词的意思。这种做法在法律上属于互操作性的合理使用,很多司法管辖区明确保护这类行为。
硬件是你的,体验是苹果的
这件事把一个问题摆到台面上:1500 元买的东西,多少是真正属于你的?
法律上,耳机本身属于你。但耳机里跑着苹果的固件——一段苹果拥有版权、不公开源码、只能通过苹果设备完全激活的软件。如果你从未把 AirPods 连到过苹果设备,永远不会知道它的降噪可以在三种模式间切换——因为切换指令要走那道加密通道。
这等于一种变形的功能租赁:1500 元买的耳机硬件,完整使用权取决于你是否还拥有另一件苹果产品。从苹果的角度,封闭协议降低了体验碎片化,避免兼容性问题带来的售后负担,也让安全更新可以统一推送——“为了更好的体验,我们控制整个链条”。
但用户的视角截然不同。Hacker News 上有人写道:“既然 AirPods 是离线设备,现在买一副能用一辈子。不过,奖励那些不让你跳关卡才能用自己硬件的厂商,也许是更聪明的选择。“另一条评论更尖锐:“以前我们用加密技术保护自己,现在公司和政府用加密技术保护自己不受我们控制。”
这个项目也坦承碰到了自身局限。双通道高清语音、心率监测、空间音频——要么需要安卓 root 权限,要么协议尚未被完全解读。LibrePods 用五个符号标注每个功能的实现状态:✅ 完全可用,⚪ 需伪装成苹果设备,🔴 尚未实现,⛔ 明确不做,❓ 情况未知。这种坦诚让项目读起来不像胜利宣言,更像一张正在填补的空白地图。
两个阵营,谁也没赢
LibrePods 的故事不是简单的”好人战胜坏人”。从研究者角度看,苹果在隐私和安全上的投入是真实的——AirPods 的端到端加密让位置数据不会轻易泄露,封闭的固件更新机制也降低了恶意篡改风险。苹果没有主动破坏非苹果设备的体验,它只是从不建设这个体验。
社区的回答则是:既然你不做,我们自己做。28,000 人的关注表明这不是一个小众需求。当消费者为一副耳机支付的金额已经超过很多人的月工资时,对于”我买的东西我能用多少”这个问题的敏感度,只会越来越高。
这个项目的未来同样模糊。苹果可以在任意一次固件更新中修改协议,让多年反向工程一夜失效。Hacker News 上的务实建议是:如果长期用 LibrePods,确保你的 AirPods 不连接苹果设备自动更新,把固件”锁”在当前版本。这听起来不像自由——更像戴着镣铐争取来的有限空间。
笔者不认为这个问题有简单的对错答案。苹果有权为其生态投入研发并从中受益,消费者也有权质疑为何全价购买的硬件只能使用部分功能。这种张力不会因一个开源项目而解决,但每一个像 LibrePods 这样的项目,都让张力变得更容易被看见。
参考链接: