توفّر منصة Android Virtualization Framework (AVF) بيئات تنفيذ آمنة وخاصة لتنفيذ الرموز البرمجية. تُعدّ AVF مثالية لحالات الاستخدام التي تركّز على الأمان وتتطلّب ضمانات عزل أقوى، وحتى معتمدة رسميًا، مقارنةً بتلك التي توفّرها بيئة الاختبار المعزولة للتطبيقات في Android. يوفر نظام التشغيل Android تنفيذًا مرجعيًا لجميع المكوّنات اللازمة لتنفيذ AVF. لا تتوافق ميزة AVF إلا مع أجهزة ARM64. يوضّح الشكل 1 بنية AVF:
الشكل 1: بنية AVF
في ما يلي تعريفات لأهم المصطلحات الواردة في الشكل 1:
- apexd وzipfuse
- تثبِّت حِزم APEX وملفات APK التي تم استيرادها من الجهاز المضيف بشكل آمن.
- authfs
- نظام ملفات fuse لمشاركة ملفات متعددة بأمان بين Android وpVM (المضيف والضيف).
- binder
- الوسيلة الأساسية للتواصل بين الأجهزة الافتراضية
- crosvm
- برنامج مراقبة جهاز افتراضي مكتوب بلغة Rust. يخصّص crosvm ذاكرة الجهاز الافتراضي، وينشئ سلاسل وحدات المعالجة المركزية الافتراضية، وينفّذ الخلفيات الخاصة بالجهاز الافتراضي.
- صورة النواة العامة (GKI)
- صورة تشغيل معتمَدة من Google تحتوي على نواة GKI تم إنشاؤها من شجرة مصدر لنواة Android الشائعة (ACK) ومناسبة لتثبيتها في قسم التشغيل على جهاز Android. لمزيد من المعلومات، راجِع نظرة عامة حول النواة.
- hypervisor
- تكنولوجيا المحاكاة الافتراضية التي تستخدمها AVF، والمعروفة أيضًا باسم pKVM يحافظ برنامج Hypervisor على سلامة الرمز التنفيذي وسرية مواد عرض الجهاز الظاهري المحمي، حتى إذا تم اختراق نظام التشغيل Android المضيف أو أي من الأجهزة الظاهرية المحمية الأخرى.
- Java API
- واجهات برمجة تطبيقات Java الخاصة بخدمة VirtualizationService، والتي تتوفّر فقط على الأجهزة المتوافقة مع AVF تكون واجهات برمجة التطبيقات هذه اختيارية وليست جزءًا من
thebootclasspath. - Microdroid
- نظام تشغيل Android مصغّر توفّره Google ويعمل في جهاز افتراضي محمي.
- Microdroid Manager
- تدير دورة حياة الجهاز الافتراضي المحمي (pVM) داخل الجهاز الافتراضي المحمي وقرص الجهاز الافتراضي.
- Native API
- مجموعة فرعية من حزمة تطوير البرامج الأصلية (NDK) لنظام التشغيل Android
- الجهاز الافتراضي المحمي المستند إلى النواة (pKVM)
- اطّلِع على Hypervisor.
- برنامج ثابت لآلة افتراضية محمية (
pvmfw) - يتحقّق الرمز الأول الذي يتم تنفيذه على جهاز pVM من الحمولة ويستمد السر الخاص بكل جهاز pVM.
- الآلة الافتراضية المحمية (pVM)
- جهاز افتراضي يديره برنامج مراقبة الأجهزة الافتراضية، ويتم تشغيله في بيئة غير آمنة أو في عالم النطاق، وهو معزول عن نظام التشغيل Android المضيف، ما يمنع الوصول إليه حتى في حال تعرّض نظام التشغيل Android المضيف للاختراق.
pvmfw
تتيح الآلات الافتراضية المحمية بيئات غنية، بما في ذلك التوزيعات المستندة إلى Linux. إنّ مفهوم pVM ليس حصريًا لشركة Google. تُعدّ الآلات الافتراضية التي يحدّدها الشريك (SoC/OEM) والتي تستوفي متطلبات العزل أو قيود الوصول إلى الذاكرة أيضًا آلات افتراضية محمية.
- VirtualizationService
- خدمة Android التي تدير دورة حياة الأجهزة الافتراضية المحمية (pVM).
ما هي الخطوات التالية؟
- إذا أردت فهم الحاجة إلى AVF بشكل أفضل، يُرجى الرجوع إلى مقالة لماذا AVF؟.
- للاطّلاع على كيفية استخدام AVF في التجميع المعزول، يُرجى الرجوع إلى حالات الاستخدام.
- إذا أردت شرحًا أكثر تفصيلاً لبنية التنفيذ المرجعي لـ AVF، يُرجى الرجوع إلى بنية AVF.
- إذا أردت معرفة المزيد عن Microdroid، يمكنك الرجوع إلى Microdroid.
- إذا كنت مهتمًا بمعرفة كيفية تعامل AVF مع الأمان، يمكنك الرجوع إلى قسم الأمان.
- للتعرّف على دور خدمة المحاكاة الافتراضية، يُرجى الرجوع إلى VirtualizationService.
- للحصول على رمز المصدر الخاص بـ AVF أو شرح تفصيلي حول المكوّنات الفردية، يُرجى الرجوع إلى مستودع AOSP.