📦andreknieriem / headunit-revived
← 返回首页
Headunit App for displaying Android Auto
⚖️ AGPL-3.0#android#androidauto#headunit🌐 headunit.andrerinas.com📅 创建于 2025-10-28🔄 更新于 2026-10-28
🔗 GitHub Kotlin

📄 仓库 README

在 GitHub 查看 ↗
来自 GitHub 仓库自述文件 · 版权归原作者所有

Open Headunit

Get it on Google Play Available at Amazon Appstore

Headunit Logo

Open Headunit is an Android app that allows you to turn your Android tablet or phone into an Android Auto receiver. This project is a revived version of the original headunit project by the great Michael Reid. The original project can be found here: https://github.com/mikereidis/headunit

NOTE!

Android Auto 17.4 and newer can prevent legacy wireless triggers from launching projection, including Self-Mode and automated startup via Wireless Helper. Rooted devices have a workaround: re-enable Android Auto's wireless startup receiver. Choose from the five options below according to your Android Auto version and setup: 1. USB Wireless Android Auto Dongle (Recommended): Hardware dongles provide seamless, hardware-level plug-and-play. 2. Native Mode: Direct Wi-Fi Direct or Headunit Hotspot handshake. 3. Headunit Server (Developer Mode): An option for wireless projection and Self-Mode without root. On the device running Android Auto, open its developer settings and tap "Start Headunit Server". 4. Wireless Helper: The legacy startup flow works with Android Auto up to 17.3; for 17.4+ on rooted devices, see option 5. 5. Root workaround (AA 17.4+): Re-enable WirelessStartupReceiver with one root command to restore the previous wireless startup flow, including Wireless Helper, without starting the developer headunit server. See the command and setup below.

Screenshots

image image image

How to use

Check out the Wiki for detailed documentation, setup guides and troubleshooting!

Wired USB Connection

  • Connect your Android device (phone) to the tablet running Open Headunit via USB cable.
  • Make sure that Android Auto is installed on your phone.
  • Set your phone to Host-Mode if nescessary and select Android Auto
  • Click the USB Button in Open Headunit, find your phone and click the right button to allow connection
  • Click on your phone in the list and wait for Android Auto to start

Wireless Connection Options

Choose from the five options below depending on your Android Auto version and setup:

1. USB Wireless Android Auto Dongle (Most Reliable)

  • A standard hardware USB Wireless Android Auto Dongle (plugged into the headunit) handles the entire wireless negotiation independently.
  • Provides seamless plug-and-play connection regardless of phone Android Auto version.

2. Native Mode (Wi-Fi Direct / Headunit Hotspot)

  • Directly communicates with Android Auto's native wireless protocol without helper apps.
  • Supports Wi-Fi Direct (P2P) or the Headunit Hotspot transport.
  • Configure under Open Headunit Settings -> Android Auto Mode -> Native Mode.

Optional automatic Wi-Fi scan pause

In advanced settings → Wireless Connection → Pause automatic Wi-Fi searches, enable Pause during wireless connections. It is off by default and applies immediately. The setup screen puts installation and app approval under Common setup, vendor startup under On FYT devices, and manual debugging instructions under On other devices.

  • Android 13+: in Native mode (Wi-Fi Direct or Hotspot), pauses Android's periodic connectivity and PNO searches through the global autojoin gate. Client modes keep automatic reconnection enabled. It reads the original value before changing it and restores that value on disconnect.
  • Android 11–12L Wi-Fi Direct: disables global autojoin through Shizuku while keeping the P2P group. These versions expose no state getter: on release, searches are enabled again, even if they were disabled beforehand. Command acceptance is not a measured scan state.
  • Android 8–10 Wi-Fi Direct: disables the internal connectivity manager through Shizuku. Apply on connection, then renew every five minutes while connected. Android network requests can re-enable searches between renewals. The long interval limits repeated firmware roaming cleanup on Android 8–9; this is best-effort, not a guarantee of continuous suppression. Release enables the manager again; the previous value cannot be read. Reboot resets these temporary legacy Direct controls.
  • Android 8–12L Hotspot: with ordinary Wi-Fi off, pauses the remaining scan-always path and restores its recorded value. The app never turns off a live Wi-Fi Direct radio.
  • Android 7 and older: this option is unavailable; existing wireless behavior is unchanged.

Android 11+ can start Shizuku through wireless debugging; the screen also points to its USB setup for devices without that option. Android 8–10 uses USB/computer setup, with an explicit on-device startup option on supported FYT systems. FYT startup asks for normal ADB RSA authorization and keeps its network ADB listener open, including after app restart. Use Close wireless ADB to restore paused Wi-Fi searches and then stop the listener opened by this app. If restoration cannot finish, ADB stays open for recovery. Closing can also stop Shizuku and disconnect USB debugging. Existing ADB ports and persistent settings are left alone. An interrupted explicit close is retried when the app reopens. On Android 8–10 FYT systems, a previously configured FYT start is attempted when a Native wireless transport opens, provided this option stays enabled and Shizuku is not already running. App launch and boot alone do not start it. The attempt runs alongside the Android Auto handshake and does not delay projection. Each connection gets at most one attempt; disconnecting cancels unfinished startup. USB, self and wireless client sessions are excluded. Explicitly closing ADB disables automatic startup until the FYT start button is used again. Android may still require debugging authorization; failure does not block Android Auto.

On app-process death, a separate shell helper attempts rollback. A device-local recovery record survives interruption of both processes and is retried when Shizuku is available again. Pending recovery is shown on the home screen and in settings, with automatic retries while an authorized helper is available. For a legacy scan-always recovery, Android can also restore scanning through a system confirmation without restarting Shizuku. Where the state can be read, the app verifies restoration before clearing its recovery record. Legacy Direct clears the record after Android accepts the enable request. On paths with readable state, if searches are re-enabled elsewhere, the app leaves them enabled for that connection instead of repeatedly forcing them off. Other apps' explicit scans, Wi-Fi Direct discovery and firmware roaming are outside this control; this option cannot promise to eliminate every radio interruption.

FYT external Bluetooth module transport (experimental)

On FYT units where the phone pairs for calls with a separate Bluetooth module (for example DUDUAUTO on DUDUOS), Native Mode can carry its Android Auto Bluetooth handshake through /dev/auto_serial, the relay the stock Car Link app (com.syu.carlink) uses, while calls remain on the module and the vehicle microphone/speakers. Tested so far only on DUDUOS with a BLINK module.

Requirements: - An FYT unit that exposes /dev/auto_serial (Car Link's external-module backend, sys.fyt.bluetooth_type above zero). - Nothing extra where the node is app-openable, as it is for the stock Car Link. Where it is not (node mode or SELinux), root access for Open Headunit, used as a fallback. - The stock com.syu.carlink package disabled, because two readers on the same terminal split protocol messages. - The phone paired with the module; pairing and phone priority remain managed by the module.

Setup: 1. Disable the stock client: adb shell pm disable-user --user 0 com.syu.carlink (prefix with su -c if the shell refuses). 2. In Open Headunit, select Native Mode and enable Connect through the FYT external Bluetooth module. 3. Keep the phone paired with the module and connect normally.

On a detected FYT module unit with this transport off, Native Mode refuses to start and names this setting, instead of listening on a radio the phone is not paired with. If the channel cannot be opened (Car Link still enabled or running, or the node not app-openable and root denied), the reason is shown on screen and retried with a growing delay.

Android Bluetooth driver selection, preferred-phone and wake-list controls are intentionally hidden on this route because Android cannot see or dial phones bonded to the external module. To roll back, turn this transport off and re-enable the stock client with adb shell pm enable com.syu.carlink (prefix with su -c if needed).

3. Headunit Server (No-Root Option for Self-Mode on AA 17.4+)

  • Starts the native Android Auto developer server directly on your phone or on the same device (Self-Mode).
  • Setup: 1. Open Android Auto settings on your phone (or tablet in Self-Mode). 2. Scroll down and tap Version 10 times to unlock Developer settings. 3. Tap the three-dot menu in the top right corner and choose Start headunit server. 4. In Open Headunit, tap the WiFi button to connect (or use Self-Mode).

4. Wireless Helper

  • Our companion app triggers the wireless connection automatically in the background.
  • Compatibility: Android Auto v17.3 and below, or v17.4+ with the root workaround in option 5.
  • Download: Wireless Helper on Google Play Store
  • Setup: Set Open Headunit Wireless Mode to Helper Mode, ensure both devices are in the same network or Wi-Fi Direct group, and start the service in the Wireless Helper app.

5. Root Workaround for Android Auto 17.4+

On the device running Android Auto (normally the phone), open a **r

📈 近 7 天 Star 趋势

每日新增 Star(柱)与累计 Star(线)· 数据来自 GitHub

🏆 排名变化趋势

在各榜单中的排名历史(数字越小越靠前)

📋 历史上榜记录

每次快照的详细数据
日期 榜单 排名 周期新增 总 STAR