LibrePods вскрыл секретный протокол AirPods и перенёс его на Linux и Android
Как обычные Bluetooth-наушники AirPods работают где угодно — за Apple остаётся проприетарный слой: детекция в ухе, переключение шумоподавления, заряд. LibrePods переписывает этот слой заново, причём два его Rust-файла ИИ перевёл из Kotlin.
LibrePods — проект под GPL-3.0, говорящий на проприетарном протоколе AAP/AACP, который AirPods используют с устройствами Apple. Он приносит на Linux и Android детекцию в ухе, переключение режимов прослушивания, статус заряда и переименование. Два ключевых Rust-файла, aacp.rs и att.rs, ИИ перевёл из Kotlin.
Поправка треда: наушники и так нормально подключаются где угодно — это лишь возвращает эксклюзивные для Apple добавки. А один комментатор сказал, что Android 17 уже чинит баги Bluetooth, ради которых раньше нужен был root, так что он лучше форкнет проект, чем заплатит просимые $5.
Что на самом деле заперто и что отпирает LibrePods
LibrePods реализует проприетарный AAP (AirPods Protocol) и стандарт AACP — тот Bluetooth-слой, через который Apple обменивается данными между AirPods и своими устройствами, — чтобы не-Apple-платформы могли управлять функциями, которые Apple держит при себе. Он работает на Linux и Android под GPL-3.0, и честная заметка в README признаёт происхождение: файлы aacp.rs и att.rs переведены из Kotlin в Rust с помощью ИИ, как и часть интеграции с PulseAudio в медиаконтроллере.
Матрица функций, скопированная из проекта:
| Функция | Linux | Android |
|---|---|---|
| Смена режима прослушивания | да | да |
| Детекция в ухе | да | да |
| Статус заряда | да | да |
| Переименование AirPods | да | да |
| Conversational Awareness | да | да |
| Автоподключение | да | да |
| Жесты головой | нет | да |
| Настройки доступности | нет | да |
Уточнение, которого требовал заголовок
Слово «освобождены» вызвало полезную поправку от того, кто чётко обозначил, что вообще было в плену.
«Уточню, потому что это сбивает с толку: AirPods и так работают как обычные Bluetooth-наушники на других устройствах. Это реализация части дополнительных функций и интерфейсов, встроенных в продукты Apple». — Aurornis, отметивший, что формулировка путает
Эта переформулировка подпитала повторяющееся сомнение: зачем вообще этим заниматься. «Сами по себе AirPods не так уж хороши с точки зрения аудиофила. Единственное, что мне нравится, — интеграция с экосистемой Apple… не вижу мотивации», — написал комментатор, ценящий AirPods лишь за эту привязку к экосистеме. Одна пара владельцев призналась, что впервые узнаёт список функций собственных наушников из этой таблицы.
Страх кошки-мышки и более дешёвый вечер
Громче всего звучит опасение, что разблокировка по сути временная.
«Не будь я уверен, что Apple постарается прикрыть каждый путь к этому в будущем, это могло бы стать поводом купить AirPods». — инженер-программист, ожидающий, что Apple закроет дыры
Отдельное возражение было этическим, а не техническим: зачем вообще вознаграждать покупкой железа компанию, настолько враждебную, что она сама провоцирует войну патчей. А один комментатор подрубил посылку проекта сразу с двух сторон.
«К сведению: Android 17 чинит баги в Bluetooth-стеке, которые раньше требовали root. Но это приложение всё равно берёт $5 за функции, которые у ваших AirPods уже есть. Проведу вечер за форком и включу их сам». — комментатор, который собирается форкнуть проект вместо оплаты
Вывод, к которому пришли читатели, — не «AirPods теперь бесплатные», а то, что любопытная единица работы здесь — энтузиаст, заново заговоривший на секретном протоколе вендора достаточно хорошо, чтобы единственными оставшимися рвами стали просьба о $5 и следующее обновление прошивки Apple.
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
Meta привязала аттестацию к расходу токенов. Инженеры свели двух агентов болтать весь день
Чтобы выбить метрику, которая поощряла сжигание ИИ-токенов, сотрудники одной компании заставили двух агентов целый день переговариваться друг с другом. Автор поста объявляет этот режим мёртвым — и тут же предсказывает, что он вернётся, поумнев.