Android 虛擬化框架 (AVF) 概述

Android 虛擬化框架 (AVF)為執行程式碼提供安全且私有的執行環境。 AVF 非常適合以安全為導向的用例,這些用例需要比 Android 應用程式沙箱提供的更強大、甚至經過正式驗證的隔離保證。 Android 提供了實現 AVF 所需的所有元件的參考實作。目前,AVF 僅在 ARM64 裝置上支援。圖1展示了AVF的架構:

AVF架構

圖 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的架構:

AVF架構

圖 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 儲存庫