Android Virtualization Framework (AVF) – Übersicht

Das Android Virtualization Framework (AVF) bietet sichere und private Ausführungsumgebungen zum Ausführen von Code. AVF eignet sich ideal für sicherheitsorientierte Anwendungsfälle, bei denen stärkere, sogar formell bestätigte Isolationsgarantien erforderlich sind als die, die von der App-Sandbox von Android angeboten werden. Android bietet eine Referenzimplementierung aller Komponenten, die für die Implementierung von AVF erforderlich sind. Derzeit wird AVF nur auf ARM64-Geräten unterstützt. Abbildung 1 zeigt die Architektur von AVF:

AVF-Architektur

Abbildung 1. AVF-Architektur

Hier finden Sie Definitionen für die wichtigsten Begriffe aus Abbildung 1:

apexd und zipfuse
Bereitstellung von vom Host importierten APEX- und APK-Dateien.
authfs
Ein Fuse-Dateisystem zum sicheren Freigeben mehrerer Dateien zwischen Android und pVM (Host und Gast).
Binder
Primäres Mittel für die Kommunikation zwischen VMs.
crosvm
Ein in Rust geschriebener Virtual Machine Monitor. Crosvm weist VM-Speicher zu, erstellt virtuelle CPU-Threads und implementiert die Back-Ends des virtuellen Geräts.
Generic Kernel Image (GKI)
Ein von Google zertifiziertes Boot-Image, das einen GKI-Kernel enthält, der aus einem Android Common Kernel (ACK)-Quellbaum erstellt wurde und zum Flashen auf die Bootpartition eines Android-Geräts geeignet ist. Weitere Informationen finden Sie in der Kernel-Übersicht.
Hypervisor
Die von AVF verwendete Virtualisierungstechnologie, auch pKVM genannt. Der Hypervisor sorgt für die Integrität des ausgeführten Codes und die Vertraulichkeit der Assets der pVM, auch wenn der Android-Host oder eine der anderen pVMs manipuliert wird.
Java API
Die Java APIs von VirtualizationService, die nur auf Geräten mit AVF-Unterstützung vorhanden sind. Diese APIs sind optional und nicht Teil von thebootclasspath.
Microdroid
Ein von Google bereitgestelltes Mini-Android-Betriebssystem, das in einer pVM ausgeführt wird.
Microdroid-Manager
Verwaltet den pVM-Lebenszyklus innerhalb der pVM und des Instanzlaufwerks.
Native API
Ein Teil des Android Native Development Kits (NDK).
Protected Kernel-based Virtual Machine (pKVM)
Hypervisor
pVM-Firmware (pvmfw)
Der erste Code, der auf einer pVM ausgeführt wird, pvmfw überprüft die Nutzlast und leitet das VM-spezifische Geheimnis ab.
geschützte virtuelle Maschine (pVM)

Eine wechselseitig nicht vertrauende isolierte Ausführungsumgebung („Gast“), die parallel zum Haupt-Android-Betriebssystem („Host“) ausgeführt wird. pVMs werden von der pKVM verwaltet.

Im Vergleich zu vorhandenen Trusted Execution Environments (TEEs) bieten pVMs eine umfassendere Umgebung, einschließlich einer Mini-Android-Distribution namens Microdroid. pVMs können dynamisch verwendet werden und bieten einen Standardsatz von APIs, die auf allen Geräten verfügbar sind, die sie unterstützen.

VirtualizationService

Der Android-Dienst, der den Lebenszyklus von pVMs verwaltet.

Wie geht es weiter?

  • Weitere Informationen zur Notwendigkeit von AVF finden Sie unter Warum AVF?.
  • Weitere Informationen dazu, wie AVF für die isolierte Kompilierung verwendet werden kann, finden Sie unter Anwendungsfälle.
  • Eine ausführlichere Erklärung der Architektur der AVF-Referenzimplementierung findest du unter AVF-Architektur.
  • Weitere Informationen zu Microdroid finden Sie unter Microdroid.
  • Weitere Informationen dazu, wie AVF mit Sicherheit umgeht, finden Sie unter Sicherheit.
  • Informationen zur Rolle des Virtualisierungsdienstes finden Sie unter VirtualizationService.
  • Quellcode von AVF oder eine ausführliche Erklärung zu einzelnen Komponenten finden Sie im AOSP-Repository.