How lanye-z/mib2q-carplay-rgi-cn works
This repository modifies Audi MIB2Q firmware behavior to improve CarPlay route guidance in the virtual cockpit. The main workflow carries CarPlay/iAP2 maneuver data through the native hook and Java route-guidance logic, maps it to BAP and renderer commands, then displays the maneuver in the cluster. Separate branches handle Amap V38 metadata and state tracking, native-navigation handoff, and cover art. The README documents these capabilities; sampled source confirms renderer TCP command handling and route-guidance gating, but several subsystem links are based on documentation rather than inspected implementations.
Main entry points: GatedCombiService.java BAP route gate · RouteGuidance.java Route guidance · BAPBridge.java BAP bridge · rgd_hook.c Guidance hook
Components 19
Data Capture
- Native hook
c_hook/main.c - Guidance hook
c_hook/routeguidance/rgd_hook.c - Cover art hook
c_hook/coverart/coverart_hook.c - Native metadata
c_hook/routeguidance/rgd_tlv.c
Guidance Logic
- Java hook
java_patch/com/luka/carplay/CarPlayHook.java - Route guidance
java_patch/com/luka/carplay/routeguidance/RouteGuidance.java - Amap state machine
java_patch/com/luka/carplay/routeguidance/AmapRouteGuidance.java - Amap V38 compatibility
java_patch/com/luka/carplay/routeguidance/AmapV38Compat.java - Maneuver mapping
java_patch/com/luka/carplay/routeguidance/ManeuverMapper.java
Cluster Display
- BAP bridge
java_patch/com/luka/carplay/routeguidance/BAPBridge.java - Renderer server
c_render/server.c - Maneuver renderer
c_render/main.c
Vehicle Integration
- BAP route gate
java_patch/com/luka/carplay/routeguidance/GatedCombiService.java - Cluster service
java_patch/de/audi/tghu/navi/app/cluster/ClusterService.java - Device lifecycle
java_patch/com/luka/carplay/DeviceStateHandler.java - Touchpad control
java_patch/com/luka/carplay/cursor/CursorController.java
Other components
- CarPlay navigation
- iAP2 stream
- Stock navigation
Connections 19
- CarPlay navigation → iAP2 stream: sends guidance
- iAP2 stream → Guidance hook: supplies packets
- Native hook → Guidance hook: registers hook
- Guidance hook → Native metadata: emits metadata
- Native metadata → Amap V38 compatibility: provides state
- Java hook → Route guidance: dispatches guidance
- Route guidance → Amap state machine: selects Amap logic
- Amap state machine → Amap V38 compatibility: uses compatibility
- Route guidance → Maneuver mapping: maps maneuvers
- Maneuver mapping → BAP bridge: provides display data
- BAP bridge → Renderer server: sends TCP commands
- Renderer server → Maneuver renderer: delivers commands
- Maneuver renderer → Cluster service: renders guidance
- BAP bridge → BAP route gate: updates route guidance
- BAP route gate → Cluster service: delegates when ungated
- Device lifecycle → Java hook: reports device state
- Device lifecycle → BAP route gate: controls handoff
- BAP route gate → Stock navigation: releases native guidance
- Cover art hook → CarPlay navigation: handles artwork