اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
نظرة عامة على إطار عمل Android Virtualization Framework (AVF)
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يقدّم إطار عمل Android Virtualization (AVF) بيئة تنفيذ
آمنة وخاصةً لتنفيذ الرموز البرمجية. إنّ ميزة AVF مثالية لحالات الاستخدام المرتكزة على الأمان
التي تتطلّب ضمانات عزل أقوى، حتى لو تم التحقّق منها رسميًا، مقارنةً بتلك التي
يوفّرها وضع التطبيقات المحمية في Android. يوفّر Android نموذجًا مرجعيًا لتطبيق
جميع المكوّنات اللازمة لتنفيذ AVF. لا تتوفّر ميزة AVF إلا
على أجهزة ARM64. يعرض الشكل 1 بنية AVF:
الشكل 1: بنية AVF
في ما يلي تعريفات لأهم المصطلحات الواردة في الشكل 1:
- apexd وzipfuse
- تثبيت حِزم APEX وحِزم APK التي تم استيرادها من المضيف بأمان
- authfs
- نظام ملفات Fuse لمشاركة ملفات متعددة بأمان بين Android وpVM
(المضيف والضيف)
- مُلصق
- الوسيلة الأساسية للتواصل بين الأجهزة الافتراضية:
- crosvm
- مُراقب جهاز افتراضي مكتوب بلغة Rust: يخصّص crosvm ذاكرة الجهاز الافتراضي ويُنشئ مؤشرات عمليات وحدة المعالجة المركزية الافتراضية وينفّذ الخلفيات للجهاز الافتراضي.
- Generic Kernel Image (GKI)
- صورة تمهيد معتمَدة من Google تحتوي على نواة GKI تم إنشاؤها من شجرة رمز مصدر
Android Common Kernel (ACK) وهي مناسبة لفلاشها على
قسم التمهيد في جهاز Android لمزيد من المعلومات، اطّلِع على نظرة عامة على ملف kernel.
- برنامج إدارة الأجهزة الافتراضية
- تقنية المحاكاة الافتراضية المستخدَمة في AVF، والتي تُعرف أيضًا باسم pKVM. يحافظ
نظام التشغيل الظاهري على سلامة الرمز البرمجي الذي يتم تنفيذه والسرية
لمواد عرض جهاز افتراضي للأجهزة الجوّالة، حتى إذا تم اختراق نظام Android المضيف أو أي من أجهزة افتراضية للأجهزة الجوّالة الأخرى.
- Java API
- واجهات برمجة التطبيقات VirtualizationService Java API، والتي لا تتوفّر إلا على الأجهزة التي تتوافق مع
AVF واجهات برمجة التطبيقات هذه اختيارية وليست جزءًا من
thebootclasspath
.
- Microdroid
- نظام تشغيل Android صغير مقدَّم من Google ويتم تشغيله في جهاز افتراضي شخصي (pVM).
- Microdroid Manager
- تدير دورة حياة جهاز pVM داخل جهاز pVM وقرص المثيل.
- واجهة برمجة التطبيقات الأصلية
- مجموعة فرعية من مجموعة تطوير البرامج الأصلية لنظام التشغيل Android (NDK)
- جهاز افتراضي محمي يستند إلى النواة (pKVM)
- راجِع برنامج Hypervisor.
- البرامج الثابتة لنظام التشغيل pVM (
pvmfw
)
- الرمز البرمجي الأول الذي يتم تشغيله على جهاز افتراضي مخصّص للتطبيقات،
pvmfw
يُثبت صحة الحمولة ويُنشئ
السرية لكل جهاز افتراضي.
- آلة افتراضية محمية (pVM)
بيئة تنفيذ معزولة غير موثوق بها (ضيف) تعمل بجانب نظام التشغيل Android الرئيسي (المضيف). أحد الجوانب المهمة لأمان VM هو أنّه حتى إذا تم اختراق المضيف، لن يتمكّن المضيف من الوصول إلى ذاكرة VM. وتعدّ pKVM هي نظام التشغيل الظاهري العادي لتشغيل أجهزة VM.
مقارنةً ببيئات التنفيذ الموثوق الحالية (TEE)، توفّر آلات افتراضية شخصية
بيئة أكثر تنوعًا، بما في ذلك إمكانية تشغيل إصدار مصغر من Android
يُسمى Microdroid (على الرغم من أنّه يمكن تشغيل Microdroid أيضًا على
آلة افتراضية غير محمية). يمكن استخدام آلات افتراضية شخصية بشكل ديناميكي وتوفير
مجموعة عادية من واجهات برمجة التطبيقات في بيئة موثوقة متاحة على جميع الأجهزة
التي تتوافق معها.
- VirtualizationService
خدمة Android التي تدير دورة حياة الأجهزة الافتراضية.
ما هي الخطوات التالية؟
- لفهم الحاجة إلى AVF بشكل أفضل، يُرجى الاطّلاع على مقالة لماذا AVF؟.
- للاطّلاع على كيفية استخدام AVF في عملية الترجمة المجتزأة، يُرجى الرجوع إلى حالات الاستخدام.
- للحصول على شرح أكثر تفصيلاً لبنية تنفيذ AVF المرجعي، يُرجى الرجوع إلى بنية AVF.
- إذا كنت تريد الاطّلاع على معلومات عن Microdroid، يمكنك الرجوع إلى مقالة Microdroid.
- إذا كنت مهتمًا بمعرفة كيفية تعامل AVF مع الأمان، يُرجى الرجوع إلى
الأمان.
- لفهم دور خدمة المحاكاة الافتراضية، يُرجى الرجوع إلى
VirtualizationService.
- للحصول على رمز المصدر لـ AVF أو شرح مفصّل عن المكوّنات الفردية،
يُرجى الرجوع إلى مستودع AOSP.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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)"]]