Platforma wirtualizacji Androida (AVF) zapewnia bezpieczne i prywatne środowisko do wykonywania kodu. AVF jest idealny do zastosowań związanych z bezpieczeństwem, które wymagają silniejszej, nawet formalnie zweryfikowanej izolacji niż ta oferowana przez piaskownicę aplikacji na Androida. Android zapewnia referencyjną implementację wszystkich komponentów niezbędnych do implementacji AVF. Obecnie AVF jest obsługiwana 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 pliki APK zaimportowane z hosta.
- authfs
- System plików fuse do bezpiecznego udostępniania wielu plików między Androidem a pVM (host i gościn).
- zszywacz
- Główny sposób komunikacji między maszynami wirtualnymi.
- crosvm
- Monitor maszyny wirtualnej napisany w rust. crosvm przydziela pamięć maszynie wirtualnej, tworzy wątki wirtualnego procesora i wdraża zaplecze wirtualnego urządzenia.
- Generic Kernel Image (GKI)
- Obrazek rozruchowy z certyfikatem Google, który zawiera jądro GKI utworzone na podstawie drzewa źródłowego Android Common Kernel (ACK) i jest odpowiedni do zaflashowania na partycji rozruchowej urządzenia z Androidem. Więcej informacji znajdziesz w omówieniu jądra.
- hipernadzorca
- Technologia wirtualizacji używana przez AVF, znana również jako pKVM. Hiperwizor zapewnia integralność wykonywanego kodu i poufność zasobów pVM, nawet jeśli host Android lub którykolwiek z innych pVM został naruszony.
- Java API
- Interfejsy API VirtualizationService w języku Java, które są dostępne tylko na urządzeniach z obsługą AVF. Te interfejsy API są opcjonalne i nie należą do usługi
thebootclasspath
. - Microdroid
- Minisystem operacyjny Android udostępniany przez Google, który działa w pVM.
- Menedżer Microdroid
- Zarządza cyklem życia pVM, w pVM i na dysku instancji.
- Natywny interfejs API
- Podzbiór zestawu Android Native Developers Kit (NDK).
- chroniona maszyna wirtualna oparta na jądrze (pKVM)
- Zobacz Hypervisor.
- Firmware pVM (
pvmfw
) - Pierwszy kod, który działa na pVM,
pvmfw
weryfikuje ładunek i wyprowadza tajny klucz dla danej maszyny wirtualnej. - chroniona maszyna wirtualna
Środowisko wykonania z wzajemnym brakiem zaufania („gościa”), które działa obok głównego systemu operacyjnego Android („gospodarza”). pVM są zarządzane przez pKVM.
W porównaniu z dotychczasowymi zaufanymi środowiskami wykonawczymi (TEE) maszyny wirtualne w chmurze oferują bogatsze środowisko, w tym dystrybucję mini-Androida o nazwie Microdroid. Maszyny wirtualne w chmurze można wykorzystywać dynamicznie. Zapewniają one standardowy zestaw interfejsów API, który jest dostępny na wszystkich obsługiwanych urządzeniach.
- VirtualizationService
Usługa Androida, która zarządza cyklem życia pVM.
Co dalej?
- Jeśli chcesz lepiej zrozumieć, dlaczego potrzebna jest usługa AVF, przeczytaj artykuł Dlaczego warto korzystać z AVF?.
- Więcej informacji o używaniu AVF do kompilacji odizolowanej znajdziesz w sekcji Przypadki użycia.
- Jeśli chcesz dowiedzieć się więcej o architekturze implementacji referencyjnej AVF, zapoznaj się z artykułem Architektura AVF.
- Więcej informacji o Microdroid znajdziesz w artykule Microdroid.
- Jeśli chcesz dowiedzieć się, jak AVF radzi sobie z bezpieczeństwem, zapoznaj się z artykułem Bezpieczeństwo.
- Aby dowiedzieć się więcej o roli usługi wirtualizacji, zapoznaj się z artykułem VirtualizationService.
- Kod źródłowy AVF lub szczegółowe informacje o poszczególnych komponentach znajdziesz w repozytorium AOSP.