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:
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 .