Android Automotive OS · VHAL · GAS
Android Auto and Android Automotive OS share a name and nothing else. The first projects your phone onto a screen in the car. The second is the car's operating system.
Skip that distinction and every document you read afterwards will quietly stop making sense. So let's follow one thing — a vehicle signal — all the way up to the app.
More people conflate these than you would expect.
| Android Auto | Android Automotive OS (AAOS) | |
|---|---|---|
| Runs on | Your phone | The car's head unit |
| Needs a phone? | Yes — plug in and project | No |
| Vehicle data? | Practically none | Yes — HVAC, gear, EV range … |
| App store | Play on the phone | Play in the car (GAS vehicles) |
| Who builds it | App developers | OEMs / Tier 1s / app developers |
AAOS is a platform, built on AOSP. An OEM ships it in a car and builds its own system apps on top. That is why "writing an Android app" and "building a car that runs Android" end up described with the same words.
The boundaries in this diagram tend to be organisational boundaries too.
The AAOS stack. The two blue-outlined layers are the automotive-specific ones
In a published account of Honda's AAOS work on TECH PLAY, the split is described exactly this way: the OEM takes the layers above the HAL, while the hardware domain stays with the Tier 1. On the audio side, the article describes AudioFlinger at the centre with CarAudioManager added alongside it, plus the existing AudioFocus mechanism and the native AAudio path.
This is the part that makes car Android car Android.
Apps never read CAN frames. The VHAL converts vehicle signals into "Vehicle Properties", a uniform shape, and apps read and write those. That is what keeps differences between models and buses from leaking into app code.
The entry point is the Car class; you pull the managers out of it.
// Get CarPropertyManager from a Car instance
Car car = Car.createCar(context);
CarPropertyManager mgr =
(CarPropertyManager) car.getCarManager(Car.PROPERTY_SERVICE);
// One-shot read — the model name, for example
String model = mgr.getProperty(
String.class, VehiclePropertyIds.INFO_MODEL, 0).getValue();
// Subscribe to changes — the current gear, for example
mgr.registerCallback(callback,
VehiclePropertyIds.CURRENT_GEAR,
CarPropertyManager.SENSOR_RATE_ONCHANGE);
Terms worth knowing
android.car — the package that is the entry point to car servicesCarPropertyManager — read and modify vehicle properties: speed, fuel, gear, batteryVehiclePropertyIds — predefined IDs such as INFO_MODEL and CURRENT_GEARFrom Android 14, system property definitions were split out of the VHAL interface into the AIDL interface android.hardware.automotive.vehicle.property. The CarPropertyManager and CarPropertyService stacks also gained asynchronous get/set APIs and APIs supporting a fake VHAL mode in Car Service.
That fake VHAL is the practical way in: you can exercise property reads and writes without a vehicle in front of you.
AAOS on its own ships with neither Google Maps nor Play.
GAS (Google Automotive Services) is the set of Google services layered on top of AAOS — Google Maps, Google Play, the assistant. AAOS is open source; GAS is licensed by the OEM. That is the dividing line.
A car advertised as "Google built-in" is a car carrying GAS. Being able to install apps from the Play Store in the car is likewise limited to vehicles from GAS partners.
Shipping GAS means passing certification
The product has to meet Google's compatibility, performance and security requirements, which brings a certification campaign with it. Four suites come up repeatedly:
Google-accredited third-party labs exist for this work — HARMAN's Automotive Engineering Services, for instance, has announced accreditation for AAOS and GAS certification testing.
A term with very little written about it, so it is worth stating plainly.
Carma is the name of the Car Ready Mobile Apps program: Google's route for bringing existing mobile apps onto AAOS large screens without much rework. Its shape:
The trade is explicit: give up use while driving, and the porting cost drops to near zero. That is a different goal from building a driving-safe app from scratch with the Car App Library.
| What you want | What you use |
|---|---|
| Run an existing app on the car's screen while parked | Carma (Car Ready Mobile Apps) |
| Build an app usable while driving | androidx.car.app — Car App Library templates |
| Read or write vehicle data | android.car / CarPropertyManager |
The specification is in motion, so check the date on anything you read.
In-car voice assistance is migrating from Google Assistant to Gemini. A rollout to roughly four million GM vehicles was reported in April 2026, and Google has said the rollout extends from Android Auto vehicles to Google built-in vehicles — names mentioned include the Lincoln Nautilus, Honda Passport, and select Chevrolet, Cadillac, GMC, Acura and Volvo models.
In Google built-in cars, Gemini sits closer to vehicle systems: infotainment settings, app state, EV information, owner's-manual content, and the car's own UX restrictions.
Google has announced "Android Automotive OS for Software Defined Vehicles", slated for release in late 2026 as an open-source program via AOSP. The scope moves beyond infotainment toward vehicle software generally.
Where this page stands
Everything here comes from published primary documentation and public articles. It contains no confidential information about any specific vehicle, program or company. Specifications change — verify against current AOSP documentation before you implement.