Android 虛擬化框架 (AVF)為執行程式碼提供安全且私有的執行環境。 AVF 非常適合以安全為導向的用例,這些用例需要比 Android 應用程式沙箱提供的更強大、甚至經過正式驗證的隔離保證。 Android 提供了實現 AVF 所需的所有元件的參考實作。目前,AVF 僅在 ARM64 裝置上支援。圖1展示了AVF的架構:
以下是圖 1 中最重要術語的定義:
- apexd 和 zipfuse
- 安全地安裝從主機匯入的 APEX 和 APK。
- 認證檔案系統
- 用於在 Android 和 pVM(主機和來賓)之間安全共享多個檔案的熔斷檔案系統。
- 活頁夾
- VM 間通訊的主要方式。
- 交叉虛擬機
- 用 Rust 編寫的虛擬機器監視器。 crosvm 分配 VM 記憶體、建立虛擬 CPU 執行緒並實現虛擬設備的後端。
- 通用核心映像 (GKI)
- 經 Google 認證的啟動映像,包含從 Android 通用內核 (ACK) 原始碼樹建置的 GKI 內核,適合快閃記憶體到 Android 裝置的啟動分割區。有關更多信息,請參閱內核概述。
- 管理程式
- AVF所使用的虛擬化技術,也稱為pKVM 。即使 Android 或任何其他 pVM 受到損害,虛擬機器管理程式也會維護所執行程式碼的完整性和 pVM 資產的機密性。
- Java API
- VirtualizationService Java API,僅存在於支援 AVF 的裝置上。這些 API 是可選的,不是
thebootclasspath
的一部分。 - 微型機器人
- Google 提供的迷你 Android 作業系統,在 pVM 中運作。
- 微機器人管理器
- 管理 pVM 內部的 pVM 生命週期和實例磁碟。
- 原生API
- Android 本機開發人員工具包 (NDK) 的子集。
- 受保護的基於核心的虛擬機器 (pKVM)
- 請參閱管理程序。
- pVM 韌體 (
pvmfw
) - 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 。
- 有關 AVF 的原始程式碼或有關各個元件的深入解釋,請參閱AOSP 儲存庫
Android 虛擬化框架 (AVF)為執行程式碼提供安全且私有的執行環境。 AVF 非常適合以安全為導向的用例,這些用例需要比 Android 應用程式沙箱提供的更強大、甚至經過正式驗證的隔離保證。 Android 提供了實現 AVF 所需的所有元件的參考實作。目前,AVF 僅在 ARM64 裝置上支援。圖1展示了AVF的架構:
以下是圖 1 中最重要術語的定義:
- apexd 和 zipfuse
- 安全地安裝從主機匯入的 APEX 和 APK。
- 認證檔案系統
- 用於在 Android 和 pVM(主機和來賓)之間安全共享多個檔案的熔斷檔案系統。
- 活頁夾
- VM 間通訊的主要方式。
- 交叉虛擬機
- 用 Rust 編寫的虛擬機器監視器。 crosvm 分配 VM 記憶體、建立虛擬 CPU 執行緒並實現虛擬設備的後端。
- 通用核心映像 (GKI)
- 經 Google 認證的啟動映像,包含從 Android 通用內核 (ACK) 原始碼樹建置的 GKI 內核,適合快閃記憶體到 Android 裝置的啟動分割區。有關更多信息,請參閱內核概述。
- 管理程式
- AVF所使用的虛擬化技術,也稱為pKVM 。即使 Android 或任何其他 pVM 受到損害,虛擬機器管理程式也會維護所執行程式碼的完整性和 pVM 資產的機密性。
- Java API
- VirtualizationService Java API,僅存在於支援 AVF 的裝置上。這些 API 是可選的,不是
thebootclasspath
的一部分。 - 微型機器人
- Google 提供的迷你 Android 作業系統,在 pVM 中運作。
- 微機器人管理器
- 管理 pVM 內部的 pVM 生命週期和實例磁碟。
- 原生API
- Android 本機開發人員工具包 (NDK) 的子集。
- 受保護的基於核心的虛擬機器 (pKVM)
- 請參閱管理程序。
- pVM 韌體 (
pvmfw
) - 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 。
- 有關 AVF 的原始程式碼或有關各個元件的深入解釋,請參閱AOSP 儲存庫