Обзор платформы виртуализации Android (AVF)

Android Virtualization Framework (AVF) предоставляет безопасные и приватные среды выполнения кода. AVF идеально подходит для случаев, ориентированных на безопасность, где требуются более надежные, даже формально подтвержденные, гарантии изоляции по сравнению с «песочницей» приложений Android. Android предоставляет референсную реализацию всех компонентов, необходимых для реализации AVF. AVF поддерживается только на устройствах ARM64. На рисунке 1 показана архитектура AVF:

Архитектура AVF

Рисунок 1. Архитектура AVF.

Вот определения наиболее важных терминов из рисунка 1:

apexd и zipfuse
Надежно монтирует APEX и APK, импортированные с хоста.
authfs
Файловая система Fuse для безопасного обмена несколькими файлами между Android и pVM (хостом и гостем).
связующее
Основные средства межвиртуальной коммуникации.
кроссвм
Монитор виртуальной машины, написанный на Rust. Crosvm выделяет память виртуальной машины, создает потоки виртуальных ЦП и реализует внутренние механизмы виртуального устройства.
Универсальный образ ядра (GKI)
Загрузочный образ, сертифицированный Google, содержащий ядро ​​GKI, собранное из исходного дерева Android Common Kernel (ACK) и подходящее для прошивки в загрузочный раздел устройства Android. Подробнее см. в разделе «Обзор ядра» .
гипервизор
Технология виртуализации, используемая AVF, также известная как pKVM . Гипервизор сохраняет целостность исполняемого кода и конфиденциальность ресурсов pVM, даже если хост-система Android или любая другая pVM скомпрометирована.
Java API
API-интерфейсы Java VirtualizationService, которые присутствуют только на устройствах с поддержкой AVF. Эти API необязательны и не входят в путь thebootclasspath .
Микродроид
Мини-ОС Android, разработанная Google и работающая в pVM.
Менеджер микродроидов
Управляет жизненным циклом pVM внутри pVM и диском экземпляра.
Собственный API
Подмножество Android Native Developers Kit (NDK).
защищенная виртуальная машина на базе ядра (pKVM)
См. Гипервизор .
прошивка pVM ( pvmfw )
Первый код, работающий на pVM, pvmfw проверяет полезную нагрузку и выводит секрет для каждой виртуальной машины.
защищенная виртуальная машина (pVM)

Изолированная среда выполнения ( гостевая ), работающая параллельно с основной операционной системой Android ( хостом ). Важным аспектом безопасности pVM является то, что даже в случае взлома хоста он не имеет доступа к памяти pVM. pKVM — стандартный гипервизор для запуска pVM.

По сравнению с существующими доверенными средами выполнения (TEE), pVM предоставляют более богатую среду, включая возможность запуска мини-дистрибутива Android под названием Microdroid (хотя Microdroid может работать и на незащищенной виртуальной машине). pVM могут использоваться динамически и предоставляют стандартный набор API в доверенной среде, доступной на всех устройствах, которые их поддерживают.

VirtualizationService

Служба Android, управляющая жизненным циклом pVM.

Что дальше?