Android 虛擬化框架 (AVF) 概述

Android 虛擬化框架 (AVF)為執行代碼提供安全和私有的執行環境。 AVF 是面向安全的用例的理想選擇,這些用例需要比 Android 應用程序沙箱提供的隔離保證更強大、甚至經過正式驗證的隔離保證。 Android 提供了實現 AVF 所需的所有組件的參考實現。目前,AVF 僅在 ARM64 設備上受支持。圖 1 顯示了 AVF 的架構:

AVF架構

圖 1. AVF 架構

以下是圖 1 中最重要術語的定義:

頂點和 zipfuse
安全地掛載從主機導入的 APEX 和 APK。
認證
用於在 Android 和 pVM(主機和來賓)之間安全共享多個文件的融合文件系統。
活頁夾
VM 間通信的主要方式。
crosvm
用 Rust 編寫的虛擬機監視器。 crosvm 分配 VM 內存,創建虛擬 CPU 線程,並實現虛擬設備的後端。
通用內核映像 (GKI)
經谷歌認證的啟動映像,包含從Android通用內核(ACK)源代碼樹構建的GKI內核,適合燒寫到Android設備的啟動分區。有關詳細信息,請參閱內核概述
管理程序
AVF 使用的虛擬化技術,也稱為pKVM 。管理程序維護已執行代碼的完整性和 pVM 資產的機密性,即使 Android 或任何其他 pVM 受到威脅。
Java接口
VirtualizationService Java API,僅存在於支持 AVF 的設備上。這些 API 是可選的,不是thebootclasspath的一部分。
微型機器人
Google 提供的在 pVM 中運行的迷你 Android 操作系統。
機器人管理器
管理 pVM 生命週期、pVM 內部和實例磁盤。
原生API
Android Native Developers Kit (NDK) 的一個子集。
受保護的基於內核的虛擬機 (pKVM)
請參閱管理程序
pVM 固件 ( pvmfw )
在 pVM 上運行的第一個代碼pvmfw驗證有效負載並導出每個 VM 的秘密。
受保護的虛擬機 (pVM)

與主要 Android 操作系統(“主機”)一起運行的相互不信任的隔離執行環境(“來賓”)。 pVM 由 pKVM 管理。

與現有的可信執行環境 (TEE) 相比,pVM 提供了更豐富的環境,包括一個名為Microdroid的迷你 Android 發行版。 pVM 可以動態使用,並提供一組標準的 API,可用於所有支持它們的設備。

虛擬化服務

管理 pVM 生命週期的 Android 服務。

下一步是什麼?

  • 如果您想更好地了解對 AVF 的需求,請參閱為什麼使用 AVF? .
  • 要了解 AVF 如何用於獨立編譯,請參閱用例
  • 如果您想更深入地了解 AVF 參考實現的架構,請參閱AVF 架構
  • 如果您想了解 Microdroid,請參閱Microdroid
  • 如果您對 AVF 如何處理安全性感興趣,請參閱安全性
  • 要了解虛擬化服務的作用,請參閱VirtualizationService