Back to All Projects
Open Source Verified Architecture
DiPlay
DiPlay turns any compatible Android head unit into a standalone CarPlay receiver, letting you mirror your iPhone’s interface without an Apple‑built head unit. It supports both wired and wireless connections and is currently available as a public preview for developers to test.
11,469 Stars 1,459 Forks
Core Technologies & Frameworks
Kotlin
Technical Architecture & Specifications
### Overview: What is DiPlay?
If you run an Android head unit in a BYD vehicle, getting CarPlay without relying on external USB dongles, cloud authentication servers, or Mac bridges has historically required extra hardware. DiPlay (`com.shihab.diplay`) is an open-source, independent Android application designed to turn compatible head units into standalone CarPlay receivers. It provides both wired USB and wireless CarPlay functionality directly through the vehicle's native display.
---
### Architecture & Under the Hood
DiPlay bypasses the standard hardware dongle requirement by embedding a reverse-engineered identity. Here is how the internal stack works based on the project's technical details:
* Identity & Authentication: Instead of relying on a newly provisioned Apple MFi identity, the APK embeds an experimental accessory identity and an extractable private key recovered from public Carlinkit firmware. This allows local authentication on the head unit without needing an external verification server or jailbroken iOS device.
* Networking Stack: For wireless operation, DiPlay supports standard local networks, the car's built-in Wi-Fi hotspot, and Wi-Fi Direct. On Android 10 and above, the app directly verifies the negotiated group frequency. On legacy Android 7.0–9 builds, it falls back to a firmware-dependent path using generated group credentials with unverified requested frequencies.
* Vehicle Integration & HUD: On verified BYD firmware, DiPlay interfaces directly with the car’s heads-up display (HUD), pushing turn-by-turn navigation arrows, distance counters, and street names.
* Audio & Input Pipelines: To deal with varied head unit hardware, DiPlay features low-level audio underrun recovery and custom audio buffering. For hardware setups with broken native voice input (such as Android 9 BOS Mini units tested during development), it implements a software Opus microphone fallback.
---
### Setup & Requirements
#### 1. System Requirements
* Target Device: Vehicle Android head unit running Android 7.0+ (API level 24 or higher).
* Installation Access: The head unit must allow manual APK side-loading.
* Coexistence: DiPlay can be installed alongside DiAuto, but you can only run one projection app at a time.
#### 2. Basic Setup
1. Download the latest APK (v0.2.21 public preview) and install `com.shihab.diplay` directly on your car's head unit (do not install this on your iPhone).
2. Launch the app and select your connectivity preference:
* Wired: Connect your iPhone via USB.
* Wireless: Connect via the car's existing Wi-Fi hotspot, a shared local network, or Wi-Fi Direct.
#### 3. ADB Permissions (Optional Features)
Core CarPlay functions out of the box without elevated permissions. However, if you want extended vehicle telemetry—including dashboard metrics, battery status, wheel-speed data, and parked-video controls—you must enable ADB on the head unit to grant the necessary background access.
#### 4. Display Tuning
You can adjust the rendering resolution, frame rate, and text/icon scaling inside the application settings. Note that modifying any display parameters will automatically trigger a CarPlay reconnection cycle to apply the new screen buffer size.
---
### Developer Takeaway
DiPlay is a clever piece of reverse engineering for BYD owners. Relying on an extractable Carlinkit key means its long-term resistance to future iOS updates remains a variable, but as a local preview, its native HUD rendering, ADB telemetry integration, and low-level Wi-Fi handling make it a strong open-source alternative to third-party hardware dongles.
Reviewed by DevTechPulse Editorial Board
All listed blueprints, repositories, and case studies are verified against public documentation and LTS container environments. For inquiries or updates, view our Editorial Policy.