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

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

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

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

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

apexd и zipfuse
Обеспечивает безопасное монтирование файлов APEX и APK, импортированных с хоста.
авторизация
Файловая система FUSE для безопасного обмена несколькими файлами между Android и pVM (хостом и гостем).
папка
Основной способ связи между виртуальными машинами.
crosvm
Монитор виртуальных машин, написанный на 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.
Менеджер Microdroid
Управляет жизненным циклом pVM, внутренними процессами pVM и дисковым пространством экземпляра.
Нативный API
Подмножество комплекта разработчика Android Native Developers Kit (NDK).
защищенная виртуальная машина на основе ядра (pKVM)
См. Гипервизор .
Прошивка pVM ( pvmfw )
Первый код, который выполняется на виртуальной машине pVM, pvmfw проверяет полезную нагрузку и вычисляет секретный ключ для каждой виртуальной машины.
защищенная виртуальная машина (pVM)
Виртуальная машина, управляемая гипервизором, работающая в незащищенной среде или среде Realm и изолированная от хостовой ОС Android, так что доступ к ней предотвращается даже в случае компрометации хоста Android.

pVM поддерживают расширенные среды, включая дистрибутивы на базе Linux. Концепция pVM не является эксклюзивной для Google. Партнерские виртуальные машины (SoC/OEM), отвечающие ограничениям по изоляции/доступу к памяти, также являются pVM.

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

Что дальше?

  • Чтобы лучше понять необходимость создания артериовенозной фистулы (АВФ), обратитесь к разделу «Почему АВФ?» .
  • Чтобы узнать о том, как AVF можно использовать для изолированной компиляции, обратитесь к разделу «Примеры использования» .
  • Если вам требуется более подробное объяснение архитектуры эталонной реализации AVF, обратитесь к разделу «Архитектура AVF» .
  • Если вы хотите узнать больше о Microdroid, обратитесь к Microdroid .
  • Если вас интересует, как AVF обеспечивает безопасность, обратитесь к разделу «Безопасность» .
  • Чтобы понять роль службы виртуализации, обратитесь к разделу VirtualizationService .
  • Исходный код AVF или подробное описание отдельных компонентов можно найти в репозитории AOSP.