Android 虛擬化架構 (AVF) 提供安全的私人執行環境,可執行程式碼。AVF 非常適合安全導向的用途,因為這些用途需要比 Android 應用程式沙箱提供的隔離機制更強大,甚至是經過正式驗證的隔離機制。Android 提供實作參考資料,其中包含實作 AVF 所需的所有元件。目前只有 ARM64 裝置支援 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 提供的 mini-Android OS,可在 pVM 中執行。
- Microdroid Manager
- 管理 pVM 內部和執行個體磁碟的 pVM 生命週期。
- 原生 API
- Android Native Development Kit (NDK) 的子集。
- 以核心為基礎的受保護虛擬機器 (pKVM)
- 請參閱「Hyper-V 虛擬機器」。
- pVM 韌體 (
pvmfw
) - 在 pVM 上執行的第一個程式碼,
pvmfw
會驗證酬載並產生每個 VM 的密鑰。 - 受保護的虛擬機器 (pVM)
相互不信任的隔離執行環境 (「訪客」),可與主要 Android 作業系統 (「主機」) 一同執行。pVM 由 pKVM 管理。
與現有的受信任的執行環境 (TEE) 相比,pVM 提供更豐富的環境,包括名為 Microdroid 的迷你 Android 發行版。pVM 可動態使用,並在支援的所有裝置上提供一組標準 API。
- VirtualizationService
管理 pVM 生命週期的 Android 服務。
後續步驟
- 如要進一步瞭解 AVF 的需求,請參閱為什麼要使用 AVF?。
- 如要瞭解如何使用 AVF 進行隔離編譯,請參閱「用途」一節。
- 如要進一步瞭解 AVF 參考實作項目的架構,請參閱「AVF 架構」。
- 如要瞭解 Microdroid,請參閱 Microdroid。
- 如要瞭解 AVF 如何處理安全性,請參閱安全性。
- 如要瞭解虛擬化服務的角色,請參閱 VirtualizationService。
- 如需 AVF 的原始碼或個別元件的詳細說明,請參閱 Android 開放原始碼計畫存放區