Ü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 gegenüber denen erfordern, die von der App-Sandbox von Android angeboten werden. 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
Stellt vom Host importierte APEX-Dateien und APKs sicher bereit.
authfs
Ein Fuse-Dateisystem für die sichere gemeinsame Nutzung mehrerer Dateien zwischen Android und pVM (Host und Gast).
Bindemittel
Primäres Kommunikationsmittel zwischen VMs.
crossvm
Ein in Rust geschriebener Monitor für virtuelle Maschinen. crossvm 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 geeignet ist, auf die Boot-Partition eines Android-Geräts geflasht zu werden. Weitere Informationen finden Sie in der Kernel-Übersicht .
Hypervisor
Die von AVF verwendete Virtualisierungstechnologie, auch als pKVM bekannt. Der Hypervisor wahrt die Integrität des ausgeführten Codes und die Vertraulichkeit der Assets der pVM, selbst wenn Android oder eine der anderen pVMs kompromittiert sind.
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 .
Mikrodroide
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 )
Der erste Code, der auf einer pVM ausgeführt wird, pvmfw , verifiziert die Nutzlast und leitet das Geheimnis pro VM ab.
geschützte virtuelle Maschine (pVM)

Eine gegenseitig misstraute 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 reichhaltigere 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.

VirtualisierungsService

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 Warum AVF? .
  • Um zu lesen, wie AVF für die isolierte Kompilierung verwendet werden kann, siehe 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 .