CarPlay Bridge
Kabelloses CarPlay in einem Auto, das nur das Kabel kennt – ein Raspberry Pi zwischen Telefon und Headunit.
Die Aufgabe
Die Werks-Headunit unterstützt CarPlay nur über Kabel. Wer einsteigt, sucht erst das Kabel, steckt es ein und wartet – jedes Mal, auch für zehn Minuten Fahrt.
Fertige Nachrüst-Dongles lösen das, sind aber geschlossene Blackboxen: undokumentierte Firmware, auf manchen Modellen Werbeeinblendungen und keine Aussage darüber, wohin die Daten des Telefons eigentlich gehen. Für ein Gerät, das dauerhaft im Fahrzeug steckt, war mir das zu wenig.
Die Lösung
Statt einer fertigen Box ein Gerät, dessen Verhalten ich vollständig kenne: ein Raspberry Pi, der auf der einen Seite ein iPhone simuliert und auf der anderen mit dem echten Telefon funkt.
USB-Gadget statt Kabel
Der Pi meldet sich über den USB-Gadget-Modus des Linux-Kernels an der Headunit an und verhält sich für sie wie ein angestecktes iPhone. Auf der anderen Seite spricht er über WLAN und Bluetooth mit dem echten Telefon.
Protokoll verstehen
Mitschnitt des USB-Verkehrs, Abgleich mit offenen Referenzimplementierungen und Firmware-Analyse in Ghidra, um Handshake, Audiokanäle und Videostream sauber nachzubilden.
Zuverlässig beim Losfahren
Autostart per systemd, ein Watchdog für abgebrochene Verbindungen und ein Reconnect, der ohne Bedienung auskommt: Zündung an, Karte da.
Kernpunkte
Kabel beim Einsteigen
Funkwege: Bluetooth & WLAN
eigener, offener Code