librepods README

The project's README from github.com/librepods-org/librepods. As one markdown file: README.md.

[!WARNING] librepods.org is not an official website of the LibrePods project. It inaccurately claims to be the official website of the project by claiming copyrights and using the LibrePods logo in the footer. And at the same time, they say that the project is not affiliated with the LibrePods project or its developers.

Please report any other such websites to [email protected]

LibrePods

What is LibrePods?

LibrePods allows you to use AirPods features that are exclusive to Apple devices. It implements the proprietary protocol used to exchange data between AirPods and Apple devices, enabling features like changing noise control modes, fast ear detection, accurate battery status, head gestures, conversational awareness, and more on non-Apple platforms.

Feature availability

Feature Linux Android
Changing Listening Mode ✅ ✅
Ear detection ✅ ✅
Battery status ✅ ✅
Renaming AirPods
Note for AndroidOn Android, you need to re-pair your AirPods after renaming them because Android might not use the latest name.
✅ ✅
Loud Sound Reduction 🔴 ⚪
Head Gestures ⛔ ✅
Conversational Awareness ✅ ✅
Automatically connect to AirPods ✅ ✅
Hearing Aid 🔴 ⚪
Transparency Mode customization 🔴 ⚪
Multi-device connectivity (Bluetooth Multipoint; 2 devices only) ⚪ ⚪
Other accessibility configs (click to expand)
  • Press speed
  • Press and Hold duration
  • Noise Cancellation with single AirPod
  • Volume control on swipe
  • Volume swipe speed
🔴 ✅
Other general configs
  • Press and Hold to cycle between listening modes/invoke digital assistant (invoking digital assistant needs a recent firmware)
  • Configure call controls
  • Personalized volume
  • Loud Sound Reduction (needs VendorID spoofing)
  • Microphone side
  • Pause media when falling asleep (needs a recent firmware)
  • Enable Off listening mode to switch to Off
🔴 ✅
Head-tracked Spatial Audio ❓ ❓
Heart Rate Monitoring ⛔ 🔴
Find My ❓ ❓
High quality two-way audio 🔴 🔴
Symbol Meaning
✅ Implemented and works well
⚪ Needs VendorID spoofing; use at your own risk
🔴 Not implemented yet; planned
⛔ Will not be implemented
❓ Unknown

Find My

The following features related to Find My are planned, but require further RE and might need root on Android:

Spatial Audio

The app does not currently provide head tracking information to Android for the OS to perform HRTF. This has not been explored completely, and it might need root.

Spatializing stereo sound is beyond this project's scope and will never be available. Many OEMs have an implementation of their own for this.

Heart Rate Monitoring (AirPods Pro 3 and later)

This is being worked upon, check the #⁠reverse-engineering channel on the LibrePods Discord server for more information. If it is ever implemented, it will most likely need root on Android.

High quality two-way audio

On iOS/iPadOS, you can continue using A2DP while AirPods send the audio stream from its microphone over AACP.

Since this needs deeper integration with audio on Android, it will most likely need root.

Installation

VendorID Spoofing

Turns out, if you change the VendorID in DID Profile to that of Apple, you get access to several special features!

You can do this on Linux by editing the DeviceID in /etc/bluetooth/main.conf. Add this line to the config file DeviceID = bluetooth:004C:0000:0000. For android you can enable the act as Apple device setting in the app's settings (shown only when Xposed is available and LibrePods module is enabled).

Multi-device Connectivity

Upto two devices can be simultaneously connected to AirPods, for audio and control both. Seamless connection switching. The same notification shows up on Apple device when Android takes over the AirPods as if it were an Apple device ("Move to iPhone"). Android also shows a popup when the other device takes over.

Accessibility Settings and Hearing Aid

Accessibility settings like customizing transparency mode (amplification, balance, tone, conversation boost, and ambient noise reduction), and loud sound reduction can be configured.

All hearing aid customizations can be done from Android (linux soon), including setting the audiogram result. The app doesn't provide a way to take a hearing test because it requires much more precision. It is much better to use an already available audiogram result.

Protocol and Reverse Engineering

Please refer to the Wireshark dissector plugin by Nojus (@pabloaul) for more information on the protocols used: pabloaul/apple-wireshark

The dissector had not been used in LibrePods for most of the implementation; I had reverse engineered the protocol myself before this dissector was made. But many (future) features including two-way high quality audio and spatial audio would not have been possible without their RE efforts!

Use of AI

Android app

These parts of the app were completely AI-generated:

Rest everything- the background service, the Bluetooth manager classes (AACP and ATT), the entire UI, even the smallest components were written manually.

Some parts of the UI components were borrowed from Kyant0's demo app, which is licensed under Apache License 2.0.

Linux (rewrite)

The aacp.rs and the att.rs files were translated from Kotlin to Rust with AI. Some parts of the media_controller.rs file, mainly the pulse integration, was also AI-generated.

Supporters

A huge thank you to everyone supporting the project!

davdroman
@davdroman
tedsalmon
@tedsalmon
wiless
@wiless
SmartMsg
@SmartMsg
lunaroyster
@lunaroyster
ressiwage
@ressiwage
kkjdroid
@kkjdroid
CitrusJoules
@CitrusJoules
DanielReyesDev
@DanielReyesDev
sumitduster
@sumitduster
GrifTheDev
@GrifTheDev

Special Thanks

Alternates for other platforms:

Star History

Star History Chart

License

LibrePods - AirPods liberated from Apple’s ecosystem Copyright (C) 2025 LibrePods contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Trademark Notice

The GPL does not grant any rights to use the LibrePods name, logo, or branding. The LibrePods name and logo may not be used for software, websites, domains, products, services, or other projects in a manner that suggests affiliation with, endorsement by, or association with the official LibrePods project without prior permission.

If you see any misuse of the LibrePods name or logo, please report it to [email protected].

The SF Pro font used in the Android app is the property of Apple Inc.. This will be removed in future versions of the app and replaced with an open alternative soon.

AirPods, AirPods Pro, AirPods Max, and the AirPods logo are trademarks of Apple Inc. The LibrePods project is not affiliated with or endorsed by Apple Inc. in any way.

librepods (librepods-org/librepods)

Searching Database…

30.4K ·GitHub
Что это такое?LibrePods — это приложение, которое открывает функции AirPods, обычно доступные только на устройствах Apple, для Linux и Android: режимы шумоподавления, определение того, в ухе ли наушник, уровень заряда, жесты головой, режим разговора и многое другое.
Это одно приложение или отдельные приложения для телефона и компьютера?Два отдельных приложения: одно для Android, одно для Linux. Большинство основных функций работают на обеих платформах, но жесты головой, настройки слухового аппарата и другие специальные настройки пока доступны только на Android.
Как его запустить?В README есть отдельные инструкции по установке для Android и Linux — выберите ту, что для вашей платформы. На Linux для функций, зависящих от подмены устройства, дополнительно нужно добавить строку DeviceID в файл /etc/bluetooth/main.conf.
Для работы нужно устройство Apple или iPhone?Нет — LibrePods сама реализует проприетарный протокол Apple для AirPods, поэтому компьютер с Linux или телефон с Android общается с наушниками напрямую. Для подмены на Android нужен Xposed с включённым модулем LibrePods.
Некоторые функции помечены как требующие подмены VendorID — что это значит?AirPods скрывают часть функций от устройств не от Apple, и «притворство» Apple их открывает: на Linux добавьте DeviceID = bluetooth:004C:0000:0000 в /etc/bluetooth/main.conf, на Android включите настройку «выдавать себя за устройство Apple» (нужен Xposed).
Это открытый код? Есть ли подвох в лицензии?GPLv3, полностью открытый код. Один нюанс: лицензия не распространяется на имя и логотип LibrePods, поэтому без разрешения ничего не может выдавать себя за официальный LibrePods.
Что работает сразу, без всякой подмены?Переключение режимов прослушивания, определение того, в ухе ли наушник, уровень заряда, переименование, режим разговора и автоподключение хорошо работают на обеих платформах. Жесты головой — только на Android (помечены как те, что на Linux не появятся никогда).
Каким-то функциям когда-нибудь понадобится рутированный Android?Скорее всего да: измерение пульса на AirPods Pro 3 и качественный двусторонний звук, если их реализуют, почти наверняка потребуют root, как, возможно, и запланированные функции Find My.
Есть ли то, что он никогда не будет поддерживать?Настоящее пространственное аудио — превращение стереозвука в объёмный объявлено вне планов проекта, потому что большинство производителей телефонов встраивают свою реализацию. Пространственное аудио с отслеживанием головы не изучено и может потребовать root.
Могут ли AirPods быть одновременно подключены к телефону и ноутбуку?Да — Bluetooth multipoint поддерживает до двух устройств для звука и управления, с плавным переключением и всплывающими окнами захвата подключения, как между устройствами Apple.
Может ли он превратить AirPods в слуховой аппарат?На Android да: усиление звука, баланс, тембр, усиление речи собеседника, подавление окружающего шума и ваша аудиограмма — всё настраивается; поддержка Linux в разработке. Тесты слуха он не проводит — нужен готовый результат аудиограммы.
А если моё устройство не поддерживается?В README рекомендуются CAPod для Android 16 QPR3 и ниже и нерутованных телефонов, MagicPods для Steam Deck, а также MagicPods в Microsoft Store как вариант «LibrePods для Windows».
librepods.org — это официальный сайт?Нет. В README прямо предупреждается, что этот сайт ложно выдаёт себя за официальный, незаконно использует логотип проекта, и предлагается сообщать разработчику о сайтах-подделках.
Size
195.8 MB
Stars
30.4K
Age
2y
Commits · 90 Days