LibrePods: Befreite AirPods
(github.com/librepods-org)- LibrePods ist ein Projekt, das das proprietäre Protokoll zwischen AirPods und Apple-Geräten implementiert, damit AirPods-Funktionen, die sonst Apple-Geräten vorbehalten sind, auch auf Nicht-Apple-Plattformen wie Linux und Android genutzt werden können
- Die unterstützten Funktionen unterscheiden sich je nach Plattform; Hörmoduswechsel, Trageerkennung, Batteriestatus, Konversationserkennung und automatische Verbindung sind unter Linux und Android implementiert und funktionieren gut
- Für einige Funktionen ist VendorID spoofing erforderlich oder sie befinden sich noch in der Planungsphase; Head Gestures werden nur unter Android unterstützt und sollen unter Linux nicht implementiert werden
- Find My, räumliches Audio, Herzfrequenzüberwachung und hochwertiges bidirektionales Audio sind noch unvollständig oder werden noch untersucht; unter Android könnten einige Funktionen root erfordern
- Die Android-App und Teile der Linux-Neufassung enthalten KI-generierten Code; das Projekt wird unter GPLv3 oder später veröffentlicht, aber die Rechte zur Nutzung des Namens, Logos und Brandings von LibrePods sind zusätzlich eingeschränkt
Was LibrePods macht
- LibrePods implementiert das proprietäre Protokoll zum Datenaustausch zwischen AirPods und Apple-Geräten
- Durch diese Implementierung können auf Nicht-Apple-Plattformen auch folgende AirPods-Funktionen genutzt werden
- Wechsel der Geräuschkontrollmodi
- Schnelle Trageerkennung
- Präziser Batteriestatus
- Head Gestures
- Conversational Awareness
- Weitere AirPods-Einstellungen
- Die Installationsdokumentation ist nach Plattform getrennt
Funktionsunterstützung nach Plattform
-
Funktionen, die unter Linux und Android implementiert sind und gut funktionieren
- Hörmoduswechsel
- Trageerkennung
- Batteriestatus
- AirPods umbenennen
- Unter Android muss nach dem Umbenennen möglicherweise erneut gekoppelt werden
- Conversational Awareness
- Automatische Verbindung der AirPods
-
Funktionen, die nur unter Android unterstützt werden
- Head Gestures
- Weitere Bedienungshilfen-Einstellungen
- Press speed
- Press and Hold duration
- Noise Cancellation with single AirPod
- Volume control on swipe
- Volume swipe speed
- Weitere allgemeine Einstellungen
- Mit Press and Hold durch Hörmodi wechseln oder den digitalen Assistenten aufrufen
- Einstellungen zur Anrufsteuerung
- Personalized volume
- Microphone side
- Medien beim Einschlafen pausieren
Off listening modeaktivieren
- Funktionen, die VendorID spoofing erfordern
- Loud Sound Reduction
- Hearing Aid
- Transparency Mode customization
- Multi-device connectivity
- Die Statuskennzeichnung bedeutet Folgendes
- ✅: implementiert und funktioniert gut
- ⚪: VendorID spoofing erforderlich, das Risiko trägt der Nutzer
- 🔴: noch nicht implementiert, geplant
- ⛔: wird nicht implementiert
- ❓: unbekannt
VendorID spoofing und zusätzliche Funktionen
- VendorID spoofing ist eine Methode, bei der die VendorID des DID-Profils auf den Apple-Wert geändert wird, um auf verschiedene Spezialfunktionen zuzugreifen
- Unter Linux kann dies durch Ändern der DeviceID in
/etc/bluetooth/main.confgenutzt werden- Konfigurationszeile:
DeviceID = bluetooth:004C:0000:0000
- Konfigurationszeile:
- Unter Android kann in den App-Einstellungen
act as Apple deviceaktiviert werden, wenn Xposed verfügbar ist und das LibrePods-Modul aktiviert wurde - Multi-device Connectivity ermöglicht es, bis zu 2 Geräte gleichzeitig mit den AirPods zu verbinden, sodass Audio und Steuerung auf beiden genutzt werden können
- Wenn Android die AirPods übernimmt, erscheint auf Apple-Geräten wie bei Apple-Geräten selbst die Benachrichtigung
"Move to iPhone" - Wenn ein anderes Gerät sie übernimmt, erscheint auch auf Android ein Popup
- Wenn Android die AirPods übernimmt, erscheint auf Apple-Geräten wie bei Apple-Geräten selbst die Benachrichtigung
- Auch Einstellungen zu Bedienungshilfen und Hörhilfe können konfiguriert werden
- amplification, balance, tone, conversation boost und ambient noise reduction im Transparency Mode
- Loud Sound Reduction
- Hearing-Aid-Anpassungen und das Festlegen von Audiogramm-Ergebnissen
- Die App bietet keinen Hörtest, da dafür eine höhere Präzision erforderlich wäre
Noch unvollständige Funktionen und Begrenzung des Projektumfangs
- Funktionen rund um Find My sind geplant, erfordern aber weiteres Reverse Engineering und könnten unter Android root benötigen
- AirPods zum Find-My-Netzwerk hinzufügen
- Ton über das Ladecase abspielen
- Benachrichtigung bei Zurücklassen
- Ladegeräusch des Cases umschalten
- Spatial Audio liefert Android derzeit keine Head-Tracking-Informationen, damit das OS HRTF ausführen könnte
- Es ist noch nicht vollständig erforscht und könnte root erfordern
- Eine Funktion zur Verräumlichung von Stereo-Sound liegt außerhalb des Projektumfangs und soll nicht bereitgestellt werden
- Viele OEMs haben dafür eigene Implementierungen
- Heart Rate Monitoring wird für Modelle ab AirPods Pro 3 entwickelt
- Selbst bei einer Implementierung wäre unter Android sehr wahrscheinlich root erforderlich
- High quality two-way audio bezieht sich auf die Fähigkeit unter iOS/iPadOS, A2DP weiter zu verwenden, während AirPods den Mikrofon-Audiostream per AACP senden
- Unter Android wäre dafür eine tiefere Integration ins Audiosystem nötig, weshalb wahrscheinlich root erforderlich wäre
Protokoll, Reverse Engineering und Einsatz von KI
- Zu den Protokollinformationen kann das Wireshark-Dissector-Plugin von Nojus pabloaul/apple-wireshark herangezogen werden
- Für den Großteil der LibrePods-Implementierung wurde dieser Dissector nicht verwendet; der Projektautor hat das Protokoll vor der Erstellung des Dissectors selbst per Reverse Engineering analysiert
- Für künftige Funktionen wie hochwertiges bidirektionales Audio und räumliches Audio sei diese Reverse-Engineering-Arbeit jedoch nötig gewesen
- Vollständig KI-generierte Teile in der Android-App
- Gesamte Logik und UI für Head Gestures
- Beide Versionen des Offset-Setups mit r2- und Xposed-Modul
- Troubleshooter und LogCollector
- Die übrigen Hauptteile der Android-App wurden manuell geschrieben
- background service
- AACP- und ATT-Bluetooth-Manager-Klassen
- Gesamte UI und kleinere Komponenten
- In der Linux-Neufassung wurden
aacp.rsundatt.rsper KI aus Kotlin nach Rust übersetzt- Teile von
media_controller.rs, vor allem die Pulse-Integration, sind ebenfalls KI-generiert
- Teile von
- Einige UI-Komponenten stammen aus Kyant0's demo app unter der Apache License 2.0
Alternative Apps, Lizenz und Markenhinweise
- Es werden alternative Apps genannt, die auf anderen Plattformen oder unter anderen Bedingungen verwendet werden können
- CAPod: AirPods-Companion-App für Android; empfohlen für Android 16 QPR3 oder älter und ohne root
- MagicPods for Steam Deck: website
- MagicPods: Alternative, wenn man LibrePods für Windows sucht
- LibrePods wird als freie Software unter den Bedingungen von GPLv3 oder später veröffentlicht
- Die GPL gewährt keine Rechte zur Nutzung des Namens, Logos oder Brandings von LibrePods
- Name und Logo von LibrePods dürfen ohne Genehmigung nicht in einer Weise verwendet werden, die eine Zugehörigkeit, Unterstützung oder Verbindung mit dem offiziellen Projekt andeutet
- Die in der Android-App verwendete Schriftart SF Pro ist Eigentum von Apple Inc. und soll in künftigen Versionen durch eine offene Alternative ersetzt werden
- AirPods, AirPods Pro, AirPods Max und das AirPods-Logo sind Marken von Apple Inc.; das LibrePods-Projekt ist weder mit Apple Inc. verbunden noch von Apple Inc. unterstützt
librepods.orgist nicht die offizielle Website des LibrePods-Projekts; es wird gewarnt, dass dort durch den Copyright-Hinweis im Footer und die Nutzung des LibrePods-Logos fälschlich der Eindruck einer offiziellen Website erweckt werde
1 Kommentare
Hacker-News-Kommentare
Zur Einordnung, weil es missverständlich sein kann: AirPods funktionieren auf anderen Geräten bereits als normale Bluetooth-Earbuds.
Dieses Projekt implementiert einige zusätzliche Funktionen und Schnittstellen, die in Apple-Produkte integriert sind.
Dort heißt es: „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“, und danach folgt auch eine Funktionstabelle.
Es gibt Produkte, die für weniger Geld besser klingen, aber Klangqualität ist bei diesem Produkt fast der kleinste Teil der Geschichte.
Das galt auch für unverzichtbare Funktionen jenseits der Verbindung als normales Bluetooth-Audio-Ausgabe-/Eingabegerät.
Dieses Projekt ist großartig. Ich hoffe, dass eines Tages auch AirDrop befreit wird.
https://github.com/seemoo-lab/opendrop sah vielversprechend aus, scheint aber eingeschlafen zu sein; hoffentlich wird es irgendwann möglich.
https://www.android.com/quick-share/
Wenn ich nicht fest davon überzeugt wäre, dass Apple in Zukunft versuchen wird, möglichst alle Wege zu blockieren, über die das funktionieren kann, hätte mich das vielleicht zum Kauf von AirPods motiviert.
Das hier ist eher so, dass jemand die Schnittstellen für Zusatzfunktionen implementiert hat, die in Apples Betriebssysteme bereits integriert sind.
Für ein Einfrieren der Version müsste man dafür sorgen, dass sie niemals mit einem Apple-Produkt verbunden werden.
Trotzdem würde ich, wenn man nicht bereits Apple-Computer oder -Telefone nutzt, die Sony WF-1000XM6 empfehlen. Die Nutzererfahrung soll schlechter und etwas buggy sein, aber der Klang ist sehr wahrscheinlich besser.
Andererseits ist es vielleicht besser, Hersteller zu belohnen, die keine solchen Umwege verlangen, damit ich die Hardware nutzen kann, die ich gekauft habe.
Frühere Diskussion: https://news.ycombinator.com/item?id=45941596
Ich respektiere die Arbeit und die Hacks, die hier hineingeflossen sind.
Aber ich verstehe nicht, warum man ein so feindseliges Unternehmen durch den Kauf von AirPods unterstützen sollte. Es würde mich nicht überraschen, wenn ein Patch kommt, der das verhindert.
Selbst wenn man es umgehen und hacken kann: Diese Kultur, Nutzer als etwas zu betrachten, das kontrolliert und betreut werden muss, stört mich.
Was auf Nicht-Apple-Plattformen nicht geht, sind Dinge wie Einstellungen, Ändern der Druckgesten oder das Laden von Firmware-Updates.
Mit Standard-Bluetooth allein gibt es dafür keine Möglichkeit, daher braucht man eine eigene App. Apple hat nur keine eigene App für andere Plattformen gebaut, und es gibt keinen Grund, warum Apple sich daran stören sollte, wenn jemand Ressourcen investiert, um eine App zu entwickeln. Schließlich wurden die AirPods verkauft, und die App-Entwicklung hat jemand anderes bezahlt; Apple gewinnt also.
Darf man auf einer normalen Bluetooth-Verbindung keine Funktionen hinzufügen, sie aber nur auf Plattformen anbieten, die man vollständig kontrollieren und qualitätssichern kann?
Ist es wirklich schon feindselig, Funktionen exklusiv anzubieten? Darf ein Unternehmen keine Vorteile bieten, wenn man mehrere seiner Produkte zusammen nutzt?
Oder meinst du, es sei feindselig, weil du annimmst, dass Apple das patchen wird?
Ich habe über Jahre hinweg mehrere Paare AirPods genutzt, und einige Funktionen waren mir bis jetzt völlig neu.
Ich dachte sogar kurz, es sollte eine dritte Spalte geben, die anzeigt, ob Apple sie unterstützt. Natürlich nur ein Scherz.
Für jemanden, der derzeit keine AirPods hat und Apple nicht besonders verfolgt, wäre es hilfreich zu erklären, welche Funktionen man verliert, wenn man AirPods mit Nicht-Apple-Geräten koppelt.
Ich hatte gehofft, dass das AirPods unter Linux gleichzeitig als Lautsprecher und Headset nutzbar macht.
Ich habe es selbst ausprobiert, und es scheint gut zu funktionieren. Hoffentlich wird es nicht durch Patente blockiert.
Allerdings muss man das Bluetooth-Profil auf HFP (Hands-Free Profile) oder HSP (Headset Profile) umstellen.
Man sollte außerdem beachten, dass dies wegen der besseren Qualität nicht die Standardeinstellung ist. Das liegt an der Bluetooth-Spezifikation, nicht an Linux.
Die zentrale nützliche Funktion, nach der ich suche, ist unbegrenztes Multipoint auch auf anderen Geräten.
Die zwei Verbindungen, die die meisten anderen Geräte bieten, sind ziemlich mies. Manchmal wäre es schön, mich schnell mit dem VoIP-Tischtelefon in der Firma verbinden zu können.