Omówienie platformy wirtualizacji Androida (AVF)

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:

Architektura AVF

Rysunek 1. Architektura 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, pvmfwweryfikuje ł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.