Mobile Development 15 min read

DiPlay: Open-Source CarPlay Receiver for BYD Infotainment, No Dongle Required

DiPlay is an open-source Android APK that enables CarPlay on BYD DiLink infotainment systems by implementing the CarPlay protocol via xcertplay and reusing a Carlinkit accessory identity, offering HUD navigation, battery data, and video playback without hardware dongles, though it carries risks of iOS updates breaking compatibility.

Geek Labs
Geek Labs
Geek Labs
DiPlay: Open-Source CarPlay Receiver for BYD Infotainment, No Dongle Required

DiPlay is an open-source Android application that turns BYD's DiLink infotainment system into a CarPlay receiver. Installed directly on the vehicle's head unit — not on the iPhone — it allows iPhone users to connect via USB or Wi-Fi and run CarPlay navigation, music, calls, and Siri on the car's built-in display. In effect, it replicates the function of commercial hardware dongles like Carlinkit, but as free, open-source software that consumes no USB port and requires no extra cable.

What DiPlay Is

The project targets a specific audience: BYD DiLink infotainment owners with iPhones. The README states it focuses solely on BYD; other brands may work by chance but are not officially supported. DiPlay requires no iPhone jailbreak, no Mac, no account registration, and no backend authentication server. It reached 2,700+ GitHub stars within nine days of creation (as of 2026-10-03), reflecting pent-up demand from BYD iPhone owners.

Why CarPlay on Infotainment Is Hard

CarPlay is not screen mirroring. The infotainment must become a certified "CarPlay receiver" via Apple's MFi program, using proprietary protocols. The iPhone authenticates the accessory, not merely a display. BYD's DiLink runs Android but uses its own app ecosystem; CarPlay was never in the official roadmap. Historically, owners had only two options: settle for Bluetooth audio or buy an MFi-certified hardware dongle that plugs into USB.

How DiPlay Works: Protocol and Identity

Protocol Layer: xcertplay

DiPlay's protocol stack is built on xcertplay, a GPL-3.0 open-source CarPlay receiver implementation. This layer handles communication with the iPhone: wired connections use USB and Apple's USBMUX channel; wireless connections use Wi-Fi Direct or the infotainment's built-in hotspot. CarPlay data streams ride on AirPlay ports, and pairing authentication occurs entirely locally with no server dependency.

Identity Layer: Borrowed from Carlinkit Firmware

The critical challenge is the accessory identity. Software cannot obtain MFi certification on its own. DiPlay bundles an "experimental accessory identity" extracted from publicly available Carlinkit firmware. Carlinkit is a popular third-party CarPlay dongle vendor whose firmware is flashable and contains a certified accessory identity. DiPlay reuses this identity so the iPhone recognizes the infotainment as a legitimate accessory.

The author acknowledges the gray area: this is not an Apple-certified product; the identity was not newly provisioned for DiPlay; the bundled private key can be extracted; and future iOS updates may invalidate it with no guarantee of continued operation.

Wireless Engineering Details

Version 0.2.10's changelog reveals the engineering depth required for reliability across BYD firmware variants (DiLink 5.0 to 5.1):

Automatic selection of an available port when the default AirPlay port 7000 is occupied by factory services, and broadcasting that port to the iPhone.

Compatibility with unknown Wi-Fi Direct security types reported by the infotainment.

Bounded retry logic for busy channels, with automatic fallback from 5 GHz to 2.4 GHz.

Special handling of USBMUX framing edge cases for wired connections.

These are not merely "can it connect" issues but "will it connect on a different vehicle" issues. Compatibility data comes from community testers across different vehicle models.

UI Origins and Codebase Structure

DiPlay's main interface and settings pages are adapted from DiAuto, an AGPL-3.0 BYD infotainment projection app. Both apps can be installed simultaneously but only one projection runs at a time. The repository started from a clean public code snapshot; local research, tester reports, and signing keys are not stored in the repo.

Advantages Over Hardware Dongles

