Übersicht über das Android Virtualization Framework (AVF).

Android Virtualization Framework (AVF) bietet sichere und private Ausführungsumgebungen zum Ausführen von Code. AVF ist ideal für sicherheitsorientierte Anwendungsfälle, die stärkere, sogar formal verifizierte Isolationsgarantien erfordern als die App-Sandbox von Android. Android bietet eine Referenzimplementierung aller Komponenten, die zur 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 die Definitionen der wichtigsten Begriffe aus Abbildung 1:

Apexd und Zipfuse
Mountet APEXes und APKs, die vom Host importiert wurden, sicher.
authfs
Ein Sicherungsdateisystem für die sichere gemeinsame Nutzung mehrerer Dateien zwischen Android und pVM (Host und Gast).
Bindemittel
Primäres Mittel zur Kommunikation zwischen VMs.
crosvm
Ein in Rost geschriebener virtueller Maschinenmonitor. crosvm weist VM-Speicher zu, erstellt virtuelle CPU-Threads und implementiert die Back-Ends des virtuellen Geräts.
Generisches 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 Boot-Partition eines Android-Geräts geeignet ist. Weitere Informationen finden Sie in der Kernel-Übersicht .
Hypervisor
Die von AVF verwendete Virtualisierungstechnologie, auch bekannt als pKVM . Der Hypervisor wahrt die Integrität des ausgeführten Codes und die Vertraulichkeit der pVM-Assets, selbst wenn das Android oder eine der anderen pVMs gefährdet ist.
Java-API
Die VirtualizationService-Java-APIs, die nur auf Geräten mit AVF-Unterstützung vorhanden sind. Diese APIs sind optional und nicht Teil des thebootclasspath .
Mikrodroid
Ein von Google bereitgestelltes Mini-Android-Betriebssystem, das in einer pVM ausgeführt wird.
Microdroid-Manager
Verwaltet den pVM-Lebenszyklus innerhalb der pVM und der Instanzfestplatte.
Native API
Eine Teilmenge des Android Native Developers Kit (NDK).
Geschützte Kernel-basierte virtuelle Maschine (pKVM)
Siehe Hypervisor .
pVM-Firmware ( pvmfw )
pvmfw , der erste Code, der auf einer pVM ausgeführt wird, überprüft die Nutzlast und leitet das Geheimnis pro VM ab.
Geschützte virtuelle Maschine (pVM)

Eine gegenseitig misstrauische isolierte Ausführungsumgebung („Gäste“), die neben dem Haupt-Android-Betriebssystem („Host“) läuft. pVMs werden vom pKVM verwaltet.

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

VirtualizationService

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

Was kommt als nächstes?

  • Wenn Sie die Notwendigkeit von AVF besser verstehen möchten, lesen Sie den Artikel Warum AVF? .
  • Informationen dazu, wie AVF für die isolierte Kompilierung verwendet werden kann, finden Sie unter Anwendungsfälle .
  • Wenn Sie eine ausführlichere Erläuterung der Architektur der AVF-Referenzimplementierung wünschen, lesen Sie AVF-Architektur .
  • Wenn Sie mehr über Microdroid erfahren möchten, lesen Sie Microdroid .
  • Wenn Sie daran interessiert sind, wie AVF mit Sicherheit umgeht, lesen Sie Sicherheit .
  • Informationen zur Rolle des Virtualisierungsdienstes finden Sie unter VirtualizationService .
  • Den Quellcode von AVF oder ausführliche Erläuterungen zu einzelnen Komponenten finden Sie im AOSP-Repository