Android 虚拟化框架 (AVF) 概览

Android 虚拟化框架 (AVF) 提供安全且私密的执行环境来执行代码。AVF 非常适合以安全为导向的用例,这些用例需要比 Android 应用沙盒提供的安全系数更高、甚至经过正式验证的隔离保证。Android 提供了实现 AVF 所需的所有组件的参考实现。目前,只有 ARM64 设备支持 AVF。图 1 显示了 AVF 的架构:

AVF 架构

图 1. AVF 架构

以下是图 1 中最重要的术语的定义:

apexd 和 zipfuse
安全地装载从主机导入的 APEX 和 APK。
authfs
用于确保在 Android 和 pVM(主机和客户机)之间共享多个文件时的安全性的融合文件系统。
binder
虚拟机间通信的主要方式。
crosvm
一个以 Rust 编写的虚拟机监视器。crosvm 分配虚拟机内存、创建虚拟 CPU 线程,以及实现虚拟设备的后端。
通用内核映像 (GKI)
经过 Google 认证的启动映像,其中包含基于 Android 通用内核 (ACK) 源代码树构建的 GKI 内核,适合刷写到 Android 设备的启动分区。如需了解详情,请参阅内核概览
Hypervisor
AVF 使用的虚拟化技术,也称为 pKVM。即使 Android 或任何其他 pVM 遭到破解,Hypervisor 也会保持已执行代码的完整性和 pVM 资源的机密性。
Java API
VirtualizationService Java API,仅存在于支持 AVF 的设备上。这些 API 是可选的,不属于 thebootclasspath
Microdroid
Google 提供的在 pVM 中运行的迷你版 Android OS。
Microdroid 管理器
管理 pVM 内的 pVM 生命周期,以及实例磁盘。
原生 API
Android 原生开发者套件 (NDK) 的一个子集。
基于内核的受保护虚拟机 (pKVM)
请参阅 Hypervisor
pVM 固件 (pvmfw)
在 pVM 上运行的第一个代码,pvmfw 会验证载荷并推导每个虚拟机的 Secret。
受保护的虚拟机 (pVM)

与主 Android 操作系统(“主机”)一起运行的互不信任的隔离执行环境(“客户机”)。pVM 由 pKVM 管理。

与现有的可信执行环境 (TEE) 相比,pVM 可提供更丰富的环境,包括一个名为 Microdroid 的迷你版 Android 分发平台。pVM 可以动态使用,并且提供一组标准 API 供所有支持它们的设备使用。

VirtualizationService

管理 pVM 生命周期的 Android 服务。

后续操作

  • 如果您想更好地了解对 AVF 的需求,请参阅为什么选择 AVF?
  • 如需了解如何使用 AVF 进行隔离编译,请参阅用例
  • 如果您想更深入地了解 AVF 参考实现的架构,请参阅 AVF 架构
  • 如果您想了解 Microdroid,请参阅 Microdroid
  • 如果您对 AVF 如何处理安全性事宜感兴趣,请参阅安全性
  • 如需了解虚拟化服务的作用,请参阅 VirtualizationService
  • 如需了解 AVF 的源代码或有关各个组件的深入说明,请参阅 AOSP 代码库