Because DiPlay runs inside the infotainment OS, it accesses vehicle data buses that a USB dongle cannot reach. Community-driven features include:

HUD navigation: On verified firmware, CarPlay navigation arrows, remaining distance, and street names project onto the BYD head-up display — a capability even many OEM CarPlay implementations lack.

Battery instrument cluster: Reads vehicle battery data via CAN/CANFD protocols (requires enabling network ADB); version 0.2.10 added automatic protocol detection.

Parked video playback: Plays video with progress bar and 10-second skip when in Park; FairPlay-protected content is explicitly unsupported.

Wheel speed data: Verified on BYD Tang DiLink 5.0 with iPhone 15 Pro.

Call echo cancellation and noise suppression.

One-tap infotainment hotspot to trigger CarPlay.

Song metadata and album art on the infotainment desktop media card (0.2.10).

All these features require access to vehicle data buses (CAN), which a USB dongle physically cannot reach. The open-source software, running inside the infotainment, understands the vehicle better than commercial hardware.

Installation and Daily Use

Difficulty: moderate. Prerequisite: infotainment allows APK installation (BYD defaults to allowed). Wired mode requires Android 9+; wireless Wi-Fi Direct requires Android 10+.

Wireless setup: park the vehicle, install APK, grant Bluetooth, Wi-Fi, and microphone permissions; enable infotainment hotspot (prefer 5 GHz), save SSID/password in settings; on iPhone keep Wi-Fi and Bluetooth on, pair with infotainment, tap "Connect phone", confirm iPhone prompt.

Wired: plug USB data cable, select "Connect with USB", trust the prompt.

Daily use needs no ADB. Advanced features (battery, instrument cluster, parked video) require enabling network ADB separately. Official recommendation: start at 30 fps with HEVC off, lower resolution if stutter occurs.

UI supports six languages including Simplified Chinese. Diagnostic logs stay local unless user opts to upload. Updates delivered via project-linked Telegram channel; overlay install preserves settings; public signing key remains constant; test builds use separate package names to avoid overwriting stable version.

Costs and Risks

Public preview, not stable: Known issues include intermittent audio dropouts (deferred), occasional UI lag on some infotainments, and icon size adjustments not taking effect on certain models.

iOS version risk: The accessory identity is not Apple-issued to DiPlay. Apple has no obligation to accept it indefinitely. A single iOS update could revoke it, disconnecting all vehicles simultaneously. The author states this uncertainty on the project homepage.

Legal gray area of the identity: The legal status of reusing an identity extracted from Carlinkit firmware is unresolved. GPL-3.0 licensing and full disclosure are positives but do not eliminate the gray area.

Scope limited to BYD: Other brands will likely not work; no adaptation planned.

Choosing Among Three Paths

BYD + iPhone, want free and dongle-free: Try DiPlay, set expectations at "public preview", prepare for possible breakage after iOS updates.

Prioritize stability, accept a few hundred yuan cost: Carlinkit-type hardware dongles are more mature with vendor-maintained firmware.

Don't need screen projection: Bluetooth remains the simplest answer.

The ideal users are BYD iPhone owners willing to be "public preview participants" and developers studying the CarPlay protocol — a complete, working GPL receiver implementation on real infotainment hardware is a rare reference.

DiPlay's significance is not just "free CarPlay" but the path it demonstrates: when certification walls block demand, open-source communities can borrow implementation from open protocol stacks, borrow identity from existing hardware firmware, borrow test fleets from user communities, and lower a hardware category's entry barrier to zero. After nine days and 2,700 stars, the question is no longer whether BYD owners can get CarPlay, but when and how Apple will respond. Before the sword falls, ship the experience — that's open source.

GitHub: github.com/shihabal3amri/DiPlay
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Androidopen-sourceBYDCarlinkitCarPlayDiLinkinfotainmentxcertplay
Geek Labs
Written by

Geek Labs

Daily shares of interesting GitHub open-source projects. AI tools, automation gems, technical tutorials, open-source inspiration.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.