Android 虛擬化架構 (AVF) 提供安全且私密的程式碼執行環境。AVF 非常適合注重安全性的用途,因為與 Android 應用程式沙箱提供的保證相比,AVF 可提供更強大,甚至是經過正式驗證的隔離保證。Android 提供實作 AVF 所需所有元件的參考實作方式。AVF 僅支援 ARM64 裝置。圖 1 顯示 AVF 的架構:
圖 1. AVF 架構。
以下是圖 1 中最重要的詞彙定義:
- apexd 和 zipfuse
- 安全掛接從主機匯入的 APEX 和 APK。
- authfs
- 透過 FUSE 檔案系統,在 Android 和 pVM (主機和訪客) 之間安全地共用多個檔案。
- 繫結器
- VM 間的主要通訊方式。
- 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 上執行的第一個程式碼會驗證酬載,並衍生每個 VM 的密碼。
pvmfw
- 受保護的虛擬機器 (pVM)
與主要 Android 作業系統 (主機) 一併執行的互不信任隔離執行環境 (訪客)。pVM 安全性的重要層面之一是,即使主機遭到入侵,主機也無法存取 pVM 的記憶體。pKVM 是執行 pVM 的標準管理程序。
與現有的受信任執行環境 (TEE) 相比,pVM 提供更豐富的環境,包括執行名為 Microdroid 的迷你 Android 發行版本 (不過 Microdroid 也可以在未受保護的 VM 上執行)。pVM 可動態使用,並在受信任的環境中提供一組標準 API,適用於所有支援 pVM 的裝置。
- VirtualizationService
管理 pVM 生命週期的 Android 服務。
後續步驟
- 如要進一步瞭解為何需要 AVF,請參閱「為何需要 AVF?」。
- 如要瞭解如何使用 AVF 進行隔離編譯,請參閱「應用實例」。
- 如要深入瞭解 AVF 參考實作的架構,請參閱 AVF 架構。
- 如要瞭解 Microdroid,請參閱 Microdroid。
- 如要瞭解 AVF 如何處理安全性,請參閱「安全性」。
- 如要瞭解虛擬化服務的角色,請參閱 VirtualizationService。
- 如需 AVF 的原始碼或個別元件的深入說明,請參閱 AOSP 存放區