mrkeyoor.com_
Fri 16 Oct 18:51 UTC
Self-Hostedevaluationupdated 15 Oct 2026

DiPlay review

DiPlay is an independent CarPlay receiver installed on compatible BYD Android head units, letting an iPhone project through USB or supported wireless connections. It can add CarPlay without a dongle, but the public preview uses an experimental accessory identity and has firmware-specific compatibility limits.

trackingstars / 7d
Verdict

Our DiPlay run installed in 23 seconds, but both build and test commands failed after 11 seconds in the Gradle HTTPS fetch path. Treat it as a public preview for a compatible BYD head unit whose owner can verify the exact firmware and iPhone combination. The extractable experimental accessory identity and unresolved future iOS acceptance rule it out as an assured CarPlay upgrade.

We ran it

Lab card: what happened when we ran DiPlayScreenshot of DiPlay (shihabal3amri.github.io/DiPlay)
Install✓ · 23s
Build✗ · 11s
Tests✗ · 11sran, no count parsed
Repo1381 files~166,217 lines of source · 14.9 MB · 3 CI workflows

Answers from our run

Does DiPlay build from source?

Dependencies installed in 23 seconds, and the build failed. We cloned commit 969f871 into a clean Debian container with 3 CPUs and no project-specific setup.

Do DiPlay's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use DiPlay?

Owners requiring Apple certification or assured compatibility with future iOS updates: the README explicitly disclaims both and describes an extractable experimental identity.

What are the alternatives to DiPlay?

xcertplay, DiAuto. Our DiPlay run installed in 23 seconds, but both build and test commands failed after 11 seconds in the Gradle HTTPS fetch path.

Setup2/5Source build failed, with toolchain and runtime assets to configure
Docs4/5Clear module, identity, and firmware limits, with some dated guidance
Community4/510,714 stars, October 14 push, and current hardware reports
Maturity2/5Public preview with unresolved identity and vehicle acceptance limits

Who it’s for

BYD owners whose Android head units allow APK installation and who can evaluate a public preview.
Developers prepared to use the documented Android toolchain and understand external identity assets.
Owners willing to compare diagnostics against their exact head unit, firmware, and iPhone.

Who it’s NOT for

Owners requiring Apple certification or assured compatibility with future iOS updates: the README explicitly disclaims both and describes an extractable experimental identity.
Buyers choosing a car or head unit on a promise of universal support: only BYD is supported, and the README leaves older Android vehicle compatibility unconfirmed.
Source builders expecting a default APK to provide standalone CarPlay: ordinary builds omit the required runtime identity assets.
Drivers needing proven dashboard and audio behavior across firmware: the compatibility guide documents device-specific limits and unfinished vehicle validation.

Setup reality

Our run at commit 969f871 installed in 23 seconds. The build failed with exit code 1 after 11 seconds, and the test step failed with exit code 1 after 11 seconds. Both log tails end in Java HTTPS handling and Gradle wrapper Install.forceFetch, without the underlying cause or a completed-test count.

The build guide requires JDK 25, Android SDK Platform 37, Build-Tools 36.0.0, and its specified NDK. Select mobile for the main app. Standalone source builds need external runtime identity assets, while release builds also need Android signing credentials. Ordinary use of the public APK requires no account or authentication server.

Our container used lab-jvm:21, differing from the documented JDK, but the log does not prove that caused the fetch failure. The car must allow APK installation, and connection support depends on its firmware. Core projection needs no ADB; optional vehicle features do.

DiPlay adds CarPlay to a compatible BYD Android screen

Install DiPlay on the car's head unit, then connect an iPhone over USB or a supported wireless path. The app is an independent CarPlay receiver aimed at BYD vehicles whose Android systems permit APK installation. Its README says ordinary use needs no account or authentication server, and core projection does not require ADB. That makes it interesting for an existing head unit, provided you treat the exact car firmware as part of the compatibility question.

Our checkout was 14.9 MB, containing 1,381 files and about 166,217 source lines. This is a substantial Android application with several modules, rather than a universal compatibility patch. The README limits support to BYD even though other brands may sometimes work. Optional dashboard, battery, wheel-speed, and parked-video features have additional ADB requirements. Decide whether basic projection is sufficient before changing vehicle integrations that you do not need.

What happened when we ran it

Our run installed commit 969f871 in 23 seconds, then the build failed after 11 seconds and the test step failed after 11 seconds. Both returned exit code 1. We used an unprivileged container with 3 CPUs, 10 GB of RAM, and the lab-jvm:21 image on October 15, 2026, without secrets. These results establish that our source path did not reach a successful build or test result in that environment.

Both supplied log tails end in Java HTTPS connection handling and Gradle wrapper Install.forceFetch. They show the wrapper trying to fetch material over HTTPS, without the underlying exception text that explains the failure. We cannot identify a blocked host, a certificate problem, or a timeout from that excerpt. The 11-second build failure is therefore a fetch-path finding, not evidence that an Android source file failed compilation. The test tail likewise gives no completed-test count or failed assertion.

The source guide requires a different toolchain from our container

The build instructions call for JDK 25, Android SDK Platform 37, Build-Tools 36.0.0, and a specified NDK. Our supplied image was JVM 21. That mismatch belongs in any attempt to reproduce the work, although the HTTPS tail does not establish it as the cause of the failure. Configure the documented toolchain and Android SDK paths before treating this repository as ready for local development.

The scan found 3 CI workflow files, no Dockerfile, and no tests directory. That last signal is a directory scan, not proof the project has no test code: the build guide names Gradle unit-test tasks in its Android modules. For the main app, select mobile; maphost is a sample map application. The distinction saves a practical mistake, installing the wrong APK and wondering why the expected CarPlay receiver is absent.

The public APK carries identity assets that source builds omit

The README identifies v0.2.20 as a public preview and explicitly says DiPlay is not Apple-certified. Its public APK bundles an experimental accessory identity recovered from public Carlinkit firmware. The project warns that the private key can be extracted and that acceptance after future iOS updates remains unresolved. This is a concrete dependency on how the iPhone accepts the accessory, so current connection reports cannot promise lasting compatibility.

Our successful 23-second install did not provide or validate those runtime assets. Ordinary source and CI builds omit them. The build guide says standalone CarPlay needs an external identity directory, selected explicitly for the standalone build, while release packaging also needs Android signing credentials. Someone wanting to compile the public source should understand that a compiled APK and an iPhone-accepted receiver are separate milestones. The project documents that boundary directly, and it materially changes the setup decision.

Android version support leaves vehicle-specific work

The APK supports Android 7.1 or newer, but the README says vehicle support on Android 7.1 through 8.1 remains unconfirmed. Wireless options include Wi-Fi Direct, the car hotspot, and an existing shared network. The compatibility guide describes firmware-dependent Bluetooth and Wi-Fi behavior that can block particular paths. A charging-only USB port is another hard limit. Check your actual head unit's capabilities before choosing a connection mode from the settings menu.

Issue 817 reports DiPlay restarting when cameras activate on a BYD Song Plus with DiLink 4. The report names v0.2.19, so it cannot establish the same behavior in v0.2.20. It does identify a useful parked compatibility check for that hardware. Our 10 GB JVM container cannot reproduce camera switching, microphone routing, or dashboard-map behavior. Ask for evidence matching the head unit and release rather than treating another car's successful connection as yours.

October activity shows fixes alongside unresolved hardware reports

GitHub showed a last push on October 14, 2026, 10,714 stars, and 181 open issues and PRs combined. Its latest stable-release endpoint returned no result, while the release list identified v0.2.20 as a prerelease published October 14. The release text addresses audio buffering, wired reconnection, and dashboard behavior, with several items still awaiting in-car acceptance. Current issue activity supports calling development active. It also explains why the public-preview label matters.

Xcertplay, the upstream project, is worth comparing if you specifically need its onboard MFi or CH341 hardware paths and broader Android receiver focus. DiAuto is the adjacent choice for a BYD owner with an Android phone who needs Android Auto instead of iPhone CarPlay. Neither comparison resolves DiPlay's source-build failure. I would try the preview only on a compatible head unit whose owner can evaluate the exact release and preserve a working fallback. Our 11-second failures leave source reproducibility unfinished, and the bundled identity leaves future iPhone acceptance unsettled.

Alternatives

ProjectWhat it isPick it when
xcertplayAn Android CarPlay receiver supporting onboard MFi and CH341 authentication paths.pick this instead when you want the upstream receiver and its explicit hardware-authentication routes.
DiAutoA BYD Android Auto receiver for compatible Android phones.pick this instead when your phone is Android and you need Android Auto rather than iPhone CarPlay.

What people are saying

  1. [velocity-scout] shihabal3amri/DiPlay

Sources

  1. DiPlay README and identity disclosure
  2. Source toolchain and runtime assets
  3. Compatibility and firmware limits
  4. DiPlay v0.2.20 prerelease
  5. Camera switching report on v0.2.19
  6. Repository maintenance activity

More self-hosted reviews

Qwen3.8-Flash-Next-Single-DGX-Spark-TensorFold · invisible_dots · LibreTV · unifi-toolkit · ps5-payload-manager · AIHOT · the whole board →