ADAS vehicle properties  |  Android Open Source Project Skip to main content Docs What's new? Release notes Latest security bulletins Latest Compatibility Definition Document (CDD) Site updates Getting Started About Start Download Builds Test Create Contribute Community Tools, build, and related reference Security Overview Bulletins Features Testing Best Practices Core Topics Architecture Audio Camera Connectivity Data Display Fonts Graphics Interaction Media Performance Permissions Power Runtime Settings Storage Tests Updates Virtualization Compatibility Compatibility Definition Document (CDD) Compatibility Test Suite (CTS) Android Devices Cuttlefish Enterprise TV Automotive Overview Software Defined Vehicle In-vehicle Infotainment Release Details Reference HIDL HAL Trade Federation Security Test Suite Android Code Search / English Deutsch Español – América Latina Français Indonesia Italiano Polski Português – Brasil Tiếng Việt Türkçe Русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 – 简体 中文 – 繁體 日本語 한국어 Sign in Documentation What's New? Getting Started Security Core Topics Compatibility Android Devices Automotive Reference Docs More What's New? Getting Started Security Core Topics Compatibility Android Devices Automotive Reference Android Code Search Overview What's new? What is Android Automotive? Terminology Software defined vehicle Overview Terminology Get started Overview Development environment Local development Cloud development Overview Organization setup Code location Download, build, and run IDE setup Access GitHub repositories Understand AAOS SDV System architecture SDV architecture Key concepts Logical architecture Service bundle naming conventions Configure the Orchestrator Service bundle identity Time sync Health monitoring Quality of service scheduling Control vehicle and power management Security concepts Authorization Overview Deployment Authorization policy Enforcement Debug permissions violations VM-level authorization policy VM identity and attestation Overview SDV profile for DICE vvmconfig and vvmtruststore Mesh status and provisioning Device trust Update concepts Service bundle updates A/B system updates Update Manager OEM AB partition updates Develop SDV services Quick start: Create and execute SDV service bundles Vehicle Services IDL (VSIDL) Overview Define messages and RPC services Define service architecture Generate middleware Implement business logic Build and deploy service bundles Automatic catalog updates and LSP integration Language specification SDV VSIDL compatibility guidelines VSIDL Provider for reflection Service bundle metadata Core code samples Handle suspend and resume Work with Automotive Services Overview Configuration and calibration Diagnostics User preferences architecture and implementation guide Asynchronous Rust Platform integration guides SDV Core integration Integration guide Guest system (VM image) requirements SDV Core bootloader APEX signing SDV Media integration Overview SDV Media requirements Graphics rendering on SDV Media SDV Media: Manage displays Use cameras SDV on hardware SDV on QNX QVM sample configurations QVM sample configuration for SDV Core QVM sample configuration for SDV Media QVM sample configuration for SDV IVI VM identity and attestation SDV bootloader Android HLOS CDI handover Configure identity for native services SOME/IP integration guide Overview Write a SOME/IP mapping file Write a SOME/IP type definition Implement the SOME/IP stack Integrate SOME/IP with SDV Optimize performance Use the SDV Gateway on IVI The Generic Kernel Image (GKI) project Partition layout Test, debug, and verify performance Debug SDV Troubleshoot middleware API failures Use tracing to gain insights into system performance SELinux policies for device tests Detect security violations SDV system tests SDV Test Framework library SDV system test creation Solution guides Display Safety Overview Get started Code structure DriverUI HAR camera view HAR platform abstraction layer HAR graphics pipeline Audio chimes Performance tracing for HAR Safety design toolchain Telemetry Overview SDK Overview Rust telemetry client library Overview Rust telemetry client library API Configurable Publisher Registry library Java protobuf descriptor generator tool Metrics Configuration Generator Overview Deployment Vehicle signal catalogs API reference Metrics configuration concepts Data sources Configurable Publisher Registry Metrics configuration generation request JSON format Cloud Telemetry Simulation Overview Deployment guide User guide In-vehicle Infotainment Overview Guidelines for development Car service feature control App compat Car display compatibility Audio Overview Audio focus Car audio configuration Configurable audio policy engine Audio control HAL Multi-zone audio routing Car audio plugin service Volume management Connect an input device in AAOS Microphone input Audio power management Manage audio resources during suspend Audio configuration AAOS flags Windowing with Scalable UI Overview Implement advanced windowing Consider the app ecosystem Maximize test compliance with WindowManager invariants Configure advanced windowing Configure a panel Configure a variant Configure a transition Configure an event Configure an action Implement heads up notification panels Customize system bars Integrate Setup Wizard Camera Overview Android Camera Service Overview Enable multi-client cameras Extended View System Overview Event and frame notification mechanism Program camera control parameters Changes to camera and system configuration Frame metadata Automotive display proxy service Multi-camera support Vehicle camera HAL Migrate to Camera2 Overview Migrate to Camera2 Camera2 API mapping Car framework core Car Settings Overview Add Car Settings Rearrange Car Settings Distraction optimization in Car Settings Car Settings search indexing Dual pane customization Preference subtitles Customize status bar system icons Connectivity Configure internal Ethernet networks Bluetooth Per-application network selection (PANS) Maintain hotspots between driving sessions Device management for Automotive Displays and input Overview Monitor status Key input Instrument Cluster API OEM custom inputs Multi-Display Communications API Automotive Window Layering Driver distraction Driver distraction guidelines Car User Experience Restrictions rules Consume car driving state and UX restrictions Flash wear management Location Automotive location bypass allowlist policy Automotive Location Bypass API Get coarse location Notifications Overview Set up notifications Heads-up notifications Notification access and notification listener policy Throttle and suppress notifications Performance analysis Power Overview Power policy Power management Manage boot time Garage Mode Radio Overview Broadcast radio HAL Radio control implementation Set up remote access Rotary controller Overview Develop apps Develop apps without the Car UI library Integration guide for OEMs Security Overview Secure developer options Enable MACsec for Ethernet features Debug Restriction Controller integration guide Use vehicle bound file encryption Manufacturer guide for long-term Android security Vehicle system isolation OTA updates System UI Implement the System UI SystemUIOverlayWindow management system SystemUIOverlayWindow codelab Time Overview Configure AAOS time sources Automatic time detection Time zone options Location time zone detection Unbundled apps Overview Release notes Integrate unbundled apps AOSP host integration guide Integrate the AOSP host Media apps with Car App Library OEM design tokens Control Center reference app Overview Customize the reference app Technical details Integrate AppCards Overview Create an AppCard Configure an AppCard host Try the AppCard codelab App Lock Car Messenger Car UI library Overview Integrate the Car UI library into apps Customize apps Car UI plugins List of packages containing car-ui-lib Add custom fonts Customize Car UI preferences Customize the toolbar with runtime resource overlays Customization options for CarUiListItem Customize CarUiRecyclerView Car UI library release notes Appendix A, work with RROs Appendix B, customization Appendix C, minimum compatible version for Car UI Plugin API Dashcam Dialer Overview Technical details Customization guidelines Global configurable values Toolbar Debug and test Media Overview System components and user flows Implement radio with Media Customize media Implement a media card Integrate deep links to Media apps Users and accounts Multi-user support Foreground and background user system handling Manage users and accounts Remove packages for the system user User HAL properties Vehicle hardware abstraction layer (VHAL) Overview VHAL interface Property configurations Supported system properties Special properties SEAT and STEERING_WHEEL properties ADAS vehicle properties Reference implementation Debug VHAL Use VHAL with the native client HIDL VHAL HIDL VHAL migration guide HIDL VHAL interface Virtualization Overview Architecture Tools Reference platform Voice Voice assistant Tap-to-Read OEM custom inputs Voice interaction integration guide About voice interaction Integration flows App development Fulfill commands Test and debug Watchdog Overview Monitor flash memory usage Collect performance data Monitor system health Development tools Overview Android Virtual Device Android Virtual Device as a development platform Build your own cloud emulator Extend VHAL property descriptions in the emulator Emulator USB passthrough integration guide USB Port Reset API Pixel devices as development platforms System performance tools Testing tools and infrastructure Overview System performance tools User interface frameworks Network simulation Complete Automotive Tests in a Box (CATBox) Enable fuzzers Spectatio Torq Release details Overview Android Automotive 26Q2 Android Automotive 25Q4 Android Automotive 25Q2 Android Automotive 25Q1 Android Automotive 24Q4 Android Automotive 15 Android Automotive 14 QPR1 Android Automotive 14 Android Automotive 13 QPR3 Android Automotive 13 QPR2 Android Automotive 13 QPR1 Android Automotive 13 Android Automotive 12L Android Automotive 12 QPR3 Android Automotive 11 Unbundled apps What's new? Release notes Latest security bulletins Latest Compatibility Definition Document (CDD) Site updates Getting Started About Start Download Builds Test Create Contribute Community Tools, build, and related reference Security Overview Bulletins Features Testing Best Practices Core Topics Architecture Audio Camera Connectivity Data Display Fonts Graphics Interaction Media Performance Permissions Power Runtime Settings Storage Tests Updates Virtualization Compatibility Compatibility Definition Document (CDD) Compatibility Test Suite (CTS) Android Devices Cuttlefish Enterprise TV Automotive Overview Software Defined Vehicle In-vehicle Infotainment Release Details Reference HIDL HAL Trade Federation Security Test Suite Effective in 2026, to align with our trunk stable development model and ensure platform stability for the ecosystem, we will publish source code to AOSP in Q2 and Q4. For building and contributing to AOSP, use android-latest-release. The android-latest-release manifest branch will always reference the most recent release pushed to AOSP. For more information, see Changes to AOSP. AOSP Docs Automotive ADAS vehicle properties Stay organized with collections Save and categorize content based on your preferences. We've added the following new ADAS properties to Android 14: Automatic emergency braking (AEB) Hands on detection (HOD) Lane centering assist (LCA) Forward collision warning (FCW) Blind spot warning (BSW) Lane departure warning (LDW) Lane keep assist (LKA) Emergency lane keep assist (ELKA) Standard cruise control (CC) Adaptive cruise control (ACC) These new capabilities are illustrated in the following figure. Figure 1. Supported ADAS features. List of properties To support these new features, a list of properties is added to Android 14. They're listed below. Properties ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_DISTANCE AUTOMATIC_EMERGENCY_BRAKING_ENABLED AUTOMATIC_EMERGENCY_BRAKING_STATE BLIND_SPOT_WARNING_ENABLED BLIND_SPOT_WARNING_STATE CRUISE_CONTROL_ENABLED CRUISE_CONTROL_TYPE CRUISE_CONTROL_STATE CRUISE_CONTROL_COMMAND CRUISE_CONTROL_TARGET_SPEED EMERGENCY_LANE_KEEP_ASSIST_ENABLED EMERGENCY_LANE_KEEP_ASSIST_STATE FORWARD_COLLISION_WARNING_ENABLED FORWARD_COLLISION_WARNING_STATE HANDS_ON_DETECTION_ENABLED HANDS_ON_DETECTION_DRIVER_STATE HANDS_ON_DETECTION_WARNING LANE_DEPARTURE_WARNING_ENABLED LANE_DEPARTURE_WARNING_STATE LANE_KEEP_ASSIST_ENABLED LANE_KEEP_ASSIST_STATE LANE_CENTERING_ASSIST_ENABLED LANE_CENTERING_ASSIST_COMMAND LANE_CENTERING_ASSIST_STATE Design themes The following design themes are applied to newly added properties. Property Description ENABLED Properties to indicate if a feature is enabled or disabled. Boolean properties in which true is enabled and false is disabled. Read and Write properties that can be implemented as Read-only. STATE Properties to communicate feature state through a list of predefined states. Int32 properties with defined enums. OTHER field to support backward compatibility. Read-only properties. Mirror or Global area types. Uses values defined in ErrorStates.aidl. Use the getSupportedEnumValues() API in AreaIdConfig.java. Miscellaneous COMMAND properties for features when user input is required. WARNING properties for when state can be represented separately. Other properties to support: Feature variations when applicable. Adjust feature settings when applicable. State diagram examples This section provides state diagrams for a subset of the supported ADAS features to demonstrate how the included properties work together. We've provided examples of the following features. Automatic emergency braking (AEB) Lane centering assist (LCA) Hands-on detection (HOD) Automatic emergency braking Two properties are defined for AEB as described in this table. Property Values AUTOMATIC_EMERGENCY_BRAKING_ENABLED VehiclePropertyType:BOOLEAN AUTOMATIC_EMERGENCY_BRAKING_STATE Defined in AutomaticEmergencyBrakingState.aidl. VehiclePropertyType:INT32 OTHER ENABLED ACTIVATED USER_OVERRIDE ErrorState The following sample state diagram for AEB includes the supported states defined in AutomaticEmergencyBrakingState.aidl. Figure 2. AEB states defined in AutomaticEmergencyBrakingState.aidl. This figure provides an example of AEB when the USER_OVERRIDE state is not supported. Supported states should be specified through the getSupportedEnumValues() API in AreaIdConfig.java. Figure 3. AEB when the USER_OVERRIDE state isn't supported. In the AEB example illustrated in Figure 4, the error that causes AEB to become unavailable is highlighted. This demonstrates how values defined in ErrorState.aidl should be used. These errors don't result in an exception thrown by CarPropertyManager and are instead shared with apps in the same way as any other change to CarPropertyValue. Figure 4. Error causes AEB to become unavailable. Lane centering assist Lane centering assist (LCA) provides three associated and defined properties. Property Values LANE_CENTERING_ASSIST_ENABLED VehiclePropertyType:BOOLEAN LANE_CENTERING_ASSIST_STATE Defined in LaneCenteringAssistState.aidl VehiclePropertyType:INT32 OTHER ENABLED ACTIVATION_REQUESTED ACTIVATED USER_OVERRIDE FORCED_DEACTIVATION_WARNING ErrorState LANE_CENTERING_ASSIST_COMMAND Defined in LaneCenteringAssistCommand.aidl VehiclePropertyType:INT32 ACTIVATE DEACTIVATE The following state diagram illustrates LCA when all the defined states in LaneCenteringAssistState.aidl are supported. Green lines can either be a command initiated from the LANE_CENTERING_ASSIST_COMMAND (when implemented) or initiated through another mechanism in the vehicle and reflect a state change on the Android Automotive OS (AAOS). Figure 5. LCA states defined in LaneCenteringAssistState.aidl. This LCA example highlights an error that causes LCA to become unavailable. This demonstrates how to use the values defined in ErrorState.aidl. These errors don't result in CarPropertyManager throwing an error and are instead shared with apps in the same way that other changes to CarPropertyValue change are shared. Figure 6. Error causes LCA to become unavailable. Hands-on detection These three associated properties are defined for hands-on detection (HOD). Property Description HANDS_ON_DETECTION_ENABLED VehiclePropertyType:BOOLEAN HANDS_ON_DETECTION_STATE Defined in HandsOnDetectionDriverState.aidl VehiclePropertyType:INT32 OTHER HANDS_ON HANDS_OFF ErrorState HANDS_ON_DETECTION_WARNING Defined in HandsOnDetectionWarning.aidl VehiclePropertyType:INT32 OTHER NO_WARNING WARNING ErrorState Illustrated below is an example of HOD, in which all the defined states in HandsOnDetectionDriverState.aidl are supported. Figure 7. HOD when all defined states in HandsOnDetectionDriverState.aidl are supported. In addition to the HANDS_ON_DETECTION_STATE property, HOD also provides a separate warning property, HANDS_ON_DETECTION_WARNING. The state diagram for the HOD warning values is illustrated in Figure 8. Figure 8. HOD when all defined values in HandsOnDetectionWarning.aidl are supported. Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2026-06-17 UTC. [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-06-17 UTC."],[],[]] Build Android repository Requirements Downloading Preview binaries Factory images Driver binaries Connect @Android on X @AndroidDev on X Android Blog Google Security Blog Platform on Google Groups Building on Google Groups Porting on Google Groups Get help Android Help Center Pixel Help Center www.android.com Google Mobile Services Stack Overflow Issue Tracker About Android Community Legal License Privacy Site feedback Manage cookies English Deutsch Español – América Latina Français Indonesia Italiano Polski Português – Brasil Tiếng Việt Türkçe Русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 – 简体 中文 – 繁體 日本語 한국어