نظرة عامة على إطار عمل Android Virtualization Framework (AVF)

يوفّر إطار عمل Android Virtualization (AVF) بيئة تنفيذ آمنة وخاصةً لتنفيذ الرموز البرمجية. إنّ ميزة "وضع التطبيقات في حاويات افتراضية" مثالية لحالات الاستخدام المرتكزة على الأمان التي تتطلّب ضمانات عزل أقوى، حتى لو تم التحقّق منها رسميًا، مقارنةً بتلك التي يوفّرها وضع التطبيقات في مساحة محاكاة Android. يوفّر Android نموذج تنفيذ مرجعيًا لجميع المكوّنات اللازمة لتنفيذ AVF. لا تتوفّر حاليًا ميزة AVF إلا على أجهزة ARM64. يعرض الشكل 1 بنية AVF:

بنية 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
واجهات برمجة تطبيقات Java لـ VirtualizationService، والتي لا تتوفّر إلا على الأجهزة التي تتوافق مع AVF واجهات برمجة التطبيقات هذه اختيارية وليست جزءًا من thebootclasspath.
Microdroid
نظام تشغيل Android صغير مقدَّم من Google ويتم تشغيله في جهاز افتراضي شخصي (pVM).
Microdroid Manager
تدير دورة حياة جهاز pVM داخل جهاز pVM وقرص المثيل.
واجهة برمجة التطبيقات الأصلية
مجموعة فرعية من مجموعة تطوير البرامج الأصلية لنظام التشغيل Android (NDK)
جهاز افتراضي محمي يستند إلى النواة (pKVM)
راجِع برنامج Hypervisor.
البرامج الثابتة لنظام التشغيل pVM (pvmfw)
الرمز البرمجي الأول الذي يتم تشغيله على جهاز افتراضي مخصّص للتطبيقات، pvmfw يُثبت صحة الحمولة ويستخرج السرية لكل جهاز افتراضي.
آلة افتراضية محمية (pVM)

بيئة تنفيذ منعزلة غير موثوق بها (ضيف) تعمل بجانب نظام التشغيل Android الرئيسي (المضيف). من الجوانب المهمة في أمان جهاز pVM أنّه حتى في حال اختراق المضيف، لا يمكن للمضيف الوصول إلى ذاكرة جهاز pVM. وبرنامج pKVM هو برنامج إدارة الأجهزة الافتراضية العادي لتشغيل أجهزة pVM.

مقارنةً ببيئات التنفيذ الموثوق بها الحالية (TEE)، توفّر آلات افتراضية محمولة (pVM) بيئة أكثر تنوعًا، بما في ذلك إمكانية تشغيل إصدار مصغر من Android يُسمى Microdroid (على الرغم من أنّه يمكن تشغيل Microdroid أيضًا على آلة افتراضية غير محمية). يمكن استخدام آلات pVM ديناميكيًا وتوفير مجموعة قياسية من واجهات برمجة التطبيقات في بيئة موثوقة متاحة على جميع الأجهزة التي تتوافق معها.

VirtualizationService

خدمة Android التي تدير دورة حياة الأجهزة الافتراضية.

ما هي الخطوات التالية؟

  • لفهم الحاجة إلى AVF بشكل أفضل، يُرجى الاطّلاع على لماذا AVF؟.
  • للاطّلاع على كيفية استخدام AVF في عملية الترجمة المجتزأة، يُرجى الرجوع إلى حالات الاستخدام.
  • للحصول على شرح أكثر تفصيلاً لبنية التنفيذ المرجعي لإطار عمل AVF، يُرجى الرجوع إلى بنية AVF.
  • إذا كنت تريد الاطّلاع على معلومات عن Microdroid، يمكنك الرجوع إلى مقالة Microdroid.
  • إذا كنت مهتمًا بمعرفة كيفية تعامل AVF مع الأمان، يُرجى الرجوع إلى الأمان.
  • لفهم دور خدمة المحاكاة الافتراضية، يُرجى الرجوع إلى VirtualizationService.
  • للحصول على رمز المصدر لـ AVF أو شرح مفصّل عن المكوّنات الفردية، يُرجى الرجوع إلى مستودع AOSP.