Grįžti į projektus

CarPlay Bridge

Belaidis CarPlay automobilyje, kuris moka tik laidą – Raspberry Pi tarp telefono ir automobilio ekrano.

Linux Python C Raspberry Pi Ghidra USB
Vaidmuo
Asmeninis tyrimo projektas
Laikotarpis
2025 – dabar
Kontekstas
Nuosavas automobilis
Technologijos
Linux, Python, C

Iššūkis

Gamyklinis automobilio ekranas palaiko tik laidinį CarPlay. Kiekvieną kartą sėdus reikia susirasti laidą, jį įkišti ir palaukti – net ir dešimties minučių kelionei.

Parduodami adapteriai šią problemą sprendžia, bet yra uždaros dėžutės: nedokumentuota programinė įranga, kai kuriuose net reklama, ir jokio aiškaus atsakymo, kur keliauja telefono duomenys. Įrenginiui, kuris nuolat lieka automobilyje, to man buvo per mažai.

Sprendimas

Vietoje gatavos dėžutės – įrenginys, kurio elgesį visiškai suprantu: Raspberry Pi, kuris vienoje pusėje imituoja iPhone, o kitoje – belaidžiu ryšiu bendrauja su tikru telefonu.

USB įrenginys vietoje laido

Pi prisijungia prie ekrano per Linux branduolio USB gadget režimą ir elgiasi kaip įkištas iPhone. Kitoje pusėje jis su tikru telefonu bendrauja per Wi-Fi ir Bluetooth.

Protokolo supratimas

USB srauto įrašymas, palyginimas su atviromis realizacijomis ir programinės įrangos analizė su Ghidra, kad būtų tiksliai atkurtas ryšio užmezgimas, garso kanalai ir vaizdo srautas.

Patikimas užvedus variklį

Automatinis paleidimas per systemd, nutrūkusių ryšių stebėjimas ir pakartotinis prisijungimas be jokių veiksmų: pasukai raktelį – žemėlapis jau ekrane.

Svarbiausi faktai

0

laidų įlipus

2

ryšiai: Bluetooth ir Wi-Fi

100 %

savas, atviras kodas