Zurück zu allen Projekten

CarPlay Bridge

Kabelloses CarPlay in einem Auto, das nur das Kabel kennt – ein Raspberry Pi zwischen Telefon und Headunit.

Linux Python C Raspberry Pi Ghidra USB
Rolle
Privates Forschungsprojekt
Zeitraum
2025 – heute
Kontext
Eigenes Fahrzeug
Technik
Linux, Python, C

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

0

Kabel beim Einsteigen

2

Funkwege: Bluetooth & WLAN

100 %

eigener, offener Code