Android Virtualization Framework (AVF) – Übersicht

Das Android Virtualization-Framework (AVF) bietet sichere und private Ausführungsumgebungen für die Ausführung von Code. Das AVF ist ideal für sicherheitsorientierte Anwendungsfälle, die eine stärkere, sogar formal verifizierte Isolierung erfordern als die, die durch die App-Sandbox von Android geboten wird. Android bietet eine Referenzimplementierung aller Komponenten, die für die Implementierung von AVF erforderlich sind. AVF wird 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
Sicheres Einbinden von APEX-Dateien und APKs, die vom Host importiert wurden.
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 der virtuellen Geräte.
Generic Kernel Image (GKI)
Ein von Google zertifiziertes Boot-Image, das einen GKI-Kernel enthält, der aus einem ACK-Quellcodebaum (Android Common Kernel) erstellt wurde und sich zum Flashen auf die Boot-Partition eines Android-Geräts eignet. 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, selbst wenn das Host-Android oder eine der anderen pVMs gehackt werden.
Java API
Die VirtualizationService-Java-APIs, 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 Lebenszyklus der primären VM, der Instanz-Festplatte und der primären VM.
Native API
Eine Teilmenge des Android Native Developers Kit (NDK).
Auf dem geschützten Kernel basierende virtuelle Maschine (pKVM)
Weitere Informationen finden Sie unter Hypervisor.
pVM-Firmware (pvmfw)
Der erste Code, der auf einer pVM ausgeführt wird, pvmfw, prüft die Nutzlast und leitet das VM-spezifische Secret ab.
Geschützte virtuelle Maschine (pVM)
Eine VM, die von einem Hypervisor verwaltet wird, in der nicht sicheren oder Realm-Welt ausgeführt wird und vom Android-Hostbetriebssystem isoliert ist, sodass der Zugriff auch im Falle eines kompromittierten Android-Hosts verhindert wird.

pVMs unterstützen umfangreiche Umgebungen, einschließlich Linux-basierter Distributionen. Das Konzept der pVM ist nicht Google-exklusiv. Partnerdefinierte VMs (SoC/OEM), die die Einschränkungen für Isolation und Speicherzugriff erfüllen, sind ebenfalls pVMs.

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

Und jetzt?

  • Weitere Informationen dazu, warum AVF erforderlich ist, finden Sie unter Warum AVF?.
  • Informationen dazu, wie AVF für die isolierte Kompilierung verwendet werden kann, finden Sie unter Anwendungsfälle.
  • Eine ausführlichere Beschreibung der Architektur der AVF-Referenzimplementierung finden Sie unter AVF-Architektur.
  • Weitere Informationen zu Microdroid finden Sie unter Microdroid.
  • Wenn Sie wissen möchten, wie AVF mit Sicherheit umgeht, lesen Sie den Abschnitt Sicherheit.
  • Informationen zur Rolle des Virtualisierungsdienstes finden Sie unter VirtualizationService.
  • Den Quellcode von AVF oder eine detaillierte Beschreibung der einzelnen Komponenten finden Sie im AOSP-Repository.