وراء تحديثات النظام الديناميكية في Android Q: كيف تستخدم Google Project Treble لتحسين إصدارات Android المستقبلية

جنبًا إلى جنب مع إصدار Android 8.0 Oreo ، كشفت Google النقاب عن Project Treble: وهو عبارة عن عملية بحث رئيسية في طريقة اتصال نظام التشغيل Android و HALs الخاص بالمورد و Linux kernel. تعد Treble إحدى المبادرات الرئيسية المصممة لتقليل إصدار نظام Android وتجزئة تصحيح الأمان ، وجميع الأجهزة التي تحمل علامة Android والتي يتم إطلاقها باستخدام Android Pie مطلوبة لدعم Project Treble. يقوم مصنعو المعدات الأصلية والبائعون باختبار توافق Treble من خلال تشغيل صورة نظام عام (GSI) - وهو عبارة عن مجموعة أسهم خالصة من نظام Android من AOSP - ويمر Vendor Test Suite (VTS) وصورة نظام اختبار التوافق على نظام عام (CTS-on-GSI) ). أثبتت GSI أنها مفيدة ليس فقط في السماح لمهندسي البرامج الذين يعملون في توافق OEMs باختبار توافق Treble ، ولكن أيضًا فتح الباب أمام مجتمع ROM مخصص كبير. بالنسبة لإصدار Android Q ، ترغب Google في جعل GSIs مفيدة لمجموعة أخرى: مطورو التطبيقات.

نظرًا لأن أول إصدار ثابت وإسقاط شفرة المصدر لأي إصدار أساسي لنظام Android معين عادةً ما يأتي في أغسطس ، فإن المطورين الذين يريدون اختبار إصدار Android التالي على جهاز حقيقي يحتاجون عادةً إلى الوصول إلى هاتف ذكي من Google إذا كانوا لا يريدون الانتظار التحديث للوصول إلى الأجهزة الخاصة بهم. ومع ذلك ، تعاونت Google مع شركات تصنيع المعدات الأصلية لتقديم نسخة تجريبية من نظام Android P للعديد من الأجهزة في العام الماضي ، وقد تابعوا هذا العام باستخدام إصدار تجريبي من نظام Android Q. إلى جانب إصدار Android Q beta رسمي ، أصدرت Google هذا العام أيضًا إصدارًا رسميًا من Q beta GSI حتى يتمكن أي مطور لديه جهاز متوافق مع Treble من Project من تثبيت أحدث إصدار Q دون الحاجة إلى الانتظار شهورًا للوصول إلى أجهزته. توفر هذه الطريقة الجديدة لاختبار إصدار Android التالي للمطورين مزيدًا من الفرص ، وبالتالي مزيدًا من الوقت ، لاختبار تطبيقاتهم مقابل التغييرات الرئيسية في Android.

لسوء الحظ ، قد تكون الطريقة الحالية لتثبيت GSI صعبة. يتطلب الأمر إلغاء قفل أداة تحميل التشغيل - مما يعني مسح جميع بيانات المستخدم و / أو إلغاء الضمان - ووميض صورة عبر بروتوكول fastboot. إنها ليست عملية سريعة وبسيطة يقوم بها مطور التطبيقات ، حتى لو كان أجهزته يسمح بإلغاء تأمين محمل الإقلاع. لهذا السبب ، خلال الأشهر القليلة الماضية ، عملت Google على طريقة جديدة لتمهيد GSI. أدخل ميزة جديدة تسمى Dynamic System Update ، أو DSU.

(تم تطوير هذه الميزة مسبقًا تحت اسم "Live Image" و "Dynamic Android" و "Android on Tap" ، لذلك لا تتفاجأ إذا اتصلت Google بشيء آخر في غضون بضعة أسابيع أو أشهر.)

تحديثات النظام الديناميكية في Android Q

