Use AirPods features like listening mode switching and ear detection on a Linux laptop.
Get accurate AirPods battery status and rename them from an Android phone.
Enable extra Apple-only features on non-Apple devices through VendorID spoofing.
Connect AirPods to two devices at once with seamless switching between them.
| librepods-org/librepods | signalapp/signal-android | square/leakcanary | |
|---|---|---|---|
| Stars | 29,143 | 28,768 | 29,924 |
| Language | Kotlin | Kotlin | Kotlin |
| Setup difficulty | moderate | hard | easy |
| Complexity | 4/5 | 4/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Some features require VendorID spoofing or root access, and support differs between the Linux and Android builds.
LibrePods brings AirPods features that normally only work on Apple devices to Linux and Android. It works by reimplementing the proprietary protocol Apple uses to talk to AirPods, letting non-Apple devices access things like switching noise control modes, ear detection, accurate battery readouts, head gestures, and conversational awareness. The README includes a detailed feature table comparing what already works on Linux versus Android. Both platforms support changing listening mode, ear detection, battery status, renaming your AirPods, conversational awareness, and automatic connection. Some features, like head gestures, currently only work on Android, while others, such as loud sound reduction and hearing aid customization, are planned or need a trick called VendorID spoofing, which makes the device identify itself as an Apple product to unlock extra functionality. A handful of features, including spatial audio with head tracking and true high quality two way audio, are marked as unclear or likely to require root access on Android, since Apple's own deeper OS integration is hard to replicate. Installation instructions are provided separately for Android and Linux in their own subfolders. On Linux, VendorID spoofing is done by editing a Bluetooth configuration file, while on Android it is a toggle in the app's settings that appears once a companion Xposed module is enabled. The project also documents multi device connectivity, where up to two devices can share an AirPods connection with seamless switching between them, similar to how this works between genuine Apple devices. For anyone curious about the underlying protocol, the README points to a separate Wireshark dissector plugin built by another developer, though the author notes they reverse engineered the protocol independently before that tool existed. The README also discloses that some parts of the Android app were built entirely with AI assistance. The full README is longer than what was shown.
An open source project that brings Apple-exclusive AirPods features, like noise control and battery status, to Linux and Android devices.
Mainly Kotlin. The stack also includes Kotlin, Rust, Bluetooth.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.