The Vehicle Hardware Abstraction Layer (VHAL) interface defines the properties OEMs can implement and contains property metadata. For example, whether a property is an integer and which change modes are allowed. The VHAL interface is based on accessing (reading, writing, and subscribing) a property, which is an abstraction for a specific function.

  • In Android 13 and higher, VHAL migrated to AIDL at IVehicle.aidl
  • In Android 12 and lower, VHAL is defined with HIDL language in IVehicle.hal

CarService and Android native components support HIDL and AIDL backend and prefer the AIDL backend when it's available.

Guidance Description
RECOMMEND For existing HIDL VHAL implementations, migrate to the newer AIDL interface.
STRONGLY RECOMMEND For new VHAL implementations, use the AIDL interface.

To learn more about the VHAL, see these pages: