Android 虛擬化架構 (AVF) 總覽

Android 虛擬化架構 (AVF) 提供安全且私密的程式碼執行環境。AVF 非常適合注重安全性的用途,因為與 Android 應用程式沙箱提供的保證相比,AVF 可提供更強大,甚至是經過正式驗證的隔離保證。Android 提供實作 AVF 所需所有元件的參考實作方式。AVF 僅支援 ARM64 裝置。圖 1 顯示 AVF 的架構:

AVF 架構

圖 1. AVF 架構。

以下是圖 1 中最重要的詞彙定義:

apexd 和 zipfuse
安全掛接從主機匯入的 APEX 和 APK。
authfs
透過 FUSE 檔案系統,在 Android 和 pVM (主機和訪客) 之間安全地共用多個檔案。
繫結器
虛擬機器間的主要通訊方式。
crosvm
以 Rust 編寫的虛擬機器監視器。crosvm 會分配 VM 記憶體、建立虛擬 CPU 執行緒,並實作虛擬裝置的後端。
通用核心映像檔 (GKI)
經 Google 認證的開機映像檔,內含從 Android Common Kernel (ACK) 來源樹狀結構建構的 GKI 核心,適合刷入 Android 裝置的開機磁碟分割區。詳情請參閱「核心總覽」。
管理程序
AVF 使用的虛擬化技術,也稱為 pKVM。即使主機 Android 或任何其他 pVM 遭到入侵,管理程序仍可維護執行程式碼的完整性,以及 pVM 資產的機密性。
Java API
VirtualizationService Java API,僅適用於支援 AVF 的裝置。這些 API 為選用項目,不屬於 thebootclasspath
Microdroid
Google 提供的迷你 Android OS,可在 pVM 中執行。
Microdroid 管理員
管理 pVM 生命週期、pVM 內部和執行個體磁碟。
原生 API
Android Native Developers Kit (NDK) 的子集。
受保護的以核心為基礎的虛擬機器 (pKVM)
請參閱「Hypervisor」。
pVM 韌體 (pvmfw)
在 pVM 上執行的第一個程式碼會pvmfw驗證酬載,並衍生每個 VM 的密碼。
受保護的虛擬機器 (pVM)
由管理程序管理的 VM,在非安全或領域世界中執行,並與 Android 主機 OS 隔離,因此即使 Android 主機遭到入侵,也能防止存取。

pVM 支援豐富的環境,包括以 Linux 為基礎的發行版本。pVM 概念並非 Google 獨有。符合隔離/記憶體存取限制的合作夥伴定義 VM (SoC / OEM) 也是 pVM。

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

後續步驟

  • 如要進一步瞭解為何需要 AVF,請參閱「為何需要 AVF?」。
  • 如要瞭解如何使用 AVF 進行隔離編譯,請參閱「應用實例」。
  • 如要深入瞭解 AVF 參考實作的架構,請參閱 AVF 架構
  • 如要瞭解 Microdroid,請參閱 Microdroid
  • 如要瞭解 AVF 的安全性處理方式,請參閱「安全性」。
  • 如要瞭解虛擬化服務的角色,請參閱 VirtualizationService
  • 如需 AVF 的原始碼或個別元件的深入說明,請參閱 AOSP 存放區