Google’s Android Auto utility casts content material from a smartphone to a automobile’s head unit show. Officially, that content material consists of navigation (e.g., Google Maps and Waze), media gamers (e.g., VLC, Spotify), and messaging apps. The utility is helpful, however it will be even higher in the event you might present a movie in your head unit’s show or use it as an interface to a customized onboard pc that manages a number of cameras, GPS, and so forth.
This article will reveal Android Auto Client-Server (AACS), an early-stage utility I am growing to do these duties.
How to hack Android Auto
There are two approaches for displaying different content material on the pinnacle unit’s display: you may hack the Android Auto utility, or you may reimplement the protocol from scratch. The first method appears less complicated however is considerably dangerous: it could use Google’s mental property and subsequently be topic to authorized motion, and it could break with new Android Auto variations (particularly since Google actively works to make that occur).
Therefore, reimplementing the protocol from scratch is the safer method for the long term. One such implementation of the Android Auto protocol is OpenAuto, a head unit emulator by Michal Szwaj. However, this text makes use of the opposite aspect of the communication interface—the cellular system aspect of the protocol.
Android Auto Client-Server (AACS)
AACS presently consists of three core modules and one exterior module that run on ODROID N2, an ARM-based single-board pc:
- AAServer is an implementation of Android Auto Protocol (AAP) that communicates with the automobile’s head unit. It handles encrypted AAP-over-USB communication and exposes it over a Unix socket to be used by different modules.
- AAClient is an AAP implementation that communicates with a cellphone which may be linked to ODROID N2 and forwards all visitors to AAServer. By utilizing AAClient, you don’t want to decide on whether or not to attach your cellular or ODROID N2—you may join each concurrently.
- AAVideoSink is a GStreamer sink that sends video from a GStreamer Gst pipeline to AAServer. Combined with different Gst parts (akin to ximagesrc), it means that you can solid any utility to your automobile’s head unit.
- GetOccasions is an utility that connects to AAServer and forwards contact occasions from the automobile’s head unit contact display to the chosen utility window utilizing X Server’s XTest extension.
Try it out
To attempt AACS, you want the next :
- An ODROID N2 with energy provide
- An SD card (16GB must be sufficient to begin; 32GB is really useful) with a USB SD card reader
- A USB Type-A to Micro USB cable
- A cigarette lighter plug to 2.1/5.5mm plug cable (to energy the ODROID within the automobile)
- A GPS USB receiver (I’ve examined the u-blox 7); this isn’t required to check AACS, nevertheless it’s helpful
Once you will have the :
- Grab the latest AACS release.
- Concatenate the information, unpack them, and replica the outcomes to an SD card:
unxz | dd of=/dev/sdX bs=1M
- Move the cardboard to the ODROID N2. Make certain the ODROID is linked to the net by Ethernet and switch it on.
- Get the ODROID’s IP tackle and connect with it by Virtual Network Computing. The password is
- You ought to see the OsmAnd begin display. Download applicable maps and different information, then flip off the ODROID.
- Go to your automobile, change the automobile’s date to someplace between July three, 2014, and April 6, 2020 (these are the certificates validity dates).
- Connect USB and energy to your ODROID. Try connecting to the ODROID from the pinnacle unit with Android Auto. After roughly 30 seconds, you will notice a management video on the pinnacle unit, and some minutes extra, you will notice navigation (OsmAnd).
Please bear in mind that this isn’t production-quality software program but. It is nearer to a proof of idea, so I want to invite others to take part in its growth.
Currently, the software program has the next limitations:
- It was examined on just one head unit—an LG unit in a 2019 SEAT Ateca—and must be examined AACS with different head models.
- The solely utility that’s accessible out of the field is OsmAnd operating on Anbox. It can be nice to produce other functions accessible on AACS for issues akin to managing cameras (recording, street signal recognition), cellphone name help (a number of telephones linked over Bluetooth), paid car parking zone functions, and so on.
- It was examined solely on ODROID N2. If you port it to different single-board computer systems, please submit patches.
- It helps solely enter and video channels. It can be nice to have help for audio, voice enter, and different channels.
If the undertaking appears to be like fascinating to you, join me on Github to submit concepts, patches, report points, or assist promote the undertaking.