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

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

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

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

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

VirtualizationService

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

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

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