Omówienie platformy wirtualizacji systemu Android (AVF)

Android Virtualization Framework (AVF) zapewnia bezpieczne i prywatne środowiska wykonawcze do wykonywania kodu. AVF jest idealny do zastosowań zorientowanych na bezpieczeństwo, które wymagają silniejszych, nawet formalnie zweryfikowanych gwarancji izolacji w porównaniu z tymi oferowanymi przez piaskownicę aplikacji na Androida. Android zapewnia referencyjną implementację wszystkich komponentów potrzebnych do wdrożenia AVF. Obecnie AVF jest obsługiwany tylko na urządzeniach ARM64. Rysunek 1 przedstawia architekturę AVF:

Architektura AVF

Rysunek 1. Architektura AVF

Oto definicje najważniejszych terminów z rysunku 1:

apexd i zipfuse
Bezpiecznie montuje pliki APEX i APK zaimportowane z hosta.
authfs
System plików bezpieczników do bezpiecznego współdzielenia wielu plików między Androidem a pVM (hostem i gościem).
spoiwo
Podstawowe środki komunikacji między maszynami wirtualnymi.
krosvm
Monitor maszyny wirtualnej napisany w rdzy. crosvm przydziela pamięć maszyny wirtualnej, tworzy wirtualne wątki procesora i implementuje zaplecze urządzenia wirtualnego.
Ogólny obraz jądra (GKI)
Certyfikowany przez Google obraz rozruchowy, który zawiera jądro GKI zbudowane z drzewa źródeł systemu Android Common Kernel (ACK) i nadaje się do flashowania na partycję rozruchową urządzenia z systemem Android. Aby uzyskać więcej informacji, zobacz Omówienie jądra .
hiperwizor
Technologia wirtualizacji używana przez AVF, znana również jako pKVM . Hiperwizor zachowuje integralność wykonywanego kodu i poufność zasobów pVM, nawet jeśli system Android lub inne maszyny pVM zostaną naruszone.
API Javy
API VirtualizationService Java, które są obecne tylko na urządzeniach z obsługą AVF. Te interfejsy API są opcjonalne i nie są częścią thebootclasspath .
mikrodroid
Dostarczony przez Google mini-system operacyjny Android, który działa w pVM.
Menedżer mikrodroidów
Zarządza cyklem życia pVM wewnątrz pVM i dysku instancji.
Natywne API
Podzbiór zestawu Android Native Developers Kit (NDK).
chroniona maszyna wirtualna oparta na jądrze (pKVM)
Zobacz Hypervisor .
Oprogramowanie układowe pVM ( pvmfw )
Pierwszy kod uruchamiany na maszynie pVM, pvmfw , weryfikuje ładunek i wyprowadza klucz tajny dla maszyny wirtualnej.
chroniona maszyna wirtualna (pVM)

Wzajemnie nieufne, izolowane środowiska wykonawcze („goście”), które działają równolegle z głównym systemem operacyjnym Android („host”). pVM są zarządzane przez pKVM.

W porównaniu z istniejącymi zaufanymi środowiskami wykonawczymi (TEE), pVM zapewniają bogatsze środowisko, w tym dystrybucję mini-Androida o nazwie Microdroid . Maszyny pVM mogą być używane dynamicznie i zapewniają standardowy zestaw interfejsów API dostępnych na wszystkich urządzeniach, które je obsługują.

Usługa wirtualizacji

Usługa systemu Android, która zarządza cyklem życia maszyn pVM.

Co dalej?

  • Jeśli chcesz lepiej zrozumieć potrzebę korzystania z AVF, zapoznaj się z artykułem Dlaczego AVF? .
  • Aby przeczytać o tym, jak AVF może być używany do izolowanej kompilacji, zobacz Przypadki użycia .
  • Jeśli chcesz uzyskać bardziej szczegółowe wyjaśnienie architektury implementacji referencyjnej AVF, zapoznaj się z architekturą AVF .
  • Jeśli chcesz dowiedzieć się więcej o Microdroid, zapoznaj się z Microdroid .
  • Jeśli interesuje Cię sposób, w jaki AVF obsługuje zabezpieczenia, zapoznaj się z Zabezpieczeniami .
  • Aby zrozumieć rolę usługi wirtualizacji, zapoznaj się z częścią VirtualizationService .