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