Omówienie platformy wirtualizacji systemu Android (AVF).

Android Virtualization Framework (AVF) zapewnia bezpieczne i prywatne środowiska wykonawcze do wykonywania kodu. AVF idealnie nadaje się 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 importowane z hosta.
autoryzacje
Bezpieczny system plików zapewniający bezpieczne udostępnianie wielu plików między systemem Android i pVM (host i gość).
spoiwo
Podstawowy sposób komunikacji między maszynami wirtualnymi.
crosvm
Monitor maszyny wirtualnej napisany rdzą. crosvm przydziela pamięć maszyny wirtualnej, tworzy wirtualne wątki procesora i implementuje zaplecze urządzenia wirtualnego.
Ogólny obraz jądra (GKI)
Obraz rozruchowy certyfikowany przez Google, zawierający jądro GKI zbudowane z drzewa źródłowego wspólnego jądra systemu Android (ACK) i nadający się do flashowania na partycję rozruchową urządzenia z systemem Android. Więcej informacji można znaleźć w przeglądzie jądra .
hiperwizor
Technologia wirtualizacji używana przez AVF, znana również jako pKVM . Hiperwizor utrzymuje integralność wykonywanego kodu i poufność zasobów pVM, nawet jeśli Android lub którakolwiek inna maszyna pVM zostanie naruszona.
API Javy
Interfejsy API Java VirtualizationService, 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 system operacyjny mini Android działający na maszynie pVM.
Menedżer mikrodroidów
Zarządza cyklem życia pVM wewnątrz pVM i dyskiem instancji.
Natywne API
Podzbiór zestawu Android Native Developers Kit (NDK).
chroniona maszyna wirtualna oparta na jądrze (pKVM)
Zobacz Hypervisor .
Oprogramowanie sprzętowe pVM ( pvmfw )
Pierwszy kod działający na maszynie pVM, pvmfw , weryfikuje ładunek i wyprowadza sekret każdej maszyny wirtualnej.
chroniona maszyna wirtualna (pVM)

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

W porównaniu z istniejącymi zaufanymi środowiskami wykonawczymi (TEE), maszyny pVM zapewniają bogatsze środowisko, w tym dystrybucję mini-Android 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 Android zarządzająca cyklem życia maszyn pVM.

Co dalej?

  • Jeśli chcesz lepiej zrozumieć potrzebę stosowania 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 referencyjnej implementacji AVF, zobacz Architektura AVF .
  • Jeśli chcesz dowiedzieć się więcej o Microdroid, zapoznaj się z Microdroidem .
  • Jeśli interesuje Cię, jak AVF radzi sobie z bezpieczeństwem, zapoznaj się z sekcją Bezpieczeństwo .
  • Aby zrozumieć rolę usługi wirtualizacji, zapoznaj się z sekcją VirtualizationService .
  • Kod źródłowy AVF lub szczegółowe wyjaśnienia dotyczące poszczególnych komponentów można znaleźć w repozytorium AOSP