الهدف من ميزة DSU هو السماح للمطور بالتمهيد إلى GSI دون التدخل في التثبيت الحالي. هذا يعني أن أداة تحميل التشغيل لا تحتاج إلى إلغاء القفل ولا يلزم مسح بيانات المستخدم. كما أن عملية التثبيت مبسطة إلى حد كبير حيث قدمت Google واجهة سطر أوامر عبر ADB وتطبيقًا يمكن التحكم فيه عن طريق النوايا. إليك ما يبدو أنه تمهيد GSI باستخدام DSU:

في هذا الفيديو * ، تم إعادة تشغيل Google Pixel 3 XL الذي يشغل Android Q beta 3 في GSI. في هذه البيئة ، يمكن لمطور التطبيق تثبيت واختبار تطبيقاته من أجل توافق Q API. عند الانتهاء من الاختبار ، يمكنهم ببساطة إعادة التشغيل إلى برنامج Q beta 3 العادي على الجهاز. إنك تقوم أساسًا بتشغيل ثنائي GSI حتى تتمكن من اختبار تطبيقك بأمان!

* سجلنا هذا الفيديو في Google I / O 2019 عندما لم تكن خدمة DSU متاحة للجمهور حتى الآن ، لذلك تم تعديل الإصدار التجريبي من Q-Beta 3 على Pixel 3 XL الذي تم تصويره بواسطة Google لتضمين دعم DSU. الأجهزة التي تشغل Q beta 4 والإصدارات الأحدث مؤهلة لدعم DSU إذا كانت تفي بالمتطلبات أدناه.

متطلبات تحديثات النظام الديناميكية

الحصول على ما هو التشغيل المزدوج أساسًا لم يكن مهمة سهلة لـ Google. يجب إجراء تغييرات كبيرة على طريقة إدارة الأقسام في Pixel 3 ، اختبار Google لجامعة DSU. وبالتالي ، فإن الشرط الرئيسي الأول لدعم DSU هو أن الجهاز يدعم الأقسام الديناميكية . تتضمن الأقسام الديناميكية قسمًا حقيقيًا للتخزين ينقسم إلى أقسام منطقية يمكن تغيير حجمها مثل النظام أو البائع أو odm أو oem أو المنتج ، إلخ. أثناء تثبيت GSI ، يتم تخصيص المساحة لأقسام النظام وبيانات المستخدم الجديدة من خلال أخذ كتل غير مستخدمة من الأجزاء الموجودة قسم بيانات المستخدم. نظرًا لأن هذه الأقسام الجديدة يمكن أن يكون حجمها عدة غيغا بايت ، فإن دعم DSU يكون منطقيًا فقط مع الأقسام المنطقية وإلا فقد يحتاج الجهاز إلى حجز عدة غيغابايت من مساحة التخزين بشكل دائم لتركيبات GSI.

تتضمن المتطلبات الأخرى ramdisk ، التي تقرر ما إذا كنت تريد التمهيد إلى الاسترداد ، أو النظام ، أو القسم المنطقي ، وقسم البيانات الوصفية لتخزين بيانات التعريف الخاصة بـ GSI. بشكل عام ، فإن لبنات دعم DSU هي متطلبات إطلاق Android Q ، وفقًا لـ Project Treble Iliyan Malchev. لسنا متأكدين مما إذا كان كل ما هو مطلوب لدعم DSU هو أحد متطلبات إطلاق Android Q ، ولكن يمكننا أن نفترض أن معظم ، إن لم يكن جميع الأجهزة التي تعمل بنظام Android Q ، يمكنها دعم DSU حتى إذا كانت Google لا تطلبها حاليًا. حتى الآن ، فقط Pixel 3 و Pixel 3 XL و Pixel 3a XL و Pixel 3a XL لديها أقسام ديناميكية ، ومن هذه الأجهزة ، فقط Pixel 3 و Pixel 3 XL يدعم DSU في Android Q beta 4. على الرغم من أن دعم DSU ليس كذلك مطلوبًا ، وتأمل Google أن تقوم جهات تصنيع المعدات الأصلية بتمكين الميزة على أي حال لأنها تعمل على تبسيط الاختبار الآمن للتوافق مع Treble. على سبيل المثال ، يمكن لمهندس برامج OEM وضع GSI على بطاقة SD حتى يتمكنوا من التمهيد بسرعة على أجهزة متعددة لاختبار توافق Treble.

