از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
نمای کلی چارچوب مجازی سازی اندروید (AVF).
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Android Virtualization Framework (AVF) محیط های اجرایی امن و خصوصی را برای اجرای کد فراهم می کند. AVF برای موارد استفاده مبتنی بر امنیت که به تضمین های ایزوله قوی تر، حتی به طور رسمی تأیید شده، نسبت به موارد ارائه شده توسط سندباکس برنامه اندروید نیاز دارند، ایده آل است. اندروید یک پیاده سازی مرجع از تمام اجزای مورد نیاز برای پیاده سازی AVF ارائه می دهد. AVF فقط در دستگاه های ARM64 پشتیبانی می شود. شکل 1 معماری AVF را نشان می دهد:

شکل 1. معماری AVF.
در اینجا تعاریف مهم ترین اصطلاحات از شکل 1 آورده شده است:
- apexd و zipfuse
- APEXها و APKهای وارد شده از میزبان را ایمن نصب می کند.
- authfs
- یک سیستم فایل فیوز برای به اشتراک گذاری ایمن چندین فایل بین Android و pVM (میزبان و مهمان).
- کلاسور
- ابزار اصلی ارتباط بین VM.
- crosvm
- مانیتور ماشین مجازی که با زنگ زدگی نوشته شده است. crosvm حافظه VM را اختصاص میدهد، رشتههای CPU مجازی ایجاد میکند و بکاندهای دستگاه مجازی را پیادهسازی میکند.
- تصویر هسته عمومی (GKI)
- یک تصویر بوت تایید شده توسط Google که حاوی یک هسته GKI است که از درخت منبع Android Common Kernel (ACK) ساخته شده است و برای فلش شدن در پارتیشن بوت دستگاه اندرویدی مناسب است. برای اطلاعات بیشتر، به نمای کلی Kernel مراجعه کنید.
- هایپروایزر
- فناوری مجازی سازی که توسط AVF استفاده می شود، همچنین به عنوان pKVM شناخته می شود. هایپروایزر یکپارچگی کد اجرا شده و محرمانه بودن دارایی های pVM را حفظ می کند، حتی اگر اندروید میزبان یا هر یک از pVM های دیگر به خطر بیفتد.
- Java API
- API های جاوا VirtualizationService که فقط در دستگاه هایی با پشتیبانی AVF وجود دارند. این APIها اختیاری هستند و بخشی از
thebootclasspath
نیستند. - میکرودروئید
- یک سیستم عامل مینی اندروید ارائه شده توسط گوگل که در یک pVM اجرا می شود.
- مدیر میکرودروید
- چرخه حیات pVM، داخل pVM و دیسک نمونه را مدیریت می کند.
- Native API
- زیرمجموعه ای از کیت توسعه دهندگان بومی Android (NDK).
- ماشین مجازی مبتنی بر هسته محافظت شده (pKVM)
- به Hypervisor مراجعه کنید.
- سیستم عامل pVM (
pvmfw
) - اولین کدی که بر روی یک pVM اجرا میشود،
pvmfw
بار بار را تأیید میکند و رمز هر VM را استخراج میکند. - ماشین مجازی محافظت شده (pVM)
یک محیط اجرای جدا شده ( مهمان ) که در کنار سیستم عامل اصلی اندروید ( میزبان ) اجرا می شود. یکی از جنبه های مهم امنیت pVM این است که حتی اگر هاست به خطر بیفتد، میزبان به حافظه pVM دسترسی ندارد. pKVM هاپروایزر استاندارد برای اجرای pVM ها است.
در مقایسه با محیط های اجرایی قابل اعتماد موجود (TEE)، pVM ها محیط غنی تری را ارائه می دهند، از جمله توانایی اجرای یک توزیع مینی اندروید به نام Microdroid (اگرچه Microdroid می تواند روی یک VM محافظت نشده نیز اجرا شود). pVM ها را می توان به صورت پویا مورد استفاده قرار داد و مجموعه ای استاندارد از API ها را در یک محیط قابل اعتماد در همه دستگاه هایی که از آنها پشتیبانی می کنند در دسترس است.
- سرویس مجازی سازی
سرویس اندرویدی که چرخه حیات pVM ها را مدیریت می کند.
بعدش چی؟
- اگر می خواهید نیاز به AVF را بهتر درک کنید، به چرا AVF مراجعه کنید؟ .
- برای مطالعه نحوه استفاده از AVF برای کامپایل کردن جدا شده، به موارد استفاده مراجعه کنید.
- اگر توضیح عمیق تری در مورد معماری پیاده سازی مرجع AVF می خواهید، به معماری AVF مراجعه کنید.
- اگر می خواهید در مورد Microdroid بیاموزید، به Microdroid مراجعه کنید.
- اگر علاقه مند هستید که AVF چگونه امنیت را مدیریت می کند، به امنیت مراجعه کنید.
- برای درک نقش سرویس مجازی سازی، به VirtualizationService مراجعه کنید.
- برای کد منبع AVF یا توضیح عمیق در مورد اجزای جداگانه، به مخزن AOSP مراجعه کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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 بهوقت ساعت هماهنگ جهانی."],[],[],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)"]]