Omówienie platformy wirtualizacji systemu Android (AVF)

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Android Virtualization Framework (AVF) zapewnia bezpieczne i prywatne środowiska wykonawcze do wykonywania kodu. AVF jest idealny do przypadków użycia 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 składników potrzebnych do zaimplementowania 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 fuse do bezpiecznego udostępniania wielu plików między Androidem i pVM (host i gość).
spoiwo
Podstawowe środki komunikacji między maszynami wirtualnymi.
crossvm
Monitor maszyny wirtualnej napisany w rdzy. crossvm alokuje pamięć VM, tworzy wirtualne wątki procesora i implementuje zaplecza urządzenia wirtualnego.
Ogólny obraz jądra (GKI)
Obraz rozruchowy certyfikowany przez Google, który zawiera jądro GKI zbudowane na podstawie drzewa źródłowego wspólnego jądra systemu Android (ACK) i nadaje się do flashowania na partycję rozruchową urządzenia z systemem Android. Aby uzyskać więcej informacji, zobacz Przegląd jądra .
hipernadzorca
Technologia wirtualizacji używana przez AVF, znana również jako pKVM . Hypervisor zachowuje integralność wykonanego kodu i poufność zasobów pVM, nawet jeśli Android lub którakolwiek z innych pVM jest zagrożona.
API Javy
Interfejsy API Java VirtualizationService, które są dostępne tylko na urządzeniach z obsługą AVF. Te interfejsy API są opcjonalne i nie są częścią thebootclasspath .
Mikrodroid
Dostarczony przez Google mini-Android OS działający w pVM.
Menedżer mikrodroidów
Zarządza cyklem życia pVM, wewnątrz pVM i dysku wystąpienia.
Natywny interfejs 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, który działa na pVM, pvmfw weryfikuje ładunek i uzyskuje klucz tajny na maszynę wirtualną.
chroniona maszyna wirtualna (pVM)

Obustronnie niezaufane izolowane środowiska wykonawcze („goście”), które działają wraz 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-Android o nazwie Microdroid . PVM mogą być używane dynamicznie i zapewniają standardowy zestaw interfejsów API dostępnych na wszystkich obsługujących je urządzeniach.

Usługa wirtualizacji

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

Co dalej?

  • Jeśli chcesz lepiej zrozumieć potrzebę AVF, zapoznaj się z artykułem Dlaczego AVF? .
  • Aby przeczytać o tym, jak AVF może być używany do izolowanej kompilacji, zapoznaj się z Przypadkami użycia .
  • Jeśli chcesz uzyskać bardziej szczegółowe wyjaśnienie architektury referencyjnej implementacji AVF, zapoznaj się z artykułem Architektura AVF .
  • Jeśli chcesz dowiedzieć się więcej o Microdroid, zapoznaj się z Microdroid .
  • 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 VirtualizationService .