أمان تحديثات النظام الديناميكية

نظرًا لأن DSU تقدم نظام تشغيل ثانيًا في هذا المزيج ، يجب على Google التأكد من أنه لا يمكن العبث بهذا التثبيت الجديد لكسر سلامة الجهاز. وبالتالي ، توجد نفس الحماية الأمنية الأساسية للتثبيت الأصلي في مكان تثبيت GSI : سياسات Android Verified Boot و SELinux. علاوة على ذلك ، فقط التطبيقات التي تحمل توقيع INSTALL_DYNAMIC_SYSTEM | يمكن الحصول على إذن متميز من تثبيت GSI ، بينما يمكن للتطبيقات التي لديها إذن توقيع MANAGE_DYNAMIC_SYSTEM تمكين / تعطيل أو مسح تثبيت GSI. هذا يعني أنه يمكن فقط للتطبيقات المعتمدة على مستوى النظام العمل مع DSU.

لضمان حماية بيانات المستخدم الأصلية ، أضافت Google آلية حماية إضافية في Android Q. تسمى " نقطة تفتيش " ، حيث تحمي الميزة من إتلاف بيانات المستخدم من خلال استعادة أقسام نقاط التفتيش إلى حالتها الأصلية. نقاط التفتيش مفيدة ليس فقط لجامعة DSU ، رغم ذلك. كما أنها تستخدم للحماية من وحدة APEX Project Mainline الفاشلة وتحديثات A / B OTA. (تحتوي الأجهزة التي تحتوي على أقسام A / B بالفعل على الحماية من التراجع ، ولكن تلك الاستعادة تتطلب إعادة ضبط بيانات المصنع بينما لا تتوفر نقاط فحص بيانات المستخدم.)

تثبيت GSI

إذا كان جهازك يدعم DSU مثل سلسلة Pixel 3 ، فمن السهل تثبيت GSI. عليك أولاً التأكد من تمكين علامة ميزة النظام الديناميكي من خلال إحدى الطريقتين التاليتين:

  1. إذا كنت تستخدم بنية userdebug ، فقم بتمكين علامة settings_dynamic_android في الإعدادات> النظام> خيارات المطور> إشارات المعالم.
  2. إذا كنت تعمل على إنشاء مستخدم ، فقم بتشغيل الأمر adb shell التالي:
     setprop persist.sys.fflag.override.settings_dynamic_system 1 

بعد ذلك ، قم بتنزيل أحدث إصدار من Android Q beta GSI من Google أو من الشركة المصنعة للجهاز. (لا تسمح DSU إلا بتثبيت GSIs الموقعة من Google أو الشركة المصنّعة للمعدات الأصلية.) بمجرد التنزيل ، استخدم simg2img لتحويل الصورة المتفرقة إلى صورة خام. استخدم gzip لحزم الصورة الخام ، ثم انسخ الأرشيف الناتج إلى موقع على وحدة التخزين الخارجية لجهازك (مثل / data / media / 0 / Download) أو وسيط تخزين خارجي فعلي (مثل بطاقة SD الفعلية). أخيرًا ، قم بتشغيل تطبيق DynamicSystemInstallationService بقصد الحق في بدء التثبيت:

 adb shell am start-activity \ -n com.android.dynsystem/com.android.dynsystem.VerificationActivity \ -a android.os.image.action.START_INSTALL \ -d file:///storage/emulated/0/Download/system_raw.gz \ --el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \ --el KEY_USERDATA_SIZE 8589934592 

