Android 虛擬化架構 (AVF) 總覽

Android 虛擬化架構 (AVF) 可提供安全且私密的執行環境,用於執行程式碼。AVF 非常適合以安全為導向的用途,因為這些用途需要比 Android 應用程式沙箱提供的隔離機制更強大,甚至是經過正式驗證的隔離機制。Android 提供實作參考資料,其中包含實作 AVF 所需的所有元件。目前,只有 ARM64 裝置支援 AVF。圖 1 顯示 AVF 的架構:

AVF 架構

圖 1. AVF 架構

以下是圖 1 中最重要的幾個用語定義:

apexd 和 zipfuse
安全地掛載從主機匯入的 APEX 和 APK。
authfs
Fuse 檔案系統,可在 Android 和 pVM (主機和來賓) 之間安全地共用多個檔案。
binder
VM 間通訊的主要方式。
crosvm
以 Rust 編寫的虛擬機器監視器。crosvm 會分配 VM 記憶體、建立虛擬 CPU 執行緒,並實作虛擬裝置的後端。
通用核心映像檔 (GKI)
由 Google 認證的啟動映像檔,其中包含從 Android 通用核心 (ACK) 來源樹建構的 GKI 核心,適合刷入 Android 裝置的啟動分割區。詳情請參閱「核心總覽」。
hypervisor
AVF 使用的虛擬化技術,也稱為 pKVM。即使主機 Android 或任何其他 pVM 遭到入侵,輔助執行緒仍可維持執行程式碼的完整性,以及 pVM 資產的機密性。
Java API
VirtualizationService Java API,僅適用於支援 AVF 的裝置。這些 API 為選用項目,並非 thebootclasspath 的一部分。
Microdroid
Google 提供的迷你 Android 作業系統,可在 pVM 中執行。
Microdroid Manager
管理 pVM 內部和執行個體磁碟的 pVM 生命週期。
原生 API
Android Native Development Kit (NDK) 的子集。
以核心為基礎的受保護虛擬機器 (pKVM)
請參閱「Hyper-V 虛擬機器」。
pVM 韌體 (pvmfw)
在 pVM 上執行的第一個程式碼 pvmfw 會驗證酬載,並衍生每個 VM 的密鑰。
受保護的虛擬機器 (pVM)

與主 Android 作業系統 (主機) 一同執行的互不信任隔離執行環境 (訪客)。pVM 安全性有一項重要層面,即即使主機遭到入侵,主機也無法存取 pVM 的記憶體。pKVM 是執行 pVM 的標準管理程序。

與現有的受信任執行環境 (TEE) 相比,pVM 提供更豐富的環境,包括執行名為 Microdroid 的迷你 Android 發行版本的功能 (雖然 Microdroid 也可以在未受保護的 VM 上執行)。pVM 可動態使用,並在受信任的環境中提供標準 API 組合,可供所有支援的裝置使用。

VirtualizationService

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

後續步驟