Android Auto Server encapsulates communication with modern car infotainment system
Many new cars have headunits that support Android Auto (AA). While the default use case (connect mobile via USB) is already useful (eg. for navigation), one may look at AA headunits as a more generic input/output device.
This project attempts to provide a basic layer to access Android Auto headunits as a video display and later maybe touchscreen, soundcard, etc.
This project attempts to be specific enough to provide a clear way to set it up. On the other hand it attempts to be generic enough by providing connectivity to already existing software components.
This software is being developed on Odroid N2 platform. Reasons behind choosing this platform:
If you want to try out this piece of code and/or help just buy Odroid N2. I do not have access to any other platform (ok, I tried BeagleBone Black, but it was too slow) so it would be extremely hard for me to provide any support. However, feel free to provide patches for other platforms.
The software is being developed on:
Instructions how to set up runtime and development environment can be found in the installation instructions document.
Android Auto Protocol is not documented. However, it has been reverse engineered and open source implementation exists (see https://github.com/opencardev/openauto). While this code does not use a single line from openauto (except for headunit key/cert), openauto is extremenly useful while developing and testing AACS.
There are several components that comprise AACS:
AACS depends on Snowmix for video mixing.
So what exactly could be displayed on headunit? Here are a few ideas:
Currently AACS can do the following: