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