
AirPods befreit aus dem Apple-Ökosystem.
> [!WARNING] > librepods.org ist keine offizielle Website des LibrePods-Projekts. Sie behauptet fälschlicherweise, die offizielle Website des Projekts zu sein, indem sie Urheberrechte geltend macht und das LibrePods-Logo in der Fußzeile verwendet. Gleichzeitig geben sie an, dass das Projekt nicht mit dem LibrePods-Projekt oder dessen Entwicklern verbunden ist. > > Bitte melden Sie weitere solche Websites an [[email protected]](mailto:[email protected]) <picture> <source media="(prefers-color-scheme: dark)" srcset="./imgs/banner-dark.png" /> <source media="(prefers-color-scheme: light)" srcset="./imgs/banner.png" /> <img alt="LibrePods" src="https://assets.kitploit.com/production/public/readmes/7308/dd79739201ddda9382b9f24871abdd8b39e75645fe7c341831c76ed98b61f805.png" /> </picture> <div align="center" style="margin: 20px 0px;"> <a href="https://github.com/kavishdevar/librepods/releases/latest"> <img src="https://img.shields.io/github/downloads/kavishdevar/librepods/total?label=GitHub%20Downloads" /> </a> <a href="https://github.com/kavishdevar/librepods/actions/workflows/ci-android.yml"> <img src="https://github.com/kavishdevar/librepods/actions/workflows/ci-android.yml/badge.svg" /> </a> <a href="https://github.com/kavishdevar/librepods/actions/workflows/ci-linux-rust.yml"> <img src="https://github.com/kavishdevar/librepods/actions/workflows/ci-linux-rust.yml/badge.svg" /> </a> <a href="https://github.com/kavishdevar/librepods/issues"> <img src="https://img.shields.io/github/issues/kavishdevar/librepods" /> </a> <a href="https://discord.gg/HhG4ycVum4"> <img src="https://img.shields.io/discord/1441416992027574375?logoColor=white&color=5865F2&label=Discord" /> </a> </div> # Was ist LibrePods? LibrePods ermöglicht es dir, AirPods-Funktionen zu nutzen, die exklusiv für Apple-Geräte verfügbar sind. Es implementiert das proprietäre Protokoll, das für den Datenaustausch zwischen AirPods und Apple-Geräten verwendet wird, und ermöglicht Funktionen wie das Ändern der Geräuschsteuerungsmodi, schnelle Ohrerkennung, präzisen Batteriestatus, Kopfbewegungen, Konversationsbewusstsein und mehr auf Nicht-Apple-Plattformen. # Verfügbarkeit der Funktionen | Funktion | Linux | Android | | ----------------------------------------------------------- | ----- | ------- | | Ändern des Hör-Modus | ✅ | ✅ | | Ohreerkennung | ✅ | ✅ | | Batteriestatus | ✅ | ✅ | | AirPods umbenennen <details><summary>Hinweis für Android</summary>Unter Android müssen Sie Ihre AirPods nach dem Umbenennen erneut koppeln, da Android möglicherweise nicht den neuesten Namen verwendet.</details> | ✅ | ✅ | | Reduzierung lauter Geräusche | 🔴 | ⚪ | | Kopfbewegungen | ⛔ | ✅ | | Konversationsbewusstsein | ✅ | ✅ | | Automatisch mit AirPods verbinden | ✅ | ✅ | | Hörgerät | 🔴 | ⚪ | | Anpassung des Transparenzmodus | 🔴 | ⚪ | | Multi-Device-Konnektivität (Bluetooth Multipoint; nur 2 Geräte) | ⚪ | ⚪ | | <details><summary>Weitere Barrierefreiheits-Konfigurationen (zum Erweitern klicken)</summary><ul><li>Druckgeschwindigkeit</li><li>Dauer für Drücken und Halten</li><li>Geräuschunterdrückung mit einem einzelnen AirPod</li><li>Lautstärkeregelung per Wischen</li><li>Geschwindigkeit der Lautstärke-Wischgeste</li></ul></details> | 🔴 | ✅ | | <details><summary>Weitere allgemeine Konfigurationen</summary><ul><li>Drücken und Halten zum Wechseln zwischen Hör-Modi/Aufrufen des digitalen Assistenten (das Aufrufen des digitalen Assistenten erfordert eine aktuelle Firmware)</li><li>Anrufsteuerung konfigurieren</li><li>Personalisierte Lautstärke</li><li>Reduzierung lauter Geräusche (erfordert <a href="#vendorid-spoofing">VendorID-Spoofing</a>)</li><li>Mikrofonseite</li><li>Medien pausieren beim Einschlafen (erfordert eine aktuelle Firmware)</li><li><code>Off listening mode</code> aktivieren, um zu <code>Off</code> zu wechseln</li></ul></details> | 🔴 | ✅ | | [Kopfbewegungsgesteuertes Spatial Audio](#spatial-audio) | ❓ | ❓ | | [Herzfrequenzüberwachung](#heart-rate-monitoring) | 🔴 | 🟡 | | [Wo ist?](#find-my) | ❓ | ❓ | | [Hochwertiges bidirektionales Audio](#high-quality-two-way-audio) | 🟡 | 🟡 | | Symbol | Bedeutung | | ------ | ------------------------------------------------------------------- | | ✅ | Implementiert und funktioniert gut | | ⚪ | Erfordert [VendorID-Spoofing](#vendorid-spoofing); Nutzung auf eigenes Risiko | | 🟡 | Experimentell/in Arbeit | | 🔴 | Noch nicht implementiert; geplant | | ⛔ | Wird nicht implementiert | | ❓ | Unbekannt | ## Wo ist? Die folgenden Funktionen im Zusammenhang mit „Wo ist?“ sind geplant, erfordern jedoch weiteres RE und benötigen unter Android möglicherweise Root: - Ihre AirPods zum „Wo ist?“-Netzwerk hinzufügen - Ton über das Ladecase abspielen, um es zu finden - Benachrichtigung beim Zurücklassen - Ladegeräusche des Cases ein-/ausschalten ## Spatial Audio Die App stellt Android derzeit keine Kopfbewegungsinformationen zur Verfügung, damit das Betriebssystem HRTF durchführen kann. Dies wurde noch nicht vollständig untersucht und erfordert möglicherweise Root. Die Räumlichmachung von Stereoton liegt außerhalb des Umfangs dieses Projekts und wird niemals verfügbar sein. Viele OEMs haben hierfür eine eigene Implementierung. ## Herzfrequenzüberwachung ### Android Verfügbar im Branch `android/rewrite`. [Builds](https://github.com/librepods-org/librepods/actions/workflows/ci-android.yml?query=branch%3Aandroid%2Frewrite) ### Linux Noch nicht verfügbar (scheint ohnehin nichts zu sein, was auf einem Computer nützlich wäre. Wenn Sie Vorschläge haben, erstellen Sie eine Diskussion.) ## Hochwertiges Zwei-Wege-Audio Unter iOS/iPadOS kannst du A2DP weiterhin nutzen, während AirPods den hochauflösenden (AAC-ELD Mono 64kHz?) Audiostream von ihrem Mikrofon über AACP senden. ### Android Nimm Audio innerhalb der App über das Mikrofon der AirPods auf, ohne zum Headset-/Handsfree-Profil zu wechseln, das die Wiedergabequalität beeinträchtigt. Dies anderen Apps/der Telefonie zur Verfügung zu stellen, könnte jedoch Root erfordern, falls überhaupt möglich. Der Recorder befindet sich in Arbeit; verfügbar im Branch `android/rewrite`. [builds](https://github.com/librepods-org/librepods/actions/workflows/ci-android.yml?query=branch%3Aandroid%2Frewrite) ### Linux Sieh dir [PR #655](https://github.com/librepods-org/librepods/pull/655) an. # Installation - [**Android**](https://github.com/librepods-org/librepods/blob/main/android/README.md) - [**Linux**](https://github.com/librepods-org/librepods/blob/main/linux/README.md) # VendorID-Spoofing Es stellt sich heraus, dass man Zugriff auf mehrere besondere Funktionen erhält, wenn man die VendorID im DID-Profil auf die von Apple ändert! Unter Linux kannst du dies tun, indem du die DeviceID in `/etc/bluetooth/main.conf` bearbeitest. Füge diese Zeile zur Konfigurationsdatei hinzu: `DeviceID = bluetooth:004C:0000:0000`. Unter Android kannst du die Einstellung `act as Apple device` in den Einstellungen der App aktivieren (wird nur angezeigt, wenn Xposed verfügbar und das LibrePods-Modul aktiviert ist). ## Multi-Device-Konnektivität Bis zu zwei Geräte können gleichzeitig mit den AirPods verbunden sein, sowohl für Audio als auch für Steuerung. Nahtloses Umschalten der Verbindung. Dieselbe Benachrichtigung erscheint auf dem Apple-Gerät, wenn Android die AirPods übernimmt, als wäre es ein Apple-Gerät („Move to iPhone"). Android zeigt ebenfalls ein Popup an, wenn das andere Gerät übernimmt. ## Bedienungshilfen-Einstellungen und Hörgerät Bedienungshilfen-Einstellungen wie die Anpassung des Transparenzmodus (Verstärkung, Balance, Klang, Sprachverstärkung und Umgebungsgeräuschreduzierung) sowie die Reduzierung lauter Geräusche können konfiguriert werden. Alle Hörgerät-Anpassungen können von Android aus vorgenommen werden (Linux bald), einschließlich der Einstellung des Audiogramm-Ergebnisses. Die App bietet keine Möglichkeit, einen Hörtest durchzuführen, da dies viel mehr Präzision erfordert. Es ist viel besser, ein bereits verfügbares Audiogramm-Ergebnis zu verwenden. # Protokoll und Reverse Engineering Bitte beachte das Wireshark-Dissector-Plugin von Nojus ([@pabloaul](https://github.com/pabloaul)) für weitere Informationen zu den verwendeten Protokollen: [pabloaul/apple-wireshark](https://github.com/pabloaul/apple-wireshark) Der Dissector wurde während des Großteils der Implementierung nicht in LibrePods verwendet; ich hatte das Protokoll selbst reverse-engineered, bevor dieser Dissector erstellt wurde. Aber viele (zukünftige) Funktionen, einschließlich Zwei-Wege-Hochwertigkeitsaudio und Spatial Audio, wären ohne ihre RE-Bemühungen nicht möglich gewesen! # Verwendung von KI ## Android-App Diese Teile der App wurden vollständig von KI generiert: - Head Gestures – alles davon, einschließlich Logik und UI - Das Offset-Setup mit r2+dem Xposed-Modul (beide Versionen) - Troubleshooter und LogCollector Alles Übrige – der Hintergrunddienst, die Bluetooth-Manager-Klassen (AACP und ATT), die gesamte UI, selbst die kleinsten Komponenten – wurde manuell geschrieben. Einige Teile der UI-Komponenten wurden von [Kyant0s Demo-App](https://github.com/Kyant0/AndroidLiquidGlass/tree/master/catalog) übernommen, die unter der [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) lizenziert ist. ## Linux (Rewrite) Die Dateien `aacp.rs` und `att.rs` wurden mit KI von Kotlin nach Rust übersetzt. Einige Teile der Datei `media_controller.rs`, hauptsächlich die Pulse-Integration, wurden ebenfalls von KI generiert. # Unterstützer Ein riesiges Dankeschön an alle, die das Projekt unterstützen! <table> <tr> <td align="center"> <a href="https://github.com/davdroman"> <img src="https://assets.kitploit.com/production/public/readmes/7308/776c36c82a7801798fc6ff1a91611d8272c3f21c41f10a808ae6ab459872104a.jpg" width="48" height="48"alt="davdroman"/><br /> @davdroman </a> </td> <td align="center"> <a href="https://github.com/tedsalmon"> <img src="https://assets.kitploit.com/production/public/readmes/7308/29cbb61b4c1f9a9992f644c2592fb4c3a626d580397fb5ff01133039fa9a7441.jpg" width="48" height="48"alt="tedsalmon"/><br /> @tedsalmon </a> </td> <td align="center"> <a href="https://github.com/wiless"> <img src="https://assets.kitploit.com/production/public/readmes/7308/f10d3773c4c1f7ac24dafc11366fd93ae98e40bf3f2252ed17023f6909c280de.jpg" width="48" height="48"alt="wiless"/><br /> @wiless </a> </td> </tr> <tr> <td align="center"> <a href="https://github.com/SmartMsg"> <img src="https://assets.kitploit.com/production/public/readmes/7308/8d8b4afb772a2d505ffbd6d895c279126a6140bd8c3c0431e0fecb1d8cc78d4a.jpg" width="48" height="48"alt="SmartMsg"/><br /> @SmartMsg </a> </td> <td align="center"> <a href="https://github.com/lunaroyster"> <img src="https://assets.kitploit.com/production/public/readmes/7308/8ab33c6770165d3fbd14e19766731ada3f0d9cb29f2c7782d142b848e92c1cbd.jpg" width="48" height="48"alt="lunaroyster"/><br /> @lunaroyster </a> </td> <td align="center"> <a href="https://github.com/ressiwage"> <img src="https://assets.kitploit.com/production/public/readmes/7308/06edb9c51fd205aea82e9415bada62fb35394b66a7b65709ea99dc771a308a69.jpg" width="48" height="48"alt="ressiwage"/><br /> @ressiwage </a> </td> </tr> <tr> <td align="center"> <a href="https://github.com/kkjdroid"> <img src="https://assets.kitploit.com/production/public/readmes/7308/3156f982f536e6bd7c59d465c9b31d02ab86684b688024396caaba99b184f1ba.jpg" width="48" height="48"alt="kkjdroid"/><br /> @kkjdroid </a> </td> <td align="center"> <a href="https://github.com/CitrusJoules"> <img src="https://assets.kitploit.com/production/public/readmes/7308/251a526465bd512cb24e299e6d5f901dc509bf01a3ceb4308b13cdfcf936d1ae.png" width="48" height="48"alt="CitrusJoules"/><br /> @CitrusJoules </a> </td> <td align="center"> <a href="https://github.com/DanielReyesDev"> <img src="https://assets.kitploit.com/production/public/readmes/7308/d184d9fac60f0c7c719d061c7f13da5ae765fcb06a516db3b6368f5a143b1aa3.jpg" width="48" height="48"alt="DanielReyesDev"/><br /> @DanielReyesDev </a> </td> </tr> <tr> <td align="center"> <a href="https://github.com/sumitduster"> <img src="https://assets.kitploit.com/production/public/readmes/7308/dc57745f78d8548393402e301691893b01dc0067a134f7ecf20629d14a81c22b.jpg" width="48" height="48"alt="sumitduster"/><br /> @sumitduster </a> </td> <td align="center"> <a href="https://github.com/GrifTheDev"> <img src="https://assets.kitploit.com/production/public/readmes/7308/3d4decbb6b54d36f8354af483fb767741550b61e163054cddff36d196ea77518.png" width="48" height="48"alt="GrifTheDev"/><br /> @GrifTheDev </a> </td> </tr> </table> # Besonderer Dank - @tyalie für die Erstellung der ersten Dokumentation des Protokolls! ([tyalie/AAP-Protocol-Definition](https://github.com/tyalie/AAP-Protocol-Defintion)) - @rithvikvibhu und die Leute bei lagrangepoint für die Hilfe bei der Hörgeräte-Funktion ([gist](https://gist.github.com/rithvikvibhu/45e24bbe5ade30125f152383daf07016)) - @devnoname120 für die Hilfe beim ersten Root-Patch - @timgromeyer für die Erstellung der ersten Version der Linux-App - @hackclub für das Hosten von [High Seas](https://highseas.hackclub.com) und [Low Skies](https://low-skies.hackclub.com)! - Natürlich alle, die auf irgendeine Weise zum Projekt beigetragen haben, sei es durch Testen, Teilen von Feedback oder einfach durch Interesse! # Alternativen für andere Plattformen: - CAPod – Eine Begleit-App für AirPods unter Android. ([Play Store](https://play.google.com/store/apps/details?id=eu.darken.capod) | [Quellcode](https://github.com/d4rken-org/capod)). Verwende diese, wenn du Android Version 16 QPR3 oder niedriger nutzt und kein Root hast. - MagicPods für Steam Deck ([Website](https://magicpods.app/steamdeck/)) - MagicPods – wenn du nach „LibrePods für Windows“ suchst ([MS Store](https://apps.microsoft.com/store/detail/9P6SKKFKSHKM) [Installer](https://magicpods.app/installer/MagicPods.appinstaller) | [Website](https://magicpods.app/)) # Star-Verlauf <a href="https://www.star-history.com/?repos=librepods-org%2Flibrepods&type=date&legend=top-left"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=librepods-org/librepods&type=date&theme=dark&legend=top-left&sealed_token=CS9QF2Wcx-_EN6M7lBhwvTa2WBd5eB8FbQa5FWt3SV14v1OcQdy2aCGsXxHoytVaoylP_pTxj1h2U-odoXDV_EwTqMxM-MQwG_WpvV_1g_yH-Jh3ux2BuWCmS98LxLqfox2ibLOlFDHu_-geTLFsTmqTc1SjX6-NYxVHXF5DaqnxFOAyjLPL5_WtXVew" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=librepods-org/librepods&type=date&legend=top-left&sealed_token=CS9QF2Wcx-_EN6M7lBhwvTa2WBd5eB8FbQa5FWt3SV14v1OcQdy2aCGsXxHoytVaoylP_pTxj1h2U-odoXDV_EwTqMxM-MQwG_WpvV_1g_yH-Jh3ux2BuWCmS98LxLqfox2ibLOlFDHu_-geTLFsTmqTc1SjX6-NYxVHXF5DaqnxFOAyjLPL5_WtXVew" /> <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=librepods-org/librepods&type=date&legend=top-left&sealed_token=CS9QF2Wcx-_EN6M7lBhwvTa2WBd5eB8FbQa5FWt3SV14v1OcQdy2aCGsXxHoytVaoylP_pTxj1h2U-odoXDV_EwTqMxM-MQwG_WpvV_1g_yH-Jh3ux2BuWCmS98LxLqfox2ibLOlFDHu_-geTLFsTmqTc1SjX6-NYxVHXF5DaqnxFOAyjLPL5_WtXVew" /> </picture> </a> # Lizenz LibrePods – AirPods befreit aus Apples Ökosystem Copyright (C) 2025 LibrePods contributors Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version. Dieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, aber OHNE JEDE GEWÄHRLEISTUNG, sogar ohne die implizite Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. Sie sollten zusammen mit diesem Programm eine Kopie der GNU General Public License erhalten haben. Falls nicht, siehe <https://www.gnu.org/licenses/>. # Markenhinweis Die GPL gewährt keinerlei Rechte zur Verwendung des Namens, Logos oder Brandings von LibrePods. Der Name und das Logo von LibrePods dürfen nicht für Software, Websites, Domains, Produkte, Dienstleistungen oder andere Projekte in einer Weise verwendet werden, die eine Zugehörigkeit zum, eine Billigung durch oder eine Verbindung mit dem offiziellen LibrePods-Projekt nahelegt, es sei denn, es liegt eine vorherige Genehmigung vor. Wenn Sie einen Missbrauch des Namens oder Logos von LibrePods feststellen, melden Sie dies bitte an [[email protected]](mailto:[email protected]). Die in der Android-App verwendete Schriftart SF Pro ist Eigentum von Apple Inc. Sie wird in zukünftigen Versionen der App entfernt und in Kürze durch eine offene Alternative ersetzt. AirPods, AirPods Pro, AirPods Max und das AirPods-Logo sind Marken von Apple Inc. Das LibrePods-Projekt steht in keinerlei Verbindung zu Apple Inc. und wird von Apple Inc. in keiner Weise unterstützt.