Carlink is a native Kotlin code implementation from the original Flutter-based app. I did this app for me and my use, but sharing so others can use it. Don't expect or demand support but I'll help where i can.
Important
My 2024 Silverado gminfo3.7 Intel AAOS radio is the target Platform and my only hardware for testing.
Warning
Compatability on anything else is not verified and should be treated as untested. Optimized for Video and Audio performance on the gminfo3.7. That is my only focus you can fork this repo and optimize it for your own needs.
Tip
Remember kids: (mostly me)
Projection streams are live UI state, not video playback. Do not buffer, pace, preserve, or “play” frames. Late frames must be dropped. Corruption must trigger reset.
CarPlay / Android Auto h264 is not media. It is a real-time projection of UI state. Correctness is defined by latency, not completeness. Buffers create corruption. Queues create lies.
Video is a best-effort, disposable representation of UI state. Audio is a continuous time signal that must never stall. Video may drop. Audio may buffer. Neither may block the other
Video:
- Represents live UI state
- Late == invalid
- Drop aggressively
- Reset on corruption
- Never wait
Audio:
- Represents continuous time
- Late == fill
- Buffer aggressively
- Never stall
- Never block video
Important
My Primary smartphone is an iPHone and therefor Carplay as gotten the most tuning and testing. A Google Pixel 10 is used for testing basic functionality, cannot do real-world 'Day to Day' testing.
These options can be set for user preferance, but will require an adapter reboot upon tapping 'Apply & Restart'
Controls what is hidden or shown to allow more space for the Carlink app to configure and render the Projection UI Stream.
If enabled allows exporting app logs to a file. Uses the createDocument function so the native android documents app (files) must be installed. THis bypasses the need for the app and third-party file browsers needing permission to access various folders. You can save directly to an attached USB.
Caution
OS restrictions will apply.
Due to how verbose and active this app can be. Espically regarding troubleshooting (the more the information the easier to diagnose). Various log levels are available to help narrow down and focus on the needed areas.
I, or mostly CLAUDE, have tried to collect and organize as much documentation as I can in regards to every aspect of this app, adapter, gminfo etc. To not only help me better understand, but others as well. If updates come across without code changes. It's likely new documentation or corrections.
Important
I cannot speak for all information to be accurate and free of errors, but its the most detailed and centralized source of information you will likely find anywhere else. Unless you have direct access to the source code of the Adapter itself, GM Radios etc... If you do, i know a guy and a site who will glady take it and publish it anonymously.
Most of your questions are likly answered in Carlink Documents, but reach out on the XDA Forum. Issues use github to report it or the forum as well.
- Carplay by Abuharsky - Original Android implementation
- Node-Carplay by Rhysmorgan134 - Protocol reverse engineering
- LIVI by f-io - Linux (Raspberry Pi) and macOS implementation
- PyCarplay by Electric-Monk - Python implementation








