Virtualization allows single or multiple instances of the Android Automotive OS (AAOS) to run as a guest virtual machine (VM) alongside other automotive operating such as an instrument cluster or an instance of OS running the advanced driver assistance systems (ADAS) on an automotive System-On-Chip (SoC). This is achieved by leveraging an open-standards based framework for virtualization called VirtIO. VirtIO provides a well-established interface that enables AAOS to run against a common virtualized platform that, in turn, allows an AAOS guest VM to be portable across different hypervisor systems and/or hardware platforms.

AAOS virtualization architecture
Figure 1. AAOS virtualization architecture

To enable automotive use cases, the VirtIO specification has been extended to include devices such as virtio-snd for audio, virtio-scmi for sensors, power state management, clock management, and performance management, and virtio-video for playback use cases. VirtIO drivers corresponding to these devices have also been added to the Linux kernel (virtio-snd driver, IIO SCMI Sensor driver, and virtio-video driver).

AAOS provides a reference device called trout, which supports virtualized subsystems, such as:

  • Audio
  • Dumpstate
  • Extended View System (EVS)
  • Garage Mode
  • Graphics
  • Sensors
  • Touchscreen input
  • Vehicle HAL
  • Bluetooth
  • Global navigation satellite system (GNSS)

See these articles to learn more about Virtualization on AAOS: