The modern vehicle is transforming from a mere mode of transportation into software on wheels. At the forefront of this evolution is the Android Automotive OS (AAOS), which is an operating system built specifically for cars based on Android principles. More than just a phone projection onto the car display (like Android Auto), AAOS is the car's native operating system, offering deeper integration with car functions. In this article, we dive deep into the core of the operating system—the Car Framework.
Android Automotive OS: Beyond the Smartphone
Android Automotive OS is a specially designed OS for the automotive environment with much greater control over the car's hardware. Since it shares the codebase with Android, AAOS leverages Android's security model, global ecosystem, and developer tooling while adding features such as interaction with the CAN (Controller Area Network) bus, driver safety, and infotainment. Original Equipment Manufacturers (OEMs) can customize the OS to build their own branding and have their car-specific hardware processing while still standardizing the OS across all of their cars.
Key Distinctions from Traditional Android
- Hardware integration: AAOS is designed for deep integration with the vehicle hardware. Vehicle data, such as HVAC, speed, fuel level, etc., can be accessed by the OS. This enables the applications to use this data to optimize their apps further.
- CarService: This is User 0 (the headless system user) service, which is running in the background and provides an integration with the car hardware. Its specialized nature makes it distinct from core Android system services since Android is also used by other form factors such as Phone, TV, Wear, and XR, which will not use the Car APIs.
All the features on top of the traditional Android are provided by the Car Framework, which sits in the middle of the applications and the hardware.
The Car Framework: In-Vehicle Experiences
The Car Framework is a collection of services, managers, and a Hardware Abstraction Layer (HAL) that enables the application to interact with the vehicle's hardware and software in a standardized way. At the heart of the framework is the CarService and the various CarManagers.
For Car, instead of extending the System Server process, a new service called the CarService is added, which provides the implementation of car-specific functionalities. This is a service that is running as user 0 in the background and enables interaction with the HAL. A non-privileged application will not directly have access to the APIs provided by the CarService. Some of the important CarService services are CarPowerManagementService, CarUserService, and CarUxRestrictionsManagerService. [1]
CarManagers, on the other hand, provide APIs to the applications using which they can interact with the CarService. The APIs provided through the managers follow the standard Android guidelines and provide a consistent interaction model. Each CarXYZService will have a corresponding CarXYZManager, which will communicate using the binder interfaces for cross-process communication since the CarService and the application (via the CarManager) are typically running in different processes.
Applications have the option of using both the Core Framework APIs and the Car Framework APIs for their use cases. If an application wants to use the Car Framework APIs, they need to create a Car object using which they can then talk to the specific CarServices using the CarManagers. A class called the CarServiceHelperService, which is present in the System Server process, launches the CarService on boot up, which then connects to the Vehicle HAL and initializes all the services. It is important to note that every service inside the CarService is not running as its own process but is rather an independent object in the CarService process.
We spoke to Rachit Jain, who is an engineer on the Android Automotive OS team at Google and is specifically working on the Car Framework and WindowManager, to get more insights. Rachit graduated from New York University with a Computer Science degree, primarily dealing with Systems. He is an active researcher and innovator who has contributed to furthering the field of systems. His exceptional contributions and expertise in his field were further acknowledged by the Institute of Electrical and Electronics Engineers (IEEE), a globally recognized professional organization. This prestigious body elevated his membership status to that of Senior Member within the IEEE. This distinction is a significant honor, as it is conferred upon only the top 10% of IEEE members for significant accomplishments in the field. His prior tenure at Samsung was marked by significant innovations, which resulted in him being granted multiple patents. He joined Google as a Software Engineer and has been contributing to the CarFramework stack since 2022. His work is centered on the interaction model between the Car APIs and the CarService while upgrading the performance of the system as a whole. He is also one of the major contributors to the Android Automotive OS WindowManager stack, which is responsible for the window management across all the displays and different configurations on a single display. He was also a pivotal engineer in the development of the concurrent multi-user functionality, which was released recently [2].
Rachit talked about another important aspect of the Car Framework—minimizing driver distractions. With safety of paramount importance, OEMs using the CarUxRestrictionsManager can limit driver distractions, such as no video or keyboard, while the car is in motion. Doing so enables the driver to remain focused on driving. His recent work about the BlockingUI, which is a way of blocking unsafe content from appearing on the screen while driving, got published as part of the new feature set [3]. He dives deep into the feature he built, which served as the base for getting more media applications to the car by enabling video applications to still play audio content while the car is driving [4]. This advancement allows apps to enter the automotive environment more effortlessly and with reduced developer workload. Rachit discusses the updated architecture, which includes new APIs for OEMs. These APIs will enable greater control over BlockingUI parameters, such as determining its finishing.
He further talked about how the CarFramework and WindowManager cater to the diverse needs of automotive manufacturers. The OEMs are provided with easy-to-use APIs to the OEMs, with many customization options available. He said that the team ensures that customizations can be provided since the OS in itself is a generic OS, which any OEM can use, as their requirements can vary.
With more OEMs starting to use AAOS, Rachit envisions a future where AAOS can become the standard OS for cars. He is excited about a future where the Car Framework can provide a deeper integration with the vehicle hardware to enable the AI use cases, as well. He is also an open-source promoter and is looking forward to more contributions from the community in AAOS.
Conclusion
By offering a robust and integrated operating system, Android Automotive OS will only further empower OEMs to deliver high-quality products. Developers create innovative applications, engineers contribute to the framework, and hardware partners add support through HAL implementations. This collective effort will propel AAOS forward and realize the vision of the software-defined, intelligent vehicle. With AAOS gaining more popularity, experts like Rachit, who are working on the CarFramework and WindowManager, are leading the charge of making your car a "software on wheels" truly happen. The future of innovations in cars is just beginning.
References
[2] https://source.android.com/docs/automotive/start/releases/aaos-24q4#car-framework
[3] https://youtu.be/WYqWgi6fI40?si=Qbs0jUzaDi_fjAa9
[4] https://android-developers.googleblog.com/2025/05/android-for-cars-google-io-2025.html