يوفر Android Virtualization Framework (AVF) بيئات تنفيذ آمنة وخاصة لتنفيذ التعليمات البرمجية. يعد AVF مثاليًا لحالات الاستخدام الموجهة نحو الأمان والتي تتطلب ضمانات عزل أقوى، وحتى تم التحقق منها رسميًا، مقارنة بتلك التي يوفرها وضع حماية تطبيقات Android. يوفر Android تطبيقًا مرجعيًا لجميع المكونات اللازمة لتنفيذ AVF. حاليًا، يتم دعم AVF فقط على أجهزة ARM64. ويبين الشكل 1 بنية AVF:
فيما يلي تعريفات أهم المصطلحات من الشكل 1:
- أبيكسد و زيبفيوز
- يقوم بتثبيت APEXes وملفات APK المستوردة من المضيف بشكل آمن.
- autfs
- نظام ملفات مصهر للأمان ومشاركة ملفات متعددة بين Android وpVM (المضيف والضيف).
- الموثق
- الوسيلة الأساسية للاتصال بين VM.
- com.crosvm
- شاشة آلة افتراضية مكتوبة باللون الصدأ. يخصص crosvm ذاكرة VM، وينشئ مؤشرات ترابط وحدة المعالجة المركزية الافتراضية، وينفذ الواجهة الخلفية للجهاز الظاهري.
- صورة النواة العامة (GKI)
- صورة تمهيد معتمدة من Google تحتوي على نواة GKI مبنية من شجرة مصدر Android Common Kernel (ACK) وهي مناسبة للوميض إلى قسم التمهيد لجهاز Android. لمزيد من المعلومات، راجع نظرة عامة على Kernel .
- مراقب الأجهزة الافتراضية
- تقنية المحاكاة الافتراضية التي يستخدمها AVF، والمعروفة أيضًا باسم pKVM . يحافظ برنامج Hypervisor على سلامة التعليمات البرمجية المنفذة وسرية أصول pVM، حتى لو تم اختراق Android أو أي من pVMs الأخرى.
- جافا API
- واجهات برمجة تطبيقات Java VirtualizationService، والتي تكون موجودة فقط على الأجهزة التي تدعم AVF. تعتبر واجهات برمجة التطبيقات هذه اختيارية وليست جزءًا من
thebootclasspath
. - ميكرودرويد
- نظام تشغيل Android صغير توفره Google ويعمل في pVM.
- مدير مايكرودرويد
- يدير دورة حياة pVM، داخل pVM، وقرص المثيل.
- واجهة برمجة التطبيقات الأصلية
- مجموعة فرعية من Android Native Developers Kit (NDK).
- الجهاز الظاهري المحمي القائم على النواة (pKVM)
- راجع مراقب الأجهزة الافتراضية .
- البرامج الثابتة pVM (
pvmfw
) - الكود الأول الذي يتم تشغيله على pVM،
pvmfw
يتحقق من الحمولة ويشتق السر لكل VM. - الجهاز الظاهري المحمي (pVM)
بيئات تنفيذ معزولة غير موثوقة بشكل متبادل ("الضيوف") تعمل جنبًا إلى جنب مع نظام التشغيل Android الرئيسي ("المضيف"). تتم إدارة pVMs بواسطة pKVM.
بالمقارنة مع بيئات التنفيذ الموثوقة الحالية (TEEs)، توفر pVMs بيئة أكثر ثراءً، بما في ذلك توزيعة Android صغيرة تسمى Microdroid . يمكن استخدام pVMs ديناميكيًا وتوفير مجموعة قياسية من واجهات برمجة التطبيقات المتاحة عبر جميع الأجهزة التي تدعمها.
- VirtualizationService
خدمة Android التي تدير دورة حياة pVMs.
ماذا بعد؟
- إذا كنت تريد فهم الحاجة إلى AVF بشكل أفضل، فارجع إلى لماذا AVF؟ .
- لقراءة كيفية استخدام AVF للتجميع المعزول، راجع حالات الاستخدام .
- إذا كنت تريد شرحًا أكثر تعمقًا لبنية تطبيق مرجع AVF، فارجع إلى بنية AVF .
- إذا كنت تريد التعرف على Microdroid، فارجع إلى Microdroid .
- إذا كنت مهتمًا بكيفية تعامل AVF مع الأمان، فارجع إلى الأمان .
- لفهم دور خدمة المحاكاة الافتراضية، راجع VirtualizationService .
- للحصول على الكود المصدري لـ AVF أو شرح متعمق حول المكونات الفردية، راجع مستودع AOSP
يوفر Android Virtualization Framework (AVF) بيئات تنفيذ آمنة وخاصة لتنفيذ التعليمات البرمجية. يعد AVF مثاليًا لحالات الاستخدام الموجهة نحو الأمان والتي تتطلب ضمانات عزل أقوى، وحتى تم التحقق منها رسميًا، مقارنة بتلك التي يوفرها وضع حماية تطبيقات Android. يوفر Android تطبيقًا مرجعيًا لجميع المكونات اللازمة لتنفيذ AVF. حاليًا، يتم دعم AVF فقط على أجهزة ARM64. ويبين الشكل 1 بنية AVF:
فيما يلي تعريفات أهم المصطلحات من الشكل 1:
- أبيكسد و زيبفيوز
- يقوم بتثبيت APEXes وملفات APK المستوردة من المضيف بشكل آمن.
- autfs
- نظام ملفات مصهر للأمان ومشاركة ملفات متعددة بين Android وpVM (المضيف والضيف).
- الموثق
- الوسيلة الأساسية للاتصال بين VM.
- com.crosvm
- شاشة آلة افتراضية مكتوبة باللون الصدأ. يخصص crosvm ذاكرة VM، وينشئ مؤشرات ترابط وحدة المعالجة المركزية الافتراضية، وينفذ الواجهة الخلفية للجهاز الظاهري.
- صورة النواة العامة (GKI)
- صورة تمهيد معتمدة من Google تحتوي على نواة GKI مبنية من شجرة مصدر Android Common Kernel (ACK) وهي مناسبة للوميض إلى قسم التمهيد لجهاز Android. لمزيد من المعلومات، راجع نظرة عامة على Kernel .
- مراقب الأجهزة الافتراضية
- تقنية المحاكاة الافتراضية التي يستخدمها AVF، والمعروفة أيضًا باسم pKVM . يحافظ برنامج Hypervisor على سلامة التعليمات البرمجية المنفذة وسرية أصول pVM، حتى لو تم اختراق Android أو أي من pVMs الأخرى.
- جافا API
- واجهات برمجة تطبيقات Java VirtualizationService، والتي تكون موجودة فقط على الأجهزة التي تدعم AVF. تعتبر واجهات برمجة التطبيقات هذه اختيارية وليست جزءًا من
thebootclasspath
. - ميكرودرويد
- نظام تشغيل Android صغير توفره Google ويعمل في pVM.
- مدير مايكرودرويد
- يدير دورة حياة pVM، داخل pVM، وقرص المثيل.
- واجهة برمجة التطبيقات الأصلية
- مجموعة فرعية من Android Native Developers Kit (NDK).
- الجهاز الظاهري المحمي القائم على النواة (pKVM)
- راجع مراقب الأجهزة الافتراضية .
- البرامج الثابتة pVM (
pvmfw
) - الكود الأول الذي يتم تشغيله على pVM،
pvmfw
يتحقق من الحمولة ويشتق السر لكل VM. - الجهاز الظاهري المحمي (pVM)
بيئات تنفيذ معزولة غير موثوقة بشكل متبادل ("الضيوف") تعمل جنبًا إلى جنب مع نظام التشغيل Android الرئيسي ("المضيف"). تتم إدارة pVMs بواسطة pKVM.
بالمقارنة مع بيئات التنفيذ الموثوقة الحالية (TEEs)، توفر pVMs بيئة أكثر ثراءً، بما في ذلك توزيعة Android صغيرة تسمى Microdroid . يمكن استخدام pVMs ديناميكيًا وتوفير مجموعة قياسية من واجهات برمجة التطبيقات المتاحة عبر جميع الأجهزة التي تدعمها.
- VirtualizationService
خدمة Android التي تدير دورة حياة pVMs.
ماذا بعد؟
- إذا كنت تريد فهم الحاجة إلى AVF بشكل أفضل، فارجع إلى لماذا AVF؟ .
- لقراءة كيفية استخدام AVF للتجميع المعزول، راجع حالات الاستخدام .
- إذا كنت تريد شرحًا أكثر تعمقًا لبنية تطبيق مرجع AVF، فارجع إلى بنية AVF .
- إذا كنت تريد التعرف على Microdroid، فارجع إلى Microdroid .
- إذا كنت مهتمًا بكيفية تعامل AVF مع الأمان، فارجع إلى الأمان .
- لفهم دور خدمة المحاكاة الافتراضية، راجع VirtualizationService .
- للحصول على الكود المصدري لـ AVF أو شرح متعمق حول المكونات الفردية، راجع مستودع AOSP