iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Google’s Desktop Head Unit (DHU) is a developer tool that emulates an Android Auto head unit on Windows, macOS, or Linux. To use it, you need a phone running Android 9 (API level 28) or later, Android Auto, the app you are testing, a USB data connection, and Android Studio’s DHU package. Install the emulator from SDK Manager, choose either USB accessory mode or ADB tunneling, then use a head-unit configuration file to set input behavior and requested display characteristics.
Google describes the DHU as a way for a development computer to emulate an Android Auto head unit so developers can run and test Android Auto apps. It is not a standalone Android Auto installation: the phone remains part of the test system, and Android Auto plus the compiled app under test must be installed on that phone.
What you need before installing the DHU
Prepare the phone and computer first. The official setup supports Windows, macOS, and Linux, but Linux DHU 2.x has additional runtime requirements.
- Android phone: Android 9 (API level 28) or later.
- Android Auto: Installed on the phone and updated to the latest version available to you. For Android 10 (API level 29) or later, sign in to Google Play and update Android Auto before the first DHU run; Google’s documentation does not specify a single current app version.
- App under test: Compile it and install it on the phone before starting the head-unit session.
- Computer: Windows, macOS, or Linux with Android Studio and the Android SDK.
- USB connection: Use a data-capable cable that fits both devices. A charge-only cable cannot carry the connection required by either documented method.
- Linux DHU 2.x: GLIBC 2.32 or later, plus the
libc++1andlibc++abi1runtime packages.
Android Auto developer mode is needed for ADB tunneling. You can enable Android’s normal developer mode for the phone through its system settings as part of preparing the development device.
#1 Best Overall
- [Reliable Car Connectivity & Android Auto] Engineered specifically to solve "falling short" connection issues in vehicles. This cable provides a stable, high-speed link for Android Auto and Apple CarPlay, ensuring consistent navigation and music streaming in models like the Ford Raptor and other modern consoles
- [True 10Gbps Ultra-Fast Data Sync] Eliminate data transfer bottlenecks with genuine USB 3.1 Gen 2 performance. Move 4K movies or entire photo libraries in seconds at 10Gbps—speeds significantly faster than standard USB 3.0 cables that often drop to 40Mbps
- [Built for Tidy Spaces & Durability] The 3ft length is the "perfect length" for car consoles and tidy desktop setups, eliminating excess cable clutter. Featuring an aluminum alloy case and premium nylon braiding, it is manufactured to prevent loose wires and fraying near the plugs
- [Versatile One-for-All Functionality] A single solution for your high-speed ecosystem. Seamlessly connects the latest iPhone 18 Pro Max Duo/17/16, Samsung Galaxy S26/S25/S24 Ultra, PS5/PS4 controllers, and external SSDs to USB-A ports
- [Charging & Compatibility Boundaries] Provides efficient 3A/18W fast charging for smartphones and tablets. Please note: This cable is optimized for mobile devices and is not intended for high-wattage laptops (65W+) or use cases requiring cables longer than 3 feet
Install the Desktop Head Unit package from Android Studio
1. Open SDK Manager
- Start Android Studio.
- Open SDK Manager.
- Select the SDK Tools tab.
- Find and select Android Auto Desktop Head Unit Emulator, then download and install it.
The documented installation directory is SDK_LOCATION/extras/google/auto/. Replace SDK_LOCATION with the Android SDK directory used by your Android Studio installation. The directory contains the DHU executable, its supporting files, and sample configuration files.
2. Make the executable runnable on macOS or Linux
On macOS or Linux, open a terminal, change to the installed directory, and grant execute permission:
cd SDK_LOCATION/extras/google/auto/
chmod +x ./desktop-head-unit
Keep the bundled libusb library in the same directory as the DHU executable. Moving the executable without that library can prevent the program from starting or from accessing USB devices.
3. Check Linux 2.x dependencies
DHU 2.x on Linux requires GLIBC 2.32 or newer. Check the installed version with:
ldd --version
If the system is older than 2.32, upgrade the distribution or use a compatible environment before troubleshooting the DHU itself. You also need libc++1 and libc++abi1. On Debian-derived distributions, Android gives this example:
sudo apt-get install libc++1 libc++abi1
Package names and installation commands vary by distribution, so do not treat that command as universal. Resolve the packages through your distribution’s package manager when necessary.
Choose a connection method
There are two documented ways to connect the phone to the emulated head unit. USB accessory mode is the recommended method for DHU 2.x. ADB tunneling forwards a local socket and is a useful alternative when USB accessory discovery is unreliable, particularly on Windows.
| Method | Best use | Key command or setting | Important conditions |
|---|---|---|---|
| USB accessory mode | Normal DHU 2.x testing | ./desktop-head-unit --usb |
DHU scans for a compatible USB device; Windows may need a WinUSB driver. |
| ADB tunneling | Alternative when accessory discovery fails, or when you need a forwarded socket | adb forward tcp:5277 tcp:5277 |
Android Auto head-unit server must be running, the phone must be unlocked, and USB debugging/ADB connectivity must work. |
Connect with USB accessory mode
Start an automatic USB scan
- Connect the prepared phone to the computer with the USB data cable.
- Open a terminal or command prompt in
SDK_LOCATION/extras/google/auto/. - On macOS or Linux, run
./desktop-head-unit --usb. On Windows, run the corresponding executable from that directory with the--usboption. - Allow the phone’s Android Auto prompts or permissions when they appear.
The DHU scans for a compatible USB device. If more than one compatible device is present, select one explicitly by its device ID:
Rank #2
- [ Excellent Performance ] This USB C 3.1 cable connects a portable external USB C 3.1 SSD to a computer for speedy file transfer or syncs and charges Samsung smartphones or tablets equipped with the USB C port. Data synchronization is 20 times faster than USB 2.0 cables (480Mbps). (Does not support video output.)
- [ Fast Charging & High Speed Data Transfer ] This usba to usbc data power cable can sync your favourite photos, videos and music at a data transfer rate of up to 10Gbps(1250MB/s). Files can be synchronised in seconds. In addition, it can quick-charge your USB-C devices at up to 3A safe charging power. Tested charge Samsung Galaxy S22 from 0 to 60% in 30mins with Qualcomm Quick Charge 3.0 technology.Tips: USB 3.1 Gen 2 renamed to USB 3.2 Gen 2 by USB-IF in 2019.
- [ Extreme Durability & High Quality ] : Unique ABS case with the reinforced connector withstand 10000+ bending test. Durable TPE cable not only stay tangling-free but also flexible enough to be wrapped up and put in a bag ! (PS:The connector shell is wrapped around by a piece of plastic film to protect the shell from scraching ,feel free to remove the film when you use it.)
- [ Universal Compatibility ] This USB C to USB A Charger cable is Compatible with almost all USB-C devices. For Samsung Galaxy S24/S24+/S24 Ultra/S23/S23+/S23 Ultra/S22/S21/S20/S10/S9/Note 20/10/A70/A80/A90/A54, iPhone 16/16 Plus/16 Pro/16 Pro Max, iPhone 15/15 Plus/15 Pro/15 Pro Max, Google Pixel 9/8/7/6/5/, Moto G9/G8/G7/G Pure, LG G7/G6/V50, Sony XZ, Bose 700, GoPro, Nintendo switch, Samsung Galaxy Tab S6, iPad Pro 2018 11''/12.9", Samsung T7/T5, Crucial X8/X6, LaCie Rugged SSD, G-Drive, WD My Passport, Seagate Fast, SanDisk Extreme Portable SSD etc. (OnePlus phones are not supported.)
- [ What You Get ] 1 X Super-Fast USB-A to USB-C 3.1 Gen 2 Cable (3 ft including both ends), our worry-free LIFETIME WARRANTY and friendly customer service. NOTE: If you have any questions, please feel free to contact us, we will be happy to serve you and give you an easy and pleasant shopping experience.
./desktop-head-unit --usb=[DEVICE_ID]
Replace [DEVICE_ID] with the identifier reported for the phone. Do not include the brackets in the actual command.
Windows USB considerations
Windows USB accessory mode can require a WinUSB driver. Driver selection can also interfere with the ADB connection used by Android development tools. If the DHU cannot discover the phone, try restarting the ADB server with adb kill-server, reconnecting the phone, and running the USB command again. If discovery still fails, switch to ADB tunneling rather than repeatedly changing drivers.
Connect with ADB tunneling
ADB tunneling uses port 5277 by default. Complete the phone-side preparation before forwarding the port.
Recommended Free Tools
1. Enable Android Auto’s developer controls
- Open Android Auto on the phone.
- Use the app’s overflow menu to enable developer mode if it is not already enabled.
- If necessary, open the overflow menu and choose Start head unit server.
- In Android Auto settings, open Previously connected cars.
- Verify that Add new cars to Android Auto is enabled.
The head-unit server must be active for the forwarded connection to be accepted.
2. Forward the default socket
- Connect the phone to the development computer over USB.
- Leave the phone screen unlocked.
- Confirm that ADB can see the device, then run:
adb forward tcp:5277 tcp:5277
The first port is on the computer and the second is the port exposed by the phone’s head-unit server. A successful command normally returns to the prompt without an error.
3. Launch the DHU
From SDK_LOCATION/extras/google/auto/, start desktop-head-unit.exe on Windows or ./desktop-head-unit on macOS/Linux. On the first connection, accept the terms on the phone and grant any permissions Android Auto requests.
Use a non-default ADB port
If your forwarded ADB host or port is different, pass it with --adb. The documented example uses port 5999:
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitches./desktop-head-unit --adb=5999
The option accepts either a port or the form --adb=[localhost:]port. The default remains 5277 when no value is supplied.
Rank #3
- [Finder’s Red]: Quickly identify your Data-Sync cable in a tangle of different functions wires. No more guessing: Red = Fast Charge = Data Sync". Lab study: Red data cables reduce‘wrong unplugging’ by 62%. Spotted 3X faster than black in bags/offices. Ideal for travel, meetings, and late-night charging.
- [Lock-Tight C Port & Zero Interruption]: Super Snug USB-C data cable. No Loose/Wobble, Stable Rapid Charging & Data Sync. Tested to withstand 50,000+ bends and 10000+ Plug-in. Withstands long-term use without loosening. No more annoying ‘disconnected’ alerts.
- [Phenomenal Superspeed+ 10Gbps Data Transfer Speed]: Wherever you are, access your games, photos, and videos quickly. With read speeds up to 10Gb/s, you can load files up to 2x faster than most usb 3.0 a to c cables, 20x faster than usb 2.0 cables, and 800x faster than USB 1.0 cables. This incredible performance will give you an ultra-fast experience like never before.
- [High Quality Nylon]: The upgraded USB C 3.1 data cable features military-grade double-braided nylon that outperforms cheap plastic coatings. The tight 1200D nylon weave resists cuts, pet bites, daily wear, and ensure stable 10Gbps high speed data transfer and 3.1A fast charging."(LDLrui Lab Certified: 10+ years lifespan at 8 bends/day).
- [The Only Charge Cable You Need]: Say goodbye to your old usb a to c charge cables. LDLrui usb charger cable has the unrivaled charging speed you need to fast charge your phone, tablet, and USB-C notebook. Charge Samsung S10 to 50% in just 30 minutes—that’s up to 30% faster than with other 2.4A charger cable.
Configure the simulated display and controls
The DHU reads its default configuration from ~/.android/headunit.ini. To use another file, pass its path with -c:
./desktop-head-unit -c /path/to/config.ini
Sample configurations are installed in SDK_LOCATION/extras/google/auto/config/. Copy or adapt one of those samples instead of creating a configuration from an empty file. This gives you a known set of supported keys for the DHU version you installed.
Input modes
The default emulator presents a touchscreen interface operated with mouse clicks. You can select a different input model with the -i option (also available as --input):
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
touch— touchscreen-style interaction; mouse clicks operate the emulated display.rotary— rotary-controller interaction; mouse clicks are ignored and keyboard shortcuts simulate controller operations.hybrid— combines the touch and rotary input models.
./desktop-head-unit -i rotary
Use rotary mode when the app needs to be exercised through a rotary controller rather than direct touch. If clicks appear to do nothing after changing modes, confirm that rotary behavior is intentional and use the documented keyboard shortcuts for controller operations.
Display and vehicle capabilities
The INI configuration can request display characteristics and expose simulated vehicle capabilities. The documented sample covers:
- Touchscreen, touchpad, rotary-controller, and instrument-cluster toggles.
- Requested display resolution.
- Display DPI.
- Requested frame rate.
- Fuel types.
- Electric-vehicle connector types.
These settings let you test how an Android Auto app responds to different head-unit profiles. Edit the corresponding entries in a sample INI, save it under a separate name, and launch the DHU with -c so that each test profile is reproducible. The requested values describe the simulated head unit; they do not change the physical phone’s screen or vehicle hardware.
Useful DHU command-line options
| Option | Purpose | Example |
|---|---|---|
--usb |
Connect through USB accessory mode. | ./desktop-head-unit --usb |
--usb=[DEVICE_ID] |
Select a particular compatible USB device. | ./desktop-head-unit --usb=DEVICE_ID |
--adb=[localhost:]port |
Use an ADB tunnel on a specified port. | ./desktop-head-unit --adb=5999 |
-c |
Load a custom head-unit INI file. | ./desktop-head-unit -c /path/to/config.ini |
-i or --input |
Select touch, rotary, or hybrid input. |
./desktop-head-unit -i rotary |
-h |
Run headless, without the normal display window. | ./desktop-head-unit -h |
-v |
Print DHU version information. | ./desktop-head-unit -v |
--help |
Show the option list supported by the installed build. | ./desktop-head-unit --help |
Run --help on the installed binary when you need to confirm spelling or option availability for that build. The command-line interface is version-sensitive, so the local help output is the authoritative list for your installation.
Build a repeatable test profile
A configuration file is most useful when it represents one deliberate head-unit scenario. Start with a sample from SDK_LOCATION/extras/google/auto/config/, save a copy with a descriptive name, and change only the capabilities needed for the test. For example, one profile can represent a touch display while another enables rotary input and an instrument cluster. Keeping each profile as a separate INI file makes it possible to rerun the same app test after a code change.
Rank #4
- 10Gbps Data Transfer: SUNGUY USB 3.1 Gen 2 cable supports super speed data transmission up to 10Gbps, transfer HD movies, songs, file or photos in seconds. Backwards compatible to USB 3.0 and 2.0; DOES NOT support video output.
- Works with Android Auto: This android auto cable can quick-charge your USB-C devices at up to 3A safe charging power. 56KΩ pull-up resistor provides a safer charging current, and protects your devices from damage. Works great with your car's Android Auto.
- Works with CarPlay: The nylon braided usb c to usb a cable compatible with iPhone 15/15Pro/15 Pro Max/15 Plus CarPlay cable. Supports connecting the iPhone 15 series to iTunes on your computer.
- Great Compatibility: This usb c data cable is compatible with iPhone 15/15 Pro Max, Galaxy S23/S23 Ultra/S22/S22 Ultra/S21/S21+/Note 10 Plus/Note 20 S10/S10e/S10+, Pixel 5 6 7 Pro, iPad Pro 2020, MacBook, MacBook Pro, MacBook Air, LG G6 G7 V40 V35, ThinQ V30S V30, Chromebook, Dell XPS 13, Samsung T7 Shield, Extreme Portable SSD and more.
- What You Get: You will receive 1pcs 1.5ft USB 3.1 Gen2 10Gbps Cable, with our 12-month product replacement warranty and lifetime 24/7 friendly technical support.
Check the profile before launching: confirm the requested resolution, DPI, and frame rate, then review the touchscreen, touchpad, rotary, and cluster toggles. If your app handles vehicle energy features, set the documented fuel or electric-vehicle connector entries that match the scenario. These values describe what the emulated head unit reports; they are not a way to alter the phone or connect to an actual vehicle.
Use the command line to make the selected profile explicit:
./desktop-head-unit -c /path/to/touch-profile.ini
./desktop-head-unit -i rotary -c /path/to/rotary-profile.ini
When a session behaves differently from an earlier run, record the DHU version shown by -v, the input option, the INI path, and the connection method. That small record helps distinguish an application change from a changed emulator profile.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallUSB accessory mode versus ADB tunneling
USB accessory mode asks the DHU to discover a compatible phone directly and is the recommended route for DHU 2.x. It has fewer explicit forwarding steps, but Windows may need WinUSB and a driver change can affect ADB. ADB tunneling is more procedural: the Android Auto head-unit server must be running, the phone must stay unlocked and connected, and the computer must forward the matching socket. In return, it gives you a clear port to verify and a documented way to select a non-default port.
Use one method at a time while diagnosing a connection. If the USB process is holding the device and ADB commands begin failing, stop the DHU, reconnect the phone, and retry after adb kill-server. Conversely, if the forwarded port is correct but the DHU still reports no session, return to the phone-side checks rather than changing the INI file: the head-unit server, Android Auto settings, unlock state, and USB link must be correct before configuration can matter.
Troubleshoot a DHU session
The DHU does not find the phone over USB
- Confirm the phone is running Android 9/API 28 or later, Android Auto is installed, and the USB cable carries data.
- On Windows, check whether the required WinUSB driver is installed and whether it has disrupted ADB.
- Try
adb kill-server, reconnect the phone, and run the USB command again. - Use an explicit
--usb=[DEVICE_ID]value if multiple devices are attached. - Switch to ADB tunneling if accessory discovery remains unsuccessful.
ADB tunneling does not connect
Check the prerequisites in this order:
- Android Auto developer mode is enabled and Start head unit server has been selected when required.
- Add new cars to Android Auto is enabled under Previously connected cars.
- The phone is physically connected over USB, unlocked, and visible to ADB.
adb forward tcp:5277 tcp:5277completed without an error, or the DHU’s--adbvalue matches the non-default forwarded port.- The DHU was launched from the installed
extras/google/auto/directory.
Linux reports missing libraries or will not start
Run ldd --version and verify GLIBC is at least 2.32 for DHU 2.x. Install both libc++1 and libc++abi1 using the package manager appropriate for your distribution. Also verify that libusb remains beside desktop-head-unit in the installation directory.
The display or controls behave unexpectedly
- Check which INI file was supplied with
-c; a custom file overrides the default profile for that run. - Confirm the input mode. In
rotarymode, mouse clicks are intentionally ignored. - Start with one of the samples in
SDK_LOCATION/extras/google/auto/config/, then change one display or capability setting at a time. - Use
--helpand-vto verify the executable and options you are actually running.
Understand the DHU’s boundaries
The DHU emulates the head-unit side of Android Auto on the computer. It does not replace Android Auto on the phone, and it does not install the app under test. A valid session therefore has three pieces: the computer running the DHU, a compatible phone running Android Auto, and the compiled test app installed on that phone. Changing resolution, DPI, frame rate, input, fuel, or connector values changes the simulated head-unit profile only.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →For the complete command reference, installation details, Linux dependencies, connection procedures, and configuration examples, see Google’s official Test using the Desktop Head Unit guide.
Best Value
- Note: Car models with USB 2.0 ports may experience protocol mismatch with USB 3.2 Android Auto cable, potentially causing device recognition failure, slow charging speeds, or even complete charging failure.
- Exclusively for Android Auto and CarPlay users: This android auto usb cable is designed for users with Android Auto and CarPlay requirements.
- 10Gbps Sync Transfer: With 10Gbps high-speed synchronous transmission, USB 3.2 Gen 2 cable can perfectly match your portable ssds with large files for quick transfer to your laptop, increasing work efficiency.
- Up to 15W Fast Charging: A usb to usb c data transfer cable capable of providing a maximum charging speed of 15W (3A 5V) can charge a smartphone that supports 15W fast charging to full capacity in about an hour.
- Wide compatibility: This usbc cable is compatible with all USB-C devices, including the Galaxy series, Google Pixel series, iPhone series, tablets, USB-C SSDs, SSD enclosures, and more.
A repeatable first-run checklist
- Verify Android 9/API 28 or newer on the phone.
- Install or update Android Auto; for Android 10/API 29 or newer, update it through Google Play before the first run.
- Compile and install the Android Auto app you will test.
- Install Android Auto Desktop Head Unit Emulator from Android Studio’s SDK Manager → SDK Tools.
- Open
SDK_LOCATION/extras/google/auto/and makedesktop-head-unitexecutable on macOS/Linux. - On Linux DHU 2.x, verify GLIBC 2.32 or newer and install the two required C++ runtime packages.
- Keep the bundled
libusbbeside the executable. - Try
--usbfirst for DHU 2.x, selecting a device ID if necessary. - If USB accessory mode fails, enable Android Auto’s head-unit server, forward port 5277 with ADB, and launch the DHU with the matching ADB setting.
- Choose an input mode and INI profile, then use
-cto load the configuration for the test.
Frequently Asked Questions
Can I run the DHU without installing Android Auto on a phone?
No. The DHU emulates the head-unit side on your computer, while a phone running Android Auto supplies the mobile side of the session. The phone must meet the Android 9/API 28 minimum, and the app you want to test must also be compiled and installed there.
Which connection method should I try first?
For DHU 2.x, Google recommends USB accessory mode: launch the binary with --usb. If the computer cannot discover the phone, especially on Windows, check WinUSB and ADB state, then use ADB tunneling as the documented alternative.
What is the default ADB port for the DHU?
The default is port 5277. Forward it with adb forward tcp:5277 tcp:5277, then start the DHU. If you forward another port, pass that value with --adb, such as ./desktop-head-unit --adb=5999.
Free tools Windows power users keep installed
One-click scans. No signup required.
Why does the DHU open but ignore my mouse clicks?
Mouse clicks operate the default touch interface, but they are intentionally ignored in rotary mode. Select touch or hybrid with -i, or keep rotary mode and use its keyboard shortcuts to simulate controller actions.
Where are the DHU configuration files?
The default file is ~/.android/headunit.ini. Android also installs sample profiles in SDK_LOCATION/extras/google/auto/config/. Load a different profile with -c /path/to/config.ini.
What can an INI profile change?
The documented profile can set touchscreen, touchpad, rotary-controller, and instrument-cluster availability, requested resolution, DPI, frame rate, fuel types, and electric-vehicle connector types. These values describe the simulated head unit and do not change the phone’s physical display or a real vehicle.
What does Linux need for DHU 2.x?
Check that GLIBC is version 2.32 or later with ldd --version. Install the libc++1 and libc++abi1 runtime packages using your distribution’s package manager, and keep the bundled libusb library beside the executable.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →What should I do when ADB tunneling still fails?
Confirm Android Auto developer mode and the Start head unit server control, enable Add new cars to Android Auto under Previously connected cars, keep the phone unlocked, verify that ADB sees it, and rerun the port-forward command. Make sure the DHU’s --adb value matches the forwarded port.
The Bottom Line
Install the DHU from Android Studio’s SDK Tools, prepare an Android 9/API 28-or-newer phone with current Android Auto and your test app, then connect with USB accessory mode or a port-5277 ADB tunnel. Use the supplied INI samples and -c to reproduce touch, rotary, display, and vehicle-capability scenarios; on Linux, satisfy the GLIBC 2.32 and C++ runtime requirements first.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

