[Paid Software Announcement and Discussion] mikereidis:
What the heck is Android Auto, and why would I want it ?

Introduction / Different approaches:

There are many different approaches to running apps in a car, and they each have advantages and disadvantages.

Many people are happy to just install an Android tablet or Android based headunit and run apps much like they do outside of the car.

Others may mount their phone on the dash and use Android as they always do. They may plug it in to charge and might pair the phone's Bluetooth with their existing in-car audio system.

If you are using approaches like these, and you are happy with them, that's great ! I'm not a mission to convince you otherwise if you have decided these methods are best for you.

Android Auto:

Android Auto (AA) is Google's latest and greatest effort to provide automotive navigation, music, phone and other features in an environment that minimizes distraction.

AA was announced in 2014, and it's "app" first publicly released March 19, 2015, after Pioneer starting selling their AA compatible 4100/7100/8100-NEX headunits. Google did not seem ready to launch AA at that point, but Pioneer's early release of headunits seems to have forced this.

Apple has it's own rough equivalent to AA called Apple Car Play. Many who have seen both prefer AA, but iOS users also appreciate having more or less the same iOS UI they already know in their car.

How AA works (basic):

AA is not a mirroring solution like MirrorLink, Miracast or Apple Airplay. Mirroring solutions simply send phone screen video to an external, larger screen and return touch events. Thus the in-car screen is simply a blown-up version of the phone screen.

Mirroring solutions generally work with all existing apps. AA on the other hand, requires Android apps to have special AA compatible extensions added. Clearly this can be a disadvantage of AA. Few music and messaging apps can be used with AA, and the only mapping/navigation app supported is Google's.

With AA, Google mostly controls the User Interface (UI) as implemented in their AA "companion app". AA compatible apps CAN modify some of the color scheme and some related minor UI features, but the look and feel are largely Google designed and controlled.

Google has done this to minimize distraction. Although many of us will not be happy with Google's decisions. we should consider that the last things Google wants are: (1) laws against Android Auto, (2) bad publicity from distracted driving incidents, and (3) expensive lawsuits. Note that Google, Apple and the auto OEMs are reportedly negotiating who takes how much responsibility for the inevitable lawsuits, particularly in the US where multi-million dollar settlements regularly occur.

Google AA supports two types of AA compatible apps at present, with more (eg maps/navigation ?) coming in future: (1) Audio/music and (2) messaging. For the most part, audio/music AA extensions provide functions for starting/stopping/nexting/etc of the audio as well as functions to determine the music navigation hierarchy. Messaging AA extensions include sending a message to AA to be converted to speech as well as handling spoken replies.

Video and gaming apps will likely never be supported for the drivers position, at least while driving, for obvious reasons.

Many app developers are hesitating at this time to add AA extensions. At this time, there is very little revenue to be made by supporting AA (and the same has been seen for watch and TV apps). This should improve as more cars have AA installed, via OEM systems or aftermarket headunits.

So why would I want AA ?:

If you need access to ANY Android app, and not just the limited selection of AA compatible apps, then mirroring solutions will work better for you.

AA is more for people who want a solution that "just works" (although there are still many wrinkles to iron out), is well integrated, and has a common Google specified UI.

Less technically minded people will appreciate AA or Apple CarPlay, while Android power users may be happier with mounting a tablet or using an Android based (usually Chinese) HU.

