1 Punkte von GN⁺ 3 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • 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 mode aktivieren
    • 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.conf genutzt werden
    • Konfigurationszeile: DeviceID = bluetooth:004C:0000:0000
  • Unter Android kann in den App-Einstellungen act as Apple device aktiviert 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
  • 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.rs und att.rs per KI aus Kotlin nach Rust übersetzt
    • Teile von media_controller.rs, vor allem die Pulse-Integration, sind ebenfalls KI-generiert
  • 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
  • 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.org ist 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

 
GN⁺ 3 시간 전
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.

    • Ich sehe nicht, was daran missverständlich sein soll. Das steht schon ganz oben im README.
      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.
    • Das ist nicht der Grund, warum man AirPods kauft. Der Kern ist, wie nahtlos sie vom iPhone zu Apple TV, MBP und Mini wechseln.
      Es gibt Produkte, die für weniger Geld besser klingen, aber Klangqualität ist bei diesem Produkt fast der kleinste Teil der Geschichte.
    • Wenn ich mich richtig erinnere, gab es mindestens seit 2021 mehrere Android-Apps, die den Akkustand der AirPods anzeigen konnten.
      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.

  • 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.

    • AirPods funktionieren bereits außerhalb des Apple-Ökosystems.
      Das hier ist eher so, dass jemand die Schnittstellen für Zusatzfunktionen implementiert hat, die in Apples Betriebssysteme bereits integriert sind.
    • AirPods werden aktualisiert, wenn sie im Case geladen werden und mit einem xOS-Gerät gekoppelt sind.
      Für ein Einfrieren der Version müsste man dafür sorgen, dass sie niemals mit einem Apple-Produkt verbunden werden.
    • Warum sollte Apple AirPods zu einem schlechteren Kauf machen wollen? Apple erlaubt, auf Macs beliebige Betriebssysteme laufen zu lassen, und ist dort zwar nicht aktiv feindselig, hilft der Community aber auch nicht.
      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.
    • AirPods sind Offline-Geräte; wenn man jetzt ein Paar kauft, werden sie unbegrenzt funktionieren.
      Andererseits ist es vielleicht besser, Hersteller zu belohnen, die keine solchen Umwege verlangen, damit ich die Hardware nutzen kann, die ich gekauft habe.
    • Ich würde sie nicht kaufen. Unabhängig vom Preisbereich sind sie die unbequemsten Earbuds auf dem Markt.
  • 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.

    • Das ist der Punkt, der mich bei Apple am meisten beschäftigt. Die Hardware ist wirklich hervorragend, aber wegen der Haltung gegen Nutzerfreiheit auf der eigenen Hardware werde ich sie nie verwenden.
      Selbst wenn man es umgehen und hacken kann: Diese Kultur, Nutzer als etwas zu betrachten, das kontrolliert und betreut werden muss, stört mich.
    • Das ist eher Faulheit als Feindseligkeit. AirPods verwenden für alles, was Bluetooth bietet, Standard-Bluetooth.
      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.
    • Ich verstehe nicht, was daran so feindselig sein soll.
      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?
      1. Zum Spaß.
      2. Um Gebrauchtkäufern, Beschenkten, früheren Käufern usw. zusätzliche Freiheit zu geben.
  • 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.

    • Es gibt eine Liste zur Funktionskompatibilität.
  • Ich hatte gehofft, dass das AirPods unter Linux gleichzeitig als Lautsprecher und Headset nutzbar macht.

    • Dafür gibt es einen PR: https://github.com/librepods-org/librepods/pull/655
      Ich habe es selbst ausprobiert, und es scheint gut zu funktionieren. Hoffentlich wird es nicht durch Patente blockiert.
    • Auch unter Linux kann man AirPods gleichzeitig als Lautsprecher (Wiedergabe) und Headset (Mikrofon) verwenden.
      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.