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 提供的迷你 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 服務。
後續步驟
- 如要進一步瞭解需要使用 AVF 的原因,請參閱「為什麼要使用 AVF?」。
- 如要瞭解如何使用 AVF 進行隔離編譯,請參閱「用途」一節。
- 如要進一步瞭解 AVF 參考實作項目的架構,請參閱「AVF 架構」。
- 如要瞭解 Microdroid,請參閱 Microdroid。
- 如想瞭解 AVF 如何處理安全性問題,請參閱「安全性」一文。
- 如要瞭解虛擬化服務的角色,請參閱 VirtualizationService。
- 如需 AVF 的原始碼或個別元件的詳細說明,請參閱 Android 開放原始碼計畫存放區