This page describes features and enhancements in the Android Automotive OS (AAOS) 25Q4 release. AAOS 25Q4 is an official golden release. 25Q4 offers eight new features and addresses 180 issues.
AAOS 25Q4 uses API level 36.
Features
This AAOS release provides the new features described here.
Framework
Rotary support for Jetpack Compose:
Android 14 and higher: AAOS provides basic built-in rotary support for Jetpack Compose user interfaces, including controller rotation and nudging.
Android 12, Android 12L, and Android 13: AAOS provides limited rotary support for Compose UIs. Controller rotation works with an app-side workaround. We don't support nudging.
To learn more, see the View Compose Activity demo in the
RotaryPlaygroundapp. Get the source code for this app on thecar-apps-devbranch.
Performance and system health
- Stop apps of previous users: To reduce user switch latency and memory footprint, the system stops apps of the previous user earlier in the user switch process.
System Experience
Scalable UI
AAOS adds an automotive-specific windowing solution to support OEMs to develop Advanced windowing experiences with Scalable UI in a secure, compliant, and cost-effective way. This framework lets developers to design a windowing structure with a declarative language in XML configurations.
Task focus in Scalable UI: Introduces a set of rules to determine which task receives focus in a multi-window environment (such as opening and closing panels). A new
onTransitionattribute in theFocustag provides more granular control.Automatic restart mechanism in Scalable UI: Scalable UI panels now gracefully handle app crashes by relaunching the faulty apps. We introduce an automatic task restart mechanism to address unexpected task terminations in UI panels, which you configure with a new
<Restart>XML tag to define a restart policy and the maximum number of retries.Performance improvements when dragging decor panels and performance instrumentation: AAOS provides a performance uplift for interactive panel drag animations. In addition, it adds instrumentation to the Scalable UI library to measure dissonance during key user journeys.
OEM Perfetto traces provide additional metadata reporting specific to what is happening in windowing and in the Scalable UI library.
Panel decor views adapt and respond to theme changes: Panel theming adapts to theme changes. For example, between light and dark modes or other theming changes at the SysUI level.
User debugging commands and developer tooling:
Shell commands output current panel state and send events through adb: Use
adbcommands to change visual panel states, such as opening or closing a panel.The shell command triggers an event on the system. For example, to close the app grid panel when it's open, run
adb shell cmd statusbar carsysui-dispatch-event close_app_grid.Panel state is included in the activity dumpsys: The activity dumpsys includes panel state. Use debugging tools (adb command) to get panel states with dumpsys (
=adbshell command).The command displays the current panel states when no visual action occurs. The command is:
adb shell cmd statusbar carsysui-dump-panelstates
OEM logging and data tracking
- Adds logging to car data subscription events. To improve data tracking, we enable user connectivity logging for OEMs.
Core apps
To help verify CDD and CTS compliance for Car Ready Mobile Apps (CaRMA), we enhance compatibility and usability for third-party apps in automotive environments. To demonstrate best practices for seamless navigation, we add reference samples for back affordance.
Activity blocking activity (ABA) enhancements: To improve lifecycle management, AAOS refines OnStop ABA behavior.
Safe rectangle for app rendering. To help verify content visibility and to avoid occlusion, AAOS defines a designated app display area.
DPI Scaling: AAOS optimizes UI elements based on display resolution and viewing distance.
Per-app overrides: AAOS lets you to control app behavior, such as orientation and aspect ratio.
Compatibility improvements: AAOS includes core Android functionality, such as DocumentsUI, and adds improvements to third-party, app-facing compatibility.
Alternative app controls: AAOS enables users to control non-media center audio while driving, specifically from communication apps.
VHAL properties
- Property enum
@SystemApitag: AAOS enables third-party access to enums that properties recently designated as accessible by third-party apps.
Audio
- Fade and Balance APIs: AAOS improves first-party apps to retrieve a user's current fade and balance settings. These audio levels persist for each user across ignition cycles. This update provides parity with other user-controlled audio settings in the car audio APIs.
Privacy
Google Terms of Service gating: You can disable apps until the user accepts the Google Terms of Service. Icons for disabled apps appear in gray to indicate a state of inactivity.
Tapping a disabled app prompts users to accept the Google Terms of Service.
In Android 25Q4, this feature is compatible with OEM experiences that place persistent Google experiences on a background panel configured using the Scalable UI. For example, a persistent Google Maps activity set as a Home screen experience appears greyed out until a user accepts Google Terms of Service gating.
Compliance
AAOS tests Android compliance on Cuttlefish and internal reference hardware with these test suites on GSI: CTS, CTS-V, ATS, ATS-V, STS, VTS, and CTS on GSI.
No failures require fixes in Android 16 code (android16-release) or the
Android 16 test branch (android16-m1-tests-dev), except for the issues listed
below.
We plan to address these compliance issues in an upcoming AOSP release.
CtsAppSecurityHostTestCases:RoleSecurityTest#cannotGetSmsRoleHolderForAnotherUserCtsMediaHostTestCases:AudioServiceRebootHostTest#testVolumePersists_AfterRebootCtsPermissionUiTestCases:PermissionTest23#testInteractiveGrant
Android 25Q4 test failures
This section lists failing test cases for Android 25Q4 that are specific to Cuttlefish only. The failing tests pass on the internal reference hardware. We confirm any inconsistent test cases on Cuttlefish and the internal reference hardware.
We determine test inconsistency by evaluating the results of 15 consecutive builds during which multiple groups of test failures occur.
| Test case | Occurrences |
|---|---|
CtsWindowManagerBackgroundActivityTestCases |
6 |
CtsJvmtiAttachingHostTestCases |
5 |
CtsViewTestCases |
5 |
CtsStagedInstallHostTestCases |
3 |
CtsUiRenderingTestCases27 |
2 |
CtsWindowManagerDeviceActivity |
2 |
CtsAppOpsTestCases |
1 |
CtsNetTestCasesLegacyApi22 |
1 |
CtsStatsdAtomHostTestCases |
1 |
CtsUiRenderingTestCases |
1 |