تثبيت GSI قيد التقدم. المصدر: جوجل.

إخطار DSU. المصدر: جوجل.

بمجرد النقر فوق "إعادة التشغيل" ، ستتم التمهيد في GSI. تعتمد قابلية استخدام الجهاز في GSI على مدى نجاح تطبيق OEM الخاص بجهازك على Treble (أو بالأحرى ، إلى أي مدى ينتهكون توافق Treble.) ستعمل بعض الأجهزة بشكل أفضل مع GSI أكثر من الأجهزة الأخرى ، ولكن بشكل عام ، لا تتوقع استخدام هذا التثبيت كسائق يومي. من المفترض اختبار التطبيق الخاص بك ثم الخروج عن طريق إعادة التشغيل. إذا كنت تريد البقاء في تثبيت GSI لمزيد من الاختبارات ، فيمكنك استخدام الأمر gsi_tool shell.

يمكن العثور هنا على تعليمات تثبيت GSI الكاملة لجهاز DSU. يمكن تقديم الأخطاء في Google Issue Tracker أو Reddit أو Stack Overflow.

السبب وراء تحديثات النظام الديناميكية

عندما تحدثت إلى Iliyan Malchev في Google I / O ، كرر ما قاله Hung-ying Tyan من فريق Treble حول الوصول المبكر إلى GSI في Android Dev Summit في نوفمبر. جعل Google DSU لطلب التعليقات من أكبر عدد ممكن من الجمهور . الهدف هو تحسين جودة GSI ، والتي بدورها تعمل على تحسين جودة إصدار Android في المستقبل لأن GSI هو أنقى أشكال Android. تعد Google حاليًا الشركة الوحيدة التي تختبر توافق GSI للنسخة التالية (على سبيل المثال ، إلى أي مدى تعمل صورة نظام Android Q أعلى تطبيق مورّد Android P) ، ولكن مع زيادة عدد الأشخاص الذين يقومون ببحث GSI وتقديم تعليقات ، يمكن لمصنعي المعدات الأصلية إصلاح توافق Treble الانتهاكات حتى GSIs ستعمل بشكل أفضل في المستقبل. يقول Iliyan أن هناك اهتمامًا كبيرًا من مصنعي المعدات الأصلية والبائعين مثل كوالكوم بإعادة استخدام صور البائعين من إصدار Android السابق مع صورة نظام الإصدار التالي. تساعد مبادرات مثل DSU Google و OEM على سد الفجوة في التغطية من الاختبارات الآلية مثل VTS و CTS-on-GSI. وبالتالي ، تحصل Google على المزيد من مختبري الإصدار التجريبي لتقديم ملاحظات حول إصدار Android التالي ، بينما تسمع أيضًا عن انتهاكات توافق Treble حتى يمكن لمصنعي المعدات الأصلية تحسين عملهم.

نرحب بإضافة تحديثات النظام الديناميكي في Android Q ، لكنه لن يكون الحل المزدوج الذي يأمل البعض منكم. كما ذكرنا سابقًا ، يمكن تثبيت صور النظام الموقعة من Google أو الشركات المصنعة الأصلية فقط. عندما سألت Iliyan عن إمكانية تمديد DSU لدعم نظام بيئي لأنظمة Android البديلة ، قال إنه من الممكن تقنيًا القيام بذلك لأن DSU هي مجرد قناة لتقديم صور النظام. يمكن لأي مصنع OEM استخدامه ، لكنهم يريدون طالما كانت النتيجة النهائية متوافقة مع Android . لم تنشئ Google بديلاً لنظام OTA هنا ، وليس المقصود من DSU أن تستخدم للتشغيل المزدوج الحقيقي. بصرف النظر عن ذلك ، فإن العمل الذي قامت به Google على Treble يجعل نظام Android أكثر نمطيًا ، لذا لن أدهش إذا أصبح التشغيل الأصلي المزدوج حقيقة واقعة على الطريق.