Skip to content

Learn

Android Automotive OS, from the vehicle bus up

A structured curriculum for engineers building on AAOS. Every topic links straight into AOSP source on cs.android.com and the platform docs, so you can go from concept to the actual implementation in one click.

78 topics · 15 modules6h 17m of reading
Start with Android Automotive OS vs Android Auto

Reference

Lookup material rather than reading material — for when you know what you need.

Vehicle property reference

Every one of the 280 vehicle properties Android Automotive defines, generated directly from VehicleProperty.aidl. Search by name or hex ID, filter by area, type and access, and jump straight to the AOSP source for any of them.

280 propertiessearchablesource-linked

Foundations

What Android Automotive actually is, how the stack is layered, how to get a build running, and the programme rhythm the work happens in.

  1. 01Beginner

    Android Automotive OS vs Android Auto

    Start here. The single most common confusion in this field, cleared up slowly — with everyday comparisons, a worked example, and what each one means for the code you will actually write.

    10 min read

  2. 02Beginner

    The AAOS stack, layer by layer

    A map of the whole platform, explained one layer at a time — what each layer is for, who writes it, and a worked example following a single temperature reading from a sensor in the car to the number on the screen.

    11 min read

  3. 03Intermediate

    What happens when you turn the car on

    The complete boot sequence, stage by stage — from the ignition signal through the bootloader, kernel, init and Car Service to the home screen, and why one missing component stalls the whole thing.

    8 min read

  4. 04Beginner

    Getting an AAOS build running

    Syncing AOSP, choosing an automotive lunch target, building the emulator image, and the hardware you actually need — plus honest numbers on disk, RAM and time.

    4 min read

  5. 05Beginner

    How AAOS changed, release by release

    The inflection points that matter when you inherit a codebase — HIDL to AIDL, the Car UI Library, occupant zones — and how to work out what your platform version actually supports.

    4 min read

  6. 06Beginner

    How automotive software actually ships

    Sample phases, freeze dates, start of production and a fifteen-year support tail — the rhythm that explains why platform work is scheduled the way it is.

    4 min read

Vehicle Data & VHAL

The Vehicle HAL: property anatomy, areas, access modes, subscriptions, writing your own, and migrating from HIDL to AIDL.

  1. 07Intermediate

    Vehicle HAL fundamentals

    The single doorway between Android and the car, explained slowly — what a vehicle property actually is, why the interface is so small, and the three fields in a config that cause most bugs.

    11 min read

  2. 08Intermediate

    Anatomy of a vehicle property ID

    That hex number is not a serial number — it is four facts packed into 32 bits. Learn to read one by eye and a large part of VHAL debugging becomes arithmetic instead of guesswork.

    8 min read

  3. 09Advanced

    From sensor to pixel: the complete path

    One cabin temperature reading, followed through every hop — thermistor, ECU, CAN frame, kernel driver, vendor service, VHAL, Binder, Car Service, app, screen — with the mechanism named at each boundary.

    10 min read

  4. 10Advanced

    Adding a vendor property end to end

    The complete path for a new vehicle property: ID, config, HAL implementation, permission, SEPolicy and the app that finally reads it — plus every place it silently fails.

    5 min read

  5. 11Intermediate

    CarPropertyManager and Car Service

    The framework side of the vehicle interface — connecting to Car Service, subscription rates, error semantics, and the lifecycle bugs that only appear on a real head unit.

    5 min read

  6. 12Intermediate

    Testing and debugging the VHAL

    Driving properties by hand, reading dumpsys output, injecting values into the reference HAL, and building a simulator so you stop waiting for a vehicle.

    5 min read

  7. 13Advanced

    Migrating the VHAL from HIDL to AIDL

    What actually changes when the Vehicle HAL moves interface technology — batched requests, a new callback model, and the compatibility strategy that keeps a shipped vehicle working.

    4 min read

  8. 14Advanced

    Subscriptions, sample rates and update filtering

    What actually happens between a HAL publishing a value and forty apps receiving it — deduplication, rate arbitration, variable update rate, and the power cost of getting it wrong.

    4 min read

  9. 15Advanced

    MIXED, vector and special properties

    The properties that do not fit one number — configArray conventions, vector types, backported properties, and when to stop bending the model and add a service instead.

    4 min read

  10. 16Intermediate

    Electric vehicles and charging

    The property set that only exists on an EV — battery level, charge state, port status, range — and why an estimate the driver does not trust is worse than no estimate at all.

    7 min read

  11. 17Intermediate

    Location, GNSS and vehicle sensors

    Why positioning in a car is both better and harder than on a phone — satellite fixes, dead reckoning through tunnels, wheel ticks, and the sensors Android does not own.

    6 min read

