
AirPods, освобождённые из экосистемы Apple.
[!WARNING] librepods.org не является официальным сайтом проекта LibrePods. Он ошибочно заявляет, что является официальным сайтом проекта, указывая авторские права и используя логотип LibrePods в нижнем колонтитуле. И в то же время они заявляют, что проект не связан с проектом LibrePods или его разработчиками.
Пожалуйста, сообщайте о любых других подобных сайтах на [email protected]
LibrePods позволяет использовать функции AirPods, которые доступны только на устройствах Apple. Он реализует проприетарный протокол, используемый для обмена данными между AirPods и устройствами Apple, что даёт возможность использовать такие функции, как переключение режимов шумоподавления, быстрое определение нахождения в ушах, точный статус заряда батареи, жесты головой, осведомлённость о разговоре и многое другое на платформах, отличных от Apple.
| Функция | Linux | Android |
|---|---|---|
| Смена режима прослушивания | ✅ | ✅ |
| Определение нахождения в ушах | ✅ | ✅ |
| Статус батареи | ✅ | ✅ |
Переименование AirPods Примечание для AndroidНа Android после переименования AirPods их необходимо сопрячь заново, так как Android может не использовать новое имя. | ✅ | ✅ |
| Подавление громких звуков | 🔴 | ⚪ |
| Жесты головой | ⛔ | ✅ |
| Осведомлённость о разговоре | ✅ | ✅ |
| Автоматическое подключение к AirPods | ✅ | ✅ |
| Слуховой аппарат | 🔴 | ⚪ |
| Настройка режима прозрачности | 🔴 | ⚪ |
| Подключение к нескольким устройствам (Bluetooth Multipoint; только 2 устройства) | ⚪ | ⚪ |
Другие настройки специальных возможностей (нажмите, чтобы развернуть)
| 🔴 | ✅ |
Другие общие настройки
| 🔴 | ✅ |
| Пространственное аудио с отслеживанием головы | ❓ | ❓ |
| Мониторинг сердечного ритма | ⛔ | 🔴 |
| Find My | ❓ | ❓ |
| Высококачественное двустороннее аудио | 🔴 | 🔴 |
| Символ | Значение |
|---|---|
| ✅ | Реализовано и работает хорошо |
| ⚪ | Требуется подмена VendorID; используйте на свой страх и риск |
| 🔴 | Ещё не реализовано; запланировано |
| ⛔ | Не будет реализовано |
| ❓ | Неизвестно |
Следующие функции, связанные с Find My, запланированы, но требуют дальнейшего реверс-инжиниринга (RE) и могут потребовать root на Android:
В настоящее время приложение не предоставляет Android информацию об отслеживании головы для выполнения HRTF на уровне ОС. Этот вопрос изучен не полностью, и для этого может потребоваться root.
Пространственная обработка стереозвука выходит за рамки данного проекта и никогда не будет доступна. У многих OEM-производителей есть собственная реализация этой функции.
Над этим ведётся работа — подробности смотрите в канале #reverse-engineering на Discord-сервере LibrePods. Если эта функция будет реализована, скорее всего, для неё потребуется root на Android.
На iOS/iPadOS вы можете продолжать использовать A2DP, пока AirPods отправляют аудиопоток со своего микрофона через AACP.
Поскольку для этого требуется более глубокая интеграция с аудиосистемой Android, скорее всего, понадобится root.
Оказывается, если изменить VendorID в DID Profile на идентификатор Apple, вы получаете доступ к нескольким специальным функциям!
На Linux это можно сделать, отредактировав DeviceID в /etc/bluetooth/main.conf. Добавьте в файл конфигурации строку DeviceID = bluetooth:004C:0000:0000. На Android вы можете включить настройку act as Apple device в настройках приложения (она отображается только при наличии Xposed и включённом модуле LibrePods).
К AirPods могут быть одновременно подключены до двух устройств — как для аудио, так и для управления. Бесшовное переключение соединения. Когда Android перехватывает AirPods, на устройстве Apple появляется то же уведомление, как если бы это было устройство Apple («Move to iPhone»). Android также показывает всплывающее окно, когда другое устройство перехватывает соединение.
Можно настроить такие параметры специальных возможностей, как настройка режима прозрачности (усиление, баланс, тон, усиление речи и подавление окружающего шума), а также подавление громких звуков.
Все настройки слухового аппарата можно выполнять с Android (вскоре и с Linux), включая установку результата аудиограммы. Приложение не предоставляет возможности пройти проверку слуха, поскольку для этого требуется гораздо большая точность. Гораздо лучше использовать уже имеющийся результат аудиограммы.
Для получения дополнительной информации об используемых протоколах обратитесь к плагину-диссектору Wireshark от Nojus (@pabloaul): pabloaul/apple-wireshark
Диссектор не использовался в LibrePods на протяжении большей части реализации; я сам провёл реверс-инжиниринг протокола до того, как этот диссектор был создан. Но многие (будущие) функции, включая двустороннее высококачественное аудио и пространственное аудио, были бы невозможны без их усилий по реверс-инжинирингу!