حالات الاستخدام

تحتوي هذه الصفحة على حالات الاستخدام الشائعة لميزة "التحقّق من صحة الجهاز".

التحويل البرمجي المعزول

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

يتم تنفيذ ذلك في com.android.compos APEX. هذا المكوّن اختياري ويمكن تضمينه باستخدام ملف makefile.

التحويل البرمجي المعزول

الشكل 1. تجميع ملفات JAR في تحديثات Mainline تجميع ملفات JAR في تحديثات Mainline

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

لا تنشئ خدمة التجميع في الجهاز الافتراضي توقيعًا إلا إذا لم يحدث أي خطأ أثناء عملية التجميع بأكملها. يمكن لنظام التشغيل Android استرداد المفتاح العام من الجهاز الظاهري للتحقّق من التوقيع.

يتم إنشاء مفتاح الجهاز الافتراضي من ملف تعريف DICE الخاص به، والذي تحدّده حِزم APEX وملفات APK المثبَّتة على الجهاز الافتراضي، بالإضافة إلى مَعلمات أخرى للجهاز الافتراضي، مثل إمكانية تصحيح الأخطاء.

لتحديد ما إذا كان المفتاح العام ليس من جهاز افتراضي غير متوقّع، يبدأ Android تشغيل الجهاز الافتراضي لتحديد ما إذا كان المفتاح صحيحًا. يتم تشغيل الجهاز الافتراضي في مرحلة التشغيل المبكر بعد كل تحديث لحزمة APEX.

باستخدام ميزة "التشغيل المتحقّق منه" في "الأجهزة الافتراضية المحمية"، لا تشغّل خدمة التجميع سوى الرموز التي تم التحقّق منها. نتيجةً لذلك، يمكن للرمز البرمجي تحديد قبول الإدخالات التي تستوفي شروطًا معيّنة فقط، مثل قبول ملف إدخال فقط عندما يتم تحديد اسمه وملخص fs-verity في قائمة السماح.

أي واجهات برمجة تطبيقات مكشوفة من الجهاز الظاهري هي أجزاء مُعرضة للهجوم. يُفترض أنّ جميع ملفات الإدخال والمعلَمات واردة من عميل غير موثوق به، ويجب التحقّق منها وفحصها قبل معالجتها.

تتحقّق الآلة الافتراضية من سلامة ملفات الإدخال والإخراج، ويتم تخزين الملفات على نظام التشغيل Android كخادم ملفات غير موثوق به، وذلك على النحو التالي:

  • يجب التحقّق من صحة محتوى ملف الإدخال قبل استخدامه من خلال خوارزمية fs-verity. لكي يصبح ملف إدخال متاحًا في الجهاز الظاهري، يجب توفير تجزئة الجذر الخاصة به في حاوية (حزمة APK) تساهم في ملف تعريف DICE الخاص بالجهاز الظاهري. باستخدام تجزئة الجذر الموثوقة، لا يمكن للمهاجم التلاعب بالمدخلات بدون أن يتم رصده.
  • يجب الحفاظ على سلامة ملف الإخراج في الجهاز الظاهري. حتى إذا تم تخزين ملف إخراج على جهاز Android، يتم الحفاظ على سلامة الملف أثناء إنشائه باستخدام تنسيق شجرة fs-verity نفسه، ولكن يمكن تعديله بشكل ديناميكي. يمكن تحديد ملف الإخراج النهائي باستخدام تجزئة الجذر، التي يتم عزلها في الجهاز الظاهري. تحمي الخدمة في الجهاز الافتراضي ملفات الإخراج من خلال التوقيع.

بيئة تطوير نظام التشغيل Linux

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

تتوفّر بيئة تطوير Linux على أجهزة محدّدة وتعمل في آلة افتراضية غير محمية.

حالة استخدام بيئة تطوير نظام التشغيل Linux

الشكل 2. حالة استخدام بيئة تطوير نظام التشغيل Linux

في ما يلي المكوّنات العالية المستوى للجهاز الظاهري الذي يعمل بنظام التشغيل Linux:

  • تطبيق المحطة الطرفية: هو تطبيق Android يوفّر واجهة محطة طرفية. يستخدم WebView للاتصال بخدمة ويب تعمل في الجهاز الافتراضي للتفاعل. يكون هذا التطبيق غير مفعَّل تلقائيًا. فعِّلها في "إعدادات المطوّرين".
  • إطار عمل المحاكاة الافتراضية لنظام التشغيل Android (AVF): هو نظام فرعي حالي في Android لإنشاء الأجهزة الافتراضية وإدارتها. ولا يتطلّب سوى تعديل بسيط لتوفير إمكانية استخدام صور مخصّصة لنظام التشغيل مع هذه الميزة.
  • الجهاز الافتراضي: هو جهاز افتراضي ينشئه إطار عمل AVF. يستضيف هذا التطبيق خدمة Terminal، وتنشئه إطار عمل AVF خصيصًا لوظائف تطبيق Terminal.
  • صورة نظام التشغيل: صورة نظام تشغيل معدَّلة قليلاً ومستندة إلى Debian من مصدر Debian. ينزّل تطبيق Terminal هذه الصورة من خادم Google خارجي. وهي تشكّل الأساس لتشغيل الجهاز الظاهري.
  • برنامج Guest Agent: برنامج جديد في الجهاز الظاهري. ويُبلغ هذا البرنامج إطار عمل AVF بحالة نظام التشغيل، كما يتيح التحكّم في الآلة الافتراضية.
  • ttyd: برنامج مفتوح المصدر يتم تشغيله في الجهاز الافتراضي وينفّذ محاكاة طرفية عبر HTTP. يتصل WebView في تطبيق Terminal به.
  • Tethering Manager: نظام فرعي حالي في Android ويوفّر إمكانية الوصول إلى الشبكة للجهاز الافتراضي من خلال ربط الجهاز الافتراضي بجهاز Android.