An Android based HU which can run my Headunit app, may offer the best of both worlds. You can run any Android app when you need to, or run my HU app to get AA features. (At present nobody has reported success running my Headunit app on an Android based HU. I hope/presume I'll figure that out.)

I am personally convinced that AA will be very important for Google going forward. Controlling and getting the treasure-trove of data from connected cars is important to Google. We may not be far from the day when Google will get a commission when it successfully convinces us to pull over for specific fast food or auto maintenance. Want fries with your oil change ?

Because AA is important to Google, I feel confident it will not be abandoned, and will only get better as the years tick by, bugs are fixed, apps are AA enabled, etc.

Getting AA working:

Please, always do your best to drive responsibly and with a safe minimum of distraction. You assume all liability for following any of these or any other instructions.

First, your phone (or tablet) needs the AA companion app installed. US residents can install the Android Auto app from Play: https://play.google.com/store/apps/details?id=com.google.android.projection.gearhead and those outside the US can find APKs here: http://www.apkmirror.com/apk/google-inc/android-auto/ .

Next, you need an AA compatible aftermarket or auto OEM headunit. Auto OEM AA headunits (HUs) are just starting to come out for a limited selection of 2016 models. Aftermarket HUs like the Pioneer 4100/7100/8100-NEX devices are a good alternative. If a $500-700 HU is too expensive for you, that's where my Headunit app for tablets comes in, but there are some inherent disadvantages to such an app and a tablet is just one of the costs. More on this further below.

Ensure that your mobile device running the Google AA companion app is setup with a Google account. Make sure the Google apps are up-to-date, including the AA app, Google Play Services, Google Maps, and Google Play Music.

Now plug your mobile device USB into the HU. If all goes well you should see a series of prompts and screens on the HU and mobile device. If something complains that it's not safe to configure at this time, ensure your car is in the Park gear (or neutral for manual), that the emergency/parking brake is fully engaged, and press down on the brake pedal. My 4100-NEX is setup for testing, outside of a car, and I simply connect the green wire to ground or 12 volt negative line. I'm not sure that this will work well if your HU is installed such that the green wire is connected to other things.

Hopefully you will now see the main AA Intro/Google Now Screen. Select functions from the "rail" at bottom of screen: In order: Maps/navigation, Phone, Google Now, Music, and "Other/OEM".

Your mobile device should show a mostly black AA screen indicating the device is in AA/car mode. You CAN escape this and run other apps, but it is not recommended.

While your mobile device is connected via USB, it should charge. Turn the device screen off to maximize charging and minimize heat build up. Using Maps/Navigation will use the device GPS (unless the HU provides it) and this contributes to heating of the device and minimizes charging.

How AA works (technical):

Basically, the AA app creates a special environment in which it draws to a virtual screen instead of the real screen. The resulting video is encoded as an H.264 stream and sent via USB to the HU. The HU responds with touch-screen events which the AA app interprets similarly to normal Android app operation.

AA compatible audio apps contain AA audio extensions, which can provide control of audio app playback and provide information about which audio streams or files can be played. The audio app uses it's normal Android audio APIs, which the AA "app" hooks in order to send the audio to the HU, over USB or Bluetooth. I refer to the AA "app" with parentheses, because it has many hooks into Android internals which normal apps do not have access to. Thus, much of the AA "app" is really system level code, though there is a minor UI for some basic configuration and to provide access to AA developer mode functions.

The AA USB protocol also includes functions for accessing sensors, including parking brake status, gear position, fuel tank level, road speed, engine speed and many more. Only a few sensor functions are fully implemented at this time however, such as parking brake status to determine if it is safe to do configuration.

Google has referred to AA HU's as "dumb terminals". But IMO a true "dumb terminal" would simply be a touchscreen with a DVI/HDMI like interface. AA HUs DO need to have some "smarts", such as H.264 video decoding, Bluetooth and sensor signal processing.

Hardware HUs also generally provide many other functions that work standalone with no mobile device, such as AM/FM/HD radio, CD player and vendor specific apps that run on the HU.

Why would I want your Headunit app ?:

- For the customization opportunities.

I haven't seen any 10 inch / 25 cm screens on auto OEM or aftermarket HUs. Large tablets however are readily available with many choices for screens and other hardware.

- To use or experiment with Android Auto without buying a new car or a $500+ hardware headunit.

Note however that besides the tablet, you may also need a USB OTG Y cable and a powered USB hub in order to properly charge the mobile device, and tablet, without running down the tablet battery.

Some devices (for tablets, mostly non-Samsung) may need special kernels in order to charge while acting as a USB host.

Why can't we just run our phone in an AA standalone mode, without tablet or Headunit ?:

Mostly because Google does not want that. They consider screens under 7 inches / 17 cm to be distracting. Google seems to eventually want "Android in the car", so Google may be working on something like a standalone mode (for what would essentially be an Android tablet in the car), but this is nothing but rumours so far.

I know a LOT of people would REALLY like a standalone mode, so I am likely to explore the feasibility of this in the near future. I am sure that Google would disapprove of this and would eventually take measures to sabotage such a thing, so it's a tricky prospect.

I think an AA standalone mode "app" (more like system mods than an app, same as AA "app" itself) would require a rooted device. It likely would also require Xposed (or similar) to hook and modify various system functions.

Add it all up and it turns into a very difficult venture with limited returns on time invested.

A Headunit app running on a 2nd device/tablet is more feasible as Google can not just change the AA protocol overnight, and it does not require root on the tablet (except for charging of non-Samsung tablets, sigh...)

Are there any other AA compatible Headunit apps ?

At this time no, my Headunit app is the first and only of it's kind.

Google has not publicly released documentation or code to build a Headunit app, and may never do so.

It has so far taken me over 600 hours of work to reverse engineer the AA protocol and build this app. With open docs/code it might have taken only 100-200 hours at most.

I've read a report that Google must certify AA HU implementations before they are "allowed". This is likely part of the agreement and NDAs that auto and HU OEMs must sign to join Googles "Open Auto" alliance, beyond whatever fees are charged.

GENIVI appears to have plans to "open source" an AA client implementation. But AFAICT, GENIVI "open source" is not entirely public and open. I suspect Google would want to ensure that any users of such source code adhere to their requirements.

Pioneer HUs run Android. Their AA client implementation is a binary, so it's somewhat similar to an HU app. But it's specific to their hardware and will not work on general purpose Android tablets or phones.

There may be other Headunit apps to come, but I have not heard of any, beyond one persons desire to create an open source app in the long term.