How luka-dev/mib2q-carplay-rgi works
This repository patches Audi MHI2Q CarPlay to add Virtual Cockpit and HUD route guidance, cluster cover art, touchpad-to-DPAD input, and parking-popup coexistence. The primary workflow carries iPhone route guidance through the native hook and Java integration to BAP cluster updates and a separate maneuver renderer, while preserving the stock map. The graph also shows display composition and the independent media, input, and parking features. Some source excerpts are partial; uncertain internal wiring is omitted.
Main entry points: RouteGuidance.java Route guidance · rgd_hook.c Route guidance hook · CarplayBus.java Java bus · BAPBridge.java BAP bridge
Components 22
Route guidance
- Route guidance hook
hook/routeguidance/rgd_hook.c - Route guidance
java_patch/com/luka/carplay/rgd/RouteGuidance.java - BAP bridge
java_patch/com/luka/carplay/rgd/BAPBridge.java - Cluster navigation
java_patch/de/audi/tghu/navi/app/cluster/ClusterService.java - Native update gate
java_patch/com/luka/carplay/rgd/GatedCombiService.java - Renderer transport
java_patch/com/luka/carplay/rgd/RendererServer.java - Renderer TCP server
maneuver_render/server.c - Maneuver engine
maneuver_render/main.c - Scene rendering
maneuver_render/scene/scene.cpp
Cluster display
- Cluster map controller
java_patch/de/esolutions/hmi/widgets/audi/evo/high/widgets/CombiMapController.java - Cluster layer policy
java_patch/com/luka/carplay/cluster/ClusterLayerController.java - Display contexts
java_patch/de/audi/tghu/fwhmi/DisplayManagerMIB2High.java
CarPlay integration
- Hook framework
hook/main.c - CarPlay app
java_patch/com/luka/carplay/core/CarPlayApp.java - Java bus
java_patch/com/luka/carplay/bus/CarplayBus.java - CarPlay DSI lifecycle
java_patch/de/audi/app/terminalmode/dsi/carplay/CarplayDSILifecycleController.java
Cluster features
- Cover-art hook
hook/coverart/coverart_hook.c - Cover-art handling
java_patch/com/luka/carplay/coverart/CoverArt.java - Touchpad controller
java_patch/com/luka/carplay/input/TouchpadController.java - Parking controller
java_patch/de/audi/app/earlyfunc/evo/parking/ParkingSystemControllerComponentEvo.java - PDC small-stage guard
java_patch/com/luka/carplay/pdc/PdcSmallStageGuard.java
Other components
- iPhone navigation
Connections 18
- iPhone navigation → Route guidance hook: sends guidance
- Hook framework → Route guidance hook: registers module
- Route guidance hook → Java bus: forwards updates
- CarPlay app → Java bus: initializes
- Java bus → Route guidance: delivers messages
- Route guidance → BAP bridge: maps guidance
- Route guidance → Renderer transport: sends maneuvers
- BAP bridge → Cluster navigation: updates cluster
- Cluster navigation → Native update gate: routes native updates
- Renderer transport → Renderer TCP server: sends commands
- Renderer TCP server → Maneuver engine: dispatches commands
- Maneuver engine → Scene rendering: renders scene
- Cluster map controller → Cluster layer policy: updates geometry
- Cluster layer policy → Display contexts: reapplies layout
- Cover-art hook → Cover-art handling: provides cover art
- CarPlay DSI lifecycle → Touchpad controller: installs touch sink
- Touchpad controller → CarPlay DSI lifecycle: emits DPAD events
- Parking controller → PDC small-stage guard: updates parking state