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.
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: