Omówienie platformy Android Virtualization Framework (AVF)

Platforma wirtualizacji Androida (AVF) zapewnia bezpieczne i prywatne środowiska wykonywania kodu. AVF idealnie nadaje się do zastosowań związanych z bezpieczeństwem, które wymagają większej, a nawet formalnie zweryfikowanej izolacji niż ta oferowana przez piaskownicę aplikacji na Androidzie. Android udostępnia implementację referencyjną wszystkich komponentów potrzebnych do wdrożenia AVF. AVF jest obsługiwany tylko na urządzeniach z architekturą ARM64. Rysunek 1 przedstawia architekturę AVF:

Architektura AVF

Rysunek 1. architekturę AVF,

Oto definicje najważniejszych terminów z rysunku 1:

apexd i zipfuse
Bezpiecznie montuje pliki APEX i APK importowane z hosta.
authfs
System plików FUSE do bezpiecznego udostępniania wielu plików między Androidem a pVM (hostem i gościem).
binder
Podstawowy sposób komunikacji między maszynami wirtualnymi.
crosvm
Monitor maszyny wirtualnej napisany w języku Rust. crosvm przydziela pamięć maszyny wirtualnej, tworzy wątki wirtualnego procesora i implementuje backendy urządzeń wirtualnych.
Ogólny obraz jądra (GKI)
Obraz rozruchowy certyfikowany przez Google, który zawiera jądro GKI utworzone z drzewa źródłowego wspólnego jądra Androida (ACK) i nadaje się do zapisania na partycji rozruchowej urządzenia z Androidem. Więcej informacji znajdziesz w omówieniu jądra.
hiperwizor
Technologia wirtualizacji używana przez AVF, znana też jako pKVM. Hiperwizor zachowuje integralność wykonywanego kodu i poufność zasobów pVM, nawet jeśli bezpieczeństwo hosta Androida lub którejkolwiek z innych pVM zostało naruszone.
Java API
Interfejsy API Java VirtualizationService, które są dostępne tylko na urządzeniach obsługujących AVF. Te interfejsy API są opcjonalne i nie są częścią usługi thebootclasspath.
Microdroid
Miniaturowy system operacyjny Android dostarczony przez Google, który działa w pVM.
Menedżer Microdroida
Zarządza cyklem życia pVM w pVM i na dysku instancji.
Interfejs Native API
Podzbiór pakietu Android Native Developers Kit (NDK).
chroniona maszyna wirtualna oparta na jądrze (pKVM)
Zobacz Hypervisor.
Oprogramowanie pVM (pvmfw)
Pierwszy kod uruchamiany na pVM, pvmfwweryfikuje ładunek i wyprowadza tajny klucz dla każdej maszyny wirtualnej.
chroniona maszyna wirtualna (pVM)
Maszyna wirtualna zarządzana przez hiperwizor, działająca w środowisku niezabezpieczonym lub w środowisku realm i odizolowana od systemu operacyjnego Android, dzięki czemu dostęp jest niemożliwy nawet w przypadku naruszenia bezpieczeństwa hosta Androida.

pVM obsługują bogate środowiska, w tym dystrybucje oparte na systemie Linux. Koncepcja pVM nie jest wyłączną własnością Google. Maszyny wirtualne zdefiniowane przez partnera (SoC/OEM), które spełniają ograniczenia dotyczące izolacji i dostępu do pamięci, są również maszynami pVM.

VirtualizationService
Usługa Androida, która zarządza cyklem życia pVM.

Co dalej?

  • Jeśli chcesz lepiej zrozumieć, dlaczego potrzebujesz AVF, przeczytaj artykuł Dlaczego AVF?.
  • Więcej informacji o tym, jak AVF może być używany do kompilacji izolowanej, znajdziesz w sekcji Przypadki użycia.
  • Szczegółowe wyjaśnienie architektury referencyjnej implementacji AVF znajdziesz w sekcji Architektura AVF.
  • Więcej informacji o Microdroidzie znajdziesz w artykule Microdroid.
  • Jeśli chcesz dowiedzieć się, jak AVF radzi sobie z bezpieczeństwem, zapoznaj się z sekcją 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 wyjaśnienie poszczególnych komponentów znajdziesz w repozytorium AOSP.