Virtualization for the Masses: Exposing KVM on Android
summary
Project exposes KVM on Android by running a tiny hypervisor at EL2 as a self-contained Protected KVM payload embedded in the GKI kernel; patches land in Linux 5.9/5.10. It uses a standalone stage‑2 page‑table walker and an EL2 buddy allocator bootstrapped via a temporary PGD, and the userspace platform is CrosVM. Vendor blobs run in guests booted by a template Rust bootloader. Result: isolation mostly works, virtio runs with bounce buffering, zero‑copy/shared‑memory and full IO passthrough remain unsolved.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 3:00Generic Kernel Image
- 6:10Virtualization on Android
- 9:22ARM exception model
- 14:55Hardware virtualization
- 15:55Exception level diagrams
- 24:13El2 Security Improvements
- 27:04Problems with KVM
- 29:35Page Table Walker
- 31:20bootstrap
- 33:19page table
- 35:42template bootloader
- 37:25CrossVM
- 39:34Vertio
- 40:26Bounce buffering
- 43:07Next steps
related talks
16mVirtualization in Android
09mCuttlefish and Kernel Dev
13mAdding Third-Party Hypervisor to Android Virtualization Framework
13mPorting Android Automotive on Xen
15mCan mainline Linux run on Android without vendor hooks
35mBest practices in using the Android Emulator
21mExtending Cloud Native Boundaries! Bringing KubeEdge Workloads to AndroidOS
25mRun it Locally! How to run your emulators in the cloud.