Car Service & Framework

CarService internals, the android.car API surface, occupant zones, watchdog, telemetry, and adding a subservice of your own.

  1. 18Advanced

    How Binder and AIDL actually work

    Every car API call crosses a process boundary. What that costs, what a Parcel is, why thread pools run out, and why a slow Vehicle HAL shows up as jank in an unrelated app.

    10 min read

  2. 19Advanced

    Inside Car Service

    The system service that owns vehicle state, audio, power and users — how it starts, how its subservices fit together, and how to read its dumpsys output like a professional.

    5 min read

  3. 20Intermediate

    The android.car API map

    Which manager owns what, which permission each needs, and how to work out whether the thing you want to build is even possible on AAOS.

    4 min read

  4. 21Advanced

    The headless system user model

    Why user 0 never reaches the screen, what actually happens during a user switch, and the assumptions from phone Android that will break your automotive app.

    5 min read

  5. 22Advanced

    Occupant zones and multi-display

    Seats, displays and users as a graph — how a cockpit with three screens and two logged-in people is modelled, and what breaks when you assume there is one of each.

    3 min read

  6. 23Intermediate

    CarWatchdog and process health

    The service that pings your process, counts your disk writes, and kills you when either goes wrong — plus how to stay on the right side of it.

    4 min read

  7. 24Advanced

    Telemetry and vehicle diagnostics

    CarTelemetryService for platform metrics, CarDiagnosticManager for OBD-II frames, and the privacy boundary you must not cross when collecting either.

    4 min read

  8. 25Advanced

    Adding your own Car subservice

    The full shape of an OEM system service — AIDL, manager class, registration, permissions, dump() and the threading rules that keep Car Service alive.

    4 min read

  9. 26Intermediate

    Time, clocks and time zones

    Getting the time right in a vehicle is genuinely hard — three different clocks, no network for weeks, a driver who crosses borders, and a timestamp field that fails silently if you pick the wrong one.

    6 min read

HMI, System UI & UX

CarSystemUI, driver distraction rules, theming, notifications, the launcher, and the input devices phones never had.

  1. 27Intermediate

    CarSystemUI and the screen frame

    The system bars, HVAC panel and notification surface an OEM inherits and must make its own — what CarSystemUI owns, and where your app's pixels actually begin.

    4 min read

  2. 28Intermediate

    Driver distraction and UX restrictions

    The framework enforces safety rules on your UI whether you cooperate or not. What the restrictions are, how they are configured, and how to build an interface that degrades gracefully.

    4 min read

  3. 29Intermediate

    Car UI Library and RRO theming

    How one AOSP codebase produces a Volvo, a Polestar and a GM head unit — component libraries, runtime resource overlays, and the discipline that keeps them maintainable.

    4 min read

  4. 30Intermediate

    Automotive notifications

    Ranking, heads-up rules, read-aloud and the distraction filter — why a notification that works on a phone can be invisible, silent or blocked in a car.

    3 min read

  5. 33Intermediate

    Accessibility in a vehicle

    Screen readers, large text and switch access in a car — where automotive accessibility differs from a phone, and why the distraction rules and accessibility rules sometimes pull in opposite directions.

    6 min read

  6. 34Intermediate

    Car Settings and preferences

    Where every vehicle configuration surface lives — adding an entry, keeping it usable while driving, and deciding whether a setting belongs to the car, the driver, or neither.

    5 min read

Apps & Media

Building the apps drivers actually use — media, navigation, assistant — and the template system that keeps them safe.

  1. 35Intermediate

    Building a media app for AAOS

    You do not draw the UI — you serve a browse tree and a session, and the car renders it. The contract, the constraints, and the mistakes that make an app unusable while driving.

    4 min read

  2. 36Intermediate

    The Car App Library and templated apps

    Navigation, point-of-interest and IoT apps are built from templates, not layouts. What the constraint buys you, what it costs, and how the template host actually works.

    4 min read

  3. 37Advanced

    Navigation apps and cluster guidance

    The navigation template, the map surface, and pushing turn-by-turn instructions to the instrument cluster so the driver never looks at the centre stack.

    3 min read

  4. 38Intermediate

    Voice assistants and hands-free interaction

    The only interaction model that is genuinely safe at speed. How the assistant slot works, how apps expose actions to it, and why voice is not a feature you bolt on.

    3 min read

  5. 39Beginner

    Getting an app onto a vehicle

    Play Store on GAS builds, OEM stores, system-image inclusion and sideloading for development — four very different routes with very different timelines.

    4 min read

Cluster, Camera & Displays

The rear-view camera path, the instrument cluster, and the multi-screen cockpit — where AAOS stops looking like Android.

  1. 40Advanced

    EVS and the rear-view camera

    A legally mandated image in under two seconds, on a system that takes fifteen to boot. How the Exterior View System bypasses the framework, and hands over once Android is ready.

    4 min read

  2. 41Advanced

    The instrument cluster

    Two architectures, one screen behind the wheel — cluster as an Android display, or cluster as a separate safety-rated system Android talks to. What changes for you either way.

    4 min read

  3. 42Advanced

    The multi-screen cockpit

    Passenger displays, rear entertainment and shared surfaces — configuring displays, moving activities between them, and the assumptions that break when there is more than one screen.

    3 min read

  4. 43Intermediate

    Head-up displays

    The smallest screen with the strictest rules — projected onto the windscreen, in the driver's forward view, where anything unnecessary is a hazard rather than a feature.

    4 min read

  5. 44Advanced

    In-cabin cameras and driver monitoring

    A camera pointed at the driver, becoming a regulatory requirement in several markets — how it is architected, why the images never reach Android, and the privacy rules that are not optional.

    6 min read

  6. 45Advanced

    ADAS integration

    Lane keeping, adaptive cruise and emergency braking run on their own safety-rated hardware. What Android receives, what it must never do, and how to display a system you do not control.

    6 min read

Audio

Zones, contexts and buses — why car audio is a routing problem before it is a playback problem.

  1. 46Advanced

    Car audio architecture

    Zones, contexts and buses — why car audio is a routing problem before it is a playback problem, and how the configuration file decides everything.

    5 min read

  2. 47Intermediate

    Audio focus, ducking and interruptions

    Who gets to be heard, what happens to everyone else, and why the sounds that matter most are the ones that must never be interrupted.

    4 min read

  3. 48Advanced

    The audio HAL and routing configuration

    Below CarAudioService: how buses are declared to Android, how the policy engine picks a device, and why an address mismatch produces silence with no error anywhere.

    4 min read

Connectivity & Telephony

Bluetooth profiles, hands-free calling, eCall, and the modem that keeps the vehicle online for fifteen years.

  1. 49Intermediate

    Bluetooth on a head unit

    Four profiles, one paired phone, and a driver who blames the car when any of them drops. Pairing policy, profile priorities and the reconnection behaviour that decides perceived quality.

    4 min read

  2. 50Advanced

    Telephony, hands-free calling and eCall

    Calls routed through the vehicle, and the emergency call the vehicle places by itself — a regulated function that must work when everything else has failed.

    4 min read

  3. 51Intermediate

    Cellular, Wi-Fi and the connected vehicle

    A modem that must work for fifteen years across network generations, a data budget somebody pays for, and a vehicle that is offline more often than it is online.

    4 min read

  4. 52Advanced

    Digital key and phone-as-key

    Unlocking a car with a phone — how the standard works, why Android is deliberately outside the trust path, and the failure case that must always work.

    6 min read

  5. 53Intermediate

    Projection on an AAOS vehicle

    The confusing case: a car running Android Automotive that also hosts Android Auto or CarPlay. Two Androids, one screen, and the handover rules between them.

    5 min read

Power, Boot & Lifecycle

The power state machine, Garage Mode, and the boot-time budget an OEM will hold you to.

  1. 54Advanced

    Power states and Garage Mode

    A head unit is never really off. The CPMS state machine, what Garage Mode is for, and why boot time is the metric an OEM will hold you to.

    5 min read

  2. 55Advanced

    Boot time optimisation

    The milestones an OEM measures, where the seconds actually go, and the changes that move the number — as opposed to the ones that feel productive.

    4 min read

Performance & Optimisation

Memory pressure on constrained hardware, binder saturation, jank, and profiling with Perfetto.

  1. 56Advanced

    Memory pressure and the low-memory killer

    Head units ship with the RAM the bill of materials allowed, not the RAM you wanted. What lmkd kills and in what order, and how to keep your process out of the queue.

    4 min read

  2. 57Advanced

    Profiling with Perfetto

    Jank, binder saturation and the scheduling problems that only appear on a loaded head unit — how to capture a useful trace and what to look for in it.

    4 min read

  3. 58Intermediate

    App startup and perceived responsiveness

    The driver does not measure milliseconds — they notice hesitation. What to optimise, what to fake honestly, and the budgets that make a head unit feel solid.

    4 min read

  4. 59Intermediate

    Storage, partitions and flash wear

    Where everything lives on a head unit, and why the flash memory has a write budget that must last fifteen years — the constraint that explains CarWatchdog and Garage Mode.

    6 min read

Security & Hardening

SELinux for vehicle HALs, the car permission model, verified boot, and the keys that sign a vehicle image.

  1. 60Advanced

    SELinux for vehicle HALs

    Why a correct HAL still returns nothing, how to read an AVC denial, and the policy you must write for any process that touches the vehicle network.

    4 min read

  2. 61Advanced

    Car permissions and the Treble boundary

    Which permissions an ordinary app can hold, why anything that actuates the vehicle is signature-level, and the partition rules that will not bend for your schedule.

    4 min read

  3. 62Advanced

    Verified boot and image integrity

    How a vehicle refuses to run software that is not its own — the chain of trust from the bootloader to /system, and what happens when a link is broken.

    4 min read

  4. 63Advanced

    Signing keys and key management

    Which key signs what, why the AOSP test keys must never leave a lab, and how app signing works when the OEM owns the platform key.

    4 min read

Quality, Compliance & Safety

CTS, VTS and the CDD, functional safety, automotive cybersecurity regulation, and what actually blocks a launch.

  1. 64Intermediate

    CTS, VTS and the CDD

    What 'Android compatible' actually means, which suite tests which layer, and how compliance failures block a launch — usually late, and usually predictably.

    4 min read

  2. 66Advanced

    Automotive cybersecurity: UN R155 and ISO 21434

    Unlike functional safety, this one lands squarely on Android. Type approval now requires a cybersecurity management system, and that has concrete consequences for how you build and update.

    4 min read

  3. 67Intermediate

    Homologation and regional variation

    The approval process that decides whether a vehicle can be sold in a market — and the surprising number of software behaviours it constrains.

    3 min read

SDV & Standards

VSS, AUTOSAR, SOME/IP and Eclipse Kuksa — bridging the vehicle network to the Android middleware.

  1. 68Advanced

    VSS and the Eclipse Kuksa databroker

    The Vehicle Signal Specification as a shared contract between ECU, platform and HMI teams — and how to test the whole signal path without a vehicle.

    5 min read

Platform Build & Release

Soong, product configuration, build infrastructure that scales, and shipping an update to a vehicle in the field.

  1. 70Intermediate

    Soong, Android.bp and the AOSP build

    How AOSP actually builds — blueprint files, modules, visibility and the partition a module lands on. Enough to add a module and understand why yours does not build.

    3 min read

  2. 71Advanced

    Creating a device target

    Product config, device config and board config — how a lunch target becomes an image, and where to put the hundreds of settings that make a head unit an OEM's rather than AOSP's.

    3 min read

  3. 72Advanced

    CI for an AOSP programme

    Full builds take hours and there are dozens of engineers. Caching, incremental strategy, artefact management and what to actually gate on.

    4 min read

  4. 73Advanced

    OTA updates and A/B partitions

    Updating a vehicle in a customer's driveway, with no way to recover it if the update fails. Seamless updates, rollback, and the constraints a metered link and a parked battery impose.

    4 min read

  5. 74Advanced

    Kernel, device tree and display bring-up

    Below Android entirely — how the kernel learns what hardware exists, why a new board shows a black screen, and the layer where automotive projects lose the most schedule.

    6 min read

Testing & Debugging

The commands that tell you what the platform is doing, and automation that survives a real head unit.

  1. 75Intermediate

    The automotive debugging toolkit

    The commands that actually tell you what the platform is doing — a triage order that resolves most AAOS defects before you open an IDE.

    5 min read

  2. 76Intermediate

    UI test automation on head units

    Espresso, UI Automator and the vehicle state your tests must fake. Building a suite that runs on real hardware and does not become the thing everyone ignores.

    3 min read

  3. 77Advanced

    Native crashes, tombstones and ANRs

    When a process dies or freezes, Android leaves behind a detailed record. Reading it turns 'the head unit rebooted' into a specific line of code.

    6 min read

  4. 78Intermediate

    Logging strategy on a vehicle

    What to log, at what level, and where it goes — balancing a defect you may only ever see once against flash memory that has to last fifteen years.

    6 min read