Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Обзор платформы виртуализации Android (AVF)
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Android Virtualization Framework (AVF) предоставляет безопасные и приватные среды выполнения для выполнения кода. AVF идеально подходит для случаев использования, ориентированных на безопасность, которые требуют более надежных, даже формально проверенных гарантий изоляции по сравнению с теми, которые предлагает изолированная программная среда Android. Android предоставляет эталонную реализацию всех компонентов, необходимых для реализации AVF. AVF поддерживается только на устройствах ARM64. На рисунке 1 показана архитектура 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-интерфейсы VirtualizationService Java, которые присутствуют только на устройствах с поддержкой 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 в доверенной среде, доступной на всех устройствах, которые их поддерживают.
- ВиртуализацияСервис
Служба Android, управляющая жизненным циклом pVM.
Что дальше?
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# Android Virtualization Framework (AVF) overview\n\n*Android Virtualization Framework (AVF)* provides secure and private execution\nenvironments for executing code. AVF is ideal for security-oriented use cases\nthat require stronger, even formally verified, isolation assurances over those\noffered by Android's app sandbox. Android provides a reference implementation\nof all the components needed to implement AVF. AVF is supported only\non ARM64 devices. Figure 1 shows the architecture of AVF:\n\n**Figure 1.** AVF architecture.\n\nHere are the definitions for the most important terms from figure 1:\n\n*apexd and zipfuse*\n: Securely mounts APEXes and APKs imported from host.\n\n*authfs*\n: A fuse file system for securely sharing multiple files between Android and pVM\n (host and guest).\n\n*binder*\n: Primary means of inter-VM communication.\n\n*crosvm*\n: A virtual machine monitor written in rust. crosvm allocates VM memory,\n creates virtual CPU threads, and implements the virtual device's back-ends.\n\n*Generic Kernel Image (GKI)*\n: A boot image certified by Google that contains a GKI kernel built from an\n Android Common Kernel (ACK) source tree and is suitable to be flashed to the\n boot partition of an Android device. For further information, see the [Kernel\n overview](/docs/core/architecture/kernel).\n\n*hypervisor*\n: The virtualization technology used by AVF, also known as *pKVM*. The\n hypervisor maintains the integrity of the executed code and confidentiality of\n the pVM's assets, even if host Android or any of the other pVMs are compromised.\n\n*Java API*\n: The VirtualizationService Java APIs, which are present only on devices with\n AVF support. These APIs are optional and not part of `thebootclasspath`.\n\n*Microdroid*\n: A Google-provided mini-Android OS that runs in a pVM.\n\n*Microdroid Manager*\n: Manages the pVM lifecycle, inside the pVM, and instance disk.\n\n*Native API*\n: A subset of the Android Native Developers Kit (NDK).\n\n*protected kernel-based virtual machine (pKVM)*\n: See [Hypervisor](#hyper).\n\n*pVM firmware (`pvmfw`)*\n: The first code that runs on a pVM, `pvmfw` verifies the payload and derives\n the per-VM secret.\n\n*protected virtual machine (pVM)*\n\n: A mutually distrusted isolated execution environment (*guest* ) that runs\n alongside the main Android operating system (*host*). One important aspect of\n pVM security is even if the host is compromised, the host doesn't have access\n to a pVM's memory. pKVM is the standard hypervisor for running pVMs.\n\n Compared to existing trusted execution environments (TEEs), pVMs provide a\n richer environment, including the ability to run a mini-Android distribution\n called [Microdroid](#micro) (though Microdroid can also run on an\n unprotected VM). pVMs can be used dynamically and provide a\n standard set of APIs in a trusted environment available across all devices\n that support them.\n\n*VirtualizationService*\n\n: The Android service that manages the lifecycle of pVMs.\n\nWhat's next?\n------------\n\n- If you want to better understand the need for AVF, refer to [Why AVF?](/docs/core/virtualization/whyavf).\n- To read about how AVF can be used for isolated compilation, refer to [Use cases](/docs/core/virtualization/usecases).\n- If you want a more in-depth explanation of the AVF reference implementation's architecture, refer to [AVF architecture](/docs/core/virtualization/architecture).\n- If you want to learn about Microdroid, refer to [Microdroid](/docs/core/virtualization/microdroid).\n- If you are interested in how AVF handles security, refer to [Security](/docs/core/virtualization/security).\n- To understand the role of the virtualization service, refer to [VirtualizationService](/docs/core/virtualization/virtualization-service).\n- For source code of AVF or in-depth explanation about individual components, refer to [AOSP\n repository](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main)"]]