ShizuStore

DiAuto

shihabal3amri

0.3.11 · GitHub

Download APK
Vendor-specific Android 4.1+ 1 day ago AGPL-3.0
13 ShizuStore
4.9k GitHub
114 Stars
11 MB Size

More about this app

Wireless and USB Android Auto receiver for BYD DiLink head units; runs entirely on the car display and uses Shizuku or root for privileged setup. No phone companion app or dongle.

DiAuto

Android Auto on your BYD display. Wireless or USB.

BYD support scope: These projects focus on BYD cars. They may work on other brands, but other brands are unsupported and there are no plans to add support or fix brand-specific incompatibilities.

Download & installation · Latest release · Telegram updates

English · العربية · Русский · Español · 简体中文

Install DiAuto on the car, then connect a compatible Android phone using its built-in Android Auto support. No additional phone companion app, dongle, external hardware, root or firmware modification is required. An Android phone is still required; this is not Apple CarPlay.

Android Auto with the current music card and a freely panned map, without a destination

What’s new in 0.3.11

  • Connects when you turn on the car hotspot after opening DiAuto, without restarting the app.
  • Waits for the hotspot network to be ready instead of using the car’s wired or modem connection details.
  • Refreshes hotspot connection details after a failed phone join, and waits for a manually selected hotspot interface.

Features

  • Native wireless Android Auto, with USB data-cable support.
  • BYD windshield navigation arrows, distance and street names on verified firmware, without ADB.
  • Improved recovery when the Wi-Fi Direct interface appears late; explicit Static BSSID remains supported.
  • Automatic Wi-Fi Direct address recovery on supported DiLink firmware, without ADB setup.
  • Car-friendly home screen, simplified settings and redesigned option dialogs.
  • Music-through-car-Bluetooth mode to avoid competing media audio focus.
  • Automatic preference for the car's existing non-DFS 5 GHz Wi-Fi channel when supported, with normal band selection as a fallback.
  • Bounded SurfaceView frame pacing, full-screen 1080p and corrected touch alignment.

Compatibility and setup

Tested on BYD DiLink 5.1 with Android 13, using wireless and physical USB connections. Other models and firmware versions are not yet verified. A compatible Android phone with functioning Android Auto is required. The app and website support English, Simplified Chinese, Arabic, Russian and Spanish. Other existing community translations remain available.

See BYD HUD compatibility and cleanup limits.

See the installation guide, including permissions, Static BSSID and upgrading from private previews. APK installation must be allowed by your head unit. Set up while parked.

The tested panel exposes approximately 58 Hz. Recent wireless map-drag samples reached 47–58 displayed FPS after Wi-Fi channel alignment, with remaining variation and occasional stalls. Constant 60 FPS is not promised. See validation notes.

Build

Requires JDK 17, Android SDK 36, NDK 29.0.14206865, and CMake 3.22.1. Set ANDROID_HOME or an untracked local.properties with sdk.dir=....

./gradlew :app:testGithubDebugUnitTest :app:assembleGithubDebug :app:assembleGithubRelease

APKs are under app/build/outputs/apk/github/. Release builds use R8/resource shrinking. They are unsigned unless an untracked key.properties provides:

storeFile=/absolute/path/to/your-release-keystore.p12
storePassword=YOUR_PRIVATE_PASSWORD
keyAlias=YOUR_KEY_ALIAS
keyPassword=YOUR_PRIVATE_PASSWORD

Never commit signing keys or passwords. Your self-built APK will not upgrade a public release unless signed with the same key. The public release signing key is held privately by the maintainer. Application ID: com.andrerinas.headunitrevived. Only the github flavor is covered by this fork's CI.

Website

Five static language editions live under site/. Edit site/content.json, then run python3 scripts/build_site.py. GitHub Actions deploys only site/ to GitHub Pages.

Credits and license

DiAuto is an independent fork of Open Headunit, based on work by its contributors and Michael Reid. The local DiLink fork began from upstream commit 562c8dc; the first public snapshot includes the DiAuto modifications developed from that fork.

See LICENSE (AGPL-3.0), original copyright notices, in-app credits and third-party notices. This repository contains the source for the published app. Android Auto is a Google trademark. This project is not affiliated with or endorsed by Google or BYD.

Close

How Shizuku is used

Can enable car steering wheel and hardware keys on FYT head units via the `setprop sys.carlink.type` shell command through Shizuku.

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Shizuku is used for one narrow setup task on compatible car displays, taking and releasing key focus so hardware buttons reach the app.

  • Use car hardware keys: on supported FYT head units the app takes key focus when it connects to the car system service and releases it when it disconnects, so steering wheel and other hardware keys can control Android Auto, applied with the setprop sys.carlink.type shell command through Shizuku.

Android APIs or commands used

  • setprop sys.carlink.type

Notable details

Only needed on FYT based head units; on other devices this Shizuku path does nothing. The privileged call only ever sets fixed values for one system property and does not run user typed commands.

Close

Changelog

What's new for version 0.3.11

DiAuto 0.3.11 — Hotspot startup recovery

DiAuto now recovers when you open it before enabling the car’s built-in hotspot, without needing to remove the app from recent apps and reopen it.

  • Waits for the actual hotspot interface instead of using wired or modem connection details during startup.
  • Refreshes hotspot connection details after the phone reports a failed Wi-Fi join.
  • Waits for a manually selected hotspot interface to become ready.
  • Prevents cancelled connection-detail lookups from overwriting newer results.

The owner confirmed that the test build worked before approving this release. The existing English, Simplified Chinese, Arabic, Russian and Spanish support is retained.

Installation

Install DiAuto-v0.3.11.apk on the car, over the previous public DiAuto release to retain settings. The production package and signing key are unchanged. HUD Test builds use a separate app package.

Download and installation guide

Validation

650 unit tests and core translation checks passed. Debug and optimized release builds passed; the production package, version, non-debuggable status and signing continuity were verified. The owner’s car test used the HUD test build; the optimized production APK has not had a separate physical-car test.

This project supports BYD cars. Other head units and firmware are not verified. The source archive and SHA-256 checksums are attached.

Close

Permissions

31 permissions requested

  • android.permission.ACCESS_WIFI_STATE
  • android.permission.CHANGE_WIFI_STATE
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.NEARBY_WIFI_DEVICES
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.WAKE_LOCK
  • android.permission.CHANGE_NETWORK_STATE
  • android.permission.INTERNET
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.ACCESS_SUPERUSER
  • android.permission.READ_PHONE_STATE
  • android.permission.BROADCAST_STICKY
  • android.permission.BLUETOOTH
  • android.permission.BLUETOOTH_ADMIN
  • android.permission.BLUETOOTH_CONNECT
  • android.permission.BLUETOOTH_SCAN
  • android.permission.BLUETOOTH_ADVERTISE
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.MODIFY_AUDIO_SETTINGS
  • android.permission.RECORD_AUDIO
  • android.permission.WRITE_SETTINGS
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.POST_NOTIFICATIONS
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE
  • android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK
  • android.permission.USE_FULL_SCREEN_INTENT
  • com.andrerinas.headunitrevived.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
  • android.permission.READ_EXTERNAL_STORAGE
Close