Android 虛擬化框架 (AVF)為執行代碼提供安全和私有的執行環境。 AVF 是面向安全的用例的理想選擇,這些用例需要比 Android 應用程序沙箱提供的隔離保證更強大、甚至經過正式驗證的隔離保證。 Android 提供了實現 AVF 所需的所有組件的參考實現。目前,AVF 僅在 ARM64 設備上受支持。圖 1 顯示了 AVF 的架構:
以下是圖 1 中最重要術語的定義:
- 頂點和 zipfuse
- 安全地掛載從主機導入的 APEX 和 APK。
- 認證
- 用於在 Android 和 pVM(主機和來賓)之間安全共享多個文件的融合文件系統。
- 活頁夾
- VM 間通信的主要方式。
- crosvm
- 用 Rust 編寫的虛擬機監視器。 crosvm 分配 VM 內存,創建虛擬 CPU 線程,並實現虛擬設備的後端。
- 通用內核映像 (GKI)
- 經谷歌認證的啟動映像,包含從Android通用內核(ACK)源代碼樹構建的GKI內核,適合燒寫到Android設備的啟動分區。有關詳細信息,請參閱內核概述。
- 管理程序
- AVF 使用的虛擬化技術,也稱為pKVM 。管理程序維護已執行代碼的完整性和 pVM 資產的機密性,即使 Android 或任何其他 pVM 受到威脅。
- Java接口
- VirtualizationService Java API,僅存在於支持 AVF 的設備上。這些 API 是可選的,不是
thebootclasspath
的一部分。 - 微型機器人
- Google 提供的在 pVM 中運行的迷你 Android 操作系統。
- 機器人管理器
- 管理 pVM 生命週期、pVM 內部和實例磁盤。
- 原生API
- Android Native Developers Kit (NDK) 的一個子集。
- 受保護的基於內核的虛擬機 (pKVM)
- 請參閱管理程序。
- pVM 固件 (
pvmfw
) - 在 pVM 上運行的第一個代碼
pvmfw
驗證有效負載並導出每個 VM 的秘密。 - 受保護的虛擬機 (pVM)
與主要 Android 操作系統(“主機”)一起運行的相互不信任的隔離執行環境(“來賓”)。 pVM 由 pKVM 管理。
與現有的可信執行環境 (TEE) 相比,pVM 提供了更豐富的環境,包括一個名為Microdroid的迷你 Android 發行版。 pVM 可以動態使用,並提供一組標準的 API,可用於所有支持它們的設備。
- 虛擬化服務
管理 pVM 生命週期的 Android 服務。
下一步是什麼?
- 如果您想更好地了解對 AVF 的需求,請參閱為什麼使用 AVF? .
- 要了解 AVF 如何用於獨立編譯,請參閱用例。
- 如果您想更深入地了解 AVF 參考實現的架構,請參閱AVF 架構。
- 如果您想了解 Microdroid,請參閱Microdroid 。
- 如果您對 AVF 如何處理安全性感興趣,請參閱安全性。
- 要了解虛擬化服務的作用,請參閱VirtualizationService 。