سيسمح مشروع جديد يسمى Dynamic Android للمطورين باختبار AOSP Android Q GSIs على أي جهاز يعمل بنظام Android Q أو إصدار أحدث.
شكرا ل مشروع التريبل، قام صانعو أجهزة الهواتف الذكية بتقديم تحديثات برنامج Android Pie بشكل أسرع مما كانوا قادرين على القيام بذلك بالنسبة لتحديث Android Oreo، على الأقل بالنسبة للهواتف الذكية الرائدة. ومع ذلك، لا ترغب Google في رؤية مصنعي المعدات الأصلية فقط يحصدون فوائد Project Treble. سبق للشركة أعرب عن الاهتمام في إطلاق صورة النظام العامة (GSI) لنظام Android Q للمطورين حتى لا يضطروا إلى الاعتماد على المحاكيات، استخدم الخدمات السحابيةأو انتظر تحديثًا على أجهزتهم الخاصة لاختبار التطبيق وفقًا لأحدث مستوى لواجهة برمجة التطبيقات. من الناحية النظرية، فإن إصدار GSI يجب أن يسمح لأي مطور باستخدام جهاز متوافق مع Project Treble (في الأصل Android 8.0 Oreo وما فوق، ولكن يتم اعتبارها الآن فقط الأجهزة التي تعمل بنظام Android 9 Pie) لاختبار أحدث إصدار من Android إصدار. كل ما يتعين على المطور فعله هو وميض صورة النظام أعلى تثبيت البرنامج الحالي الخاص به - دون الحاجة إلى استرداد مخصص أو تمهيد أو صورة البائع.
ومع ذلك، هناك العديد من المشاكل في عملية تثبيت GSI الحالية. أولاً، أنت بحاجة إلى أداة تحميل التشغيل غير المؤمّنة، والتي غير ممكن على أجهزة Huawei أو Honor (بدون دفع تكلفة) وأجهزة Nokia التابعة لشركة HMD Global (باستثناء نوكيا 8)، أو الأجهزة التي تحمل العلامة التجارية لشركة الاتصالات الأمريكية. التالي، عملية سيكون من الصعب على أي شخص ليس على دراية بالصور الوامضة عبر fastboot. وأخيرًا، سيتطلب وميض GSI الآن مسح وحدة التخزين الداخلية بالكامل، مما يعني أنك ستحتاج على الأرجح إلى جهاز احتياطي للاختبار عليه. في الوقت الحالي، يعد وميض GSI مجرد شيء يستخدمه مصنعو المعدات الأصلية لاختبار توافق Project Treble على أجهزتهم، وبعد ذلك، فهو لا يجذب سوى المتعصبين عشاق ROM المخصص. قد يتطلع مشروع Google "Dynamic Android" الجديد إلى تغيير ذلك.
Android الديناميكي - يمكنك بسهولة اختبار AOSP GSIs على أي جهاز Android Q
خلال الأشهر القليلة الماضية، عملت Google على إيجاد طريقة لتشغيل GSI بشكل آمن دون الحاجة إلى إلغاء قفل أداة تحميل التشغيل. باختصار، تعمل Google على تطوير تطبيق يتمتع بأذونات خاصة تسمح له بتنزيل GSI، وحجز مساحة تخزين له، ووضع علامة على GSI على أنه قابل للتمهيد. هناك عدة مكونات لهذا المشروع، لذلك دعونا نناقشها واحدة تلو الأخرى.
Android الديناميكي وAndroid On Tap
تتم إضافة خدمتين جديدتين إلى Android Q: خدمات Dynamic Android وAndroid On Tap. بينما يتولى Dynamic Android عملية تثبيت GSI، يقوم Android On Tap بإعلام تطبيقات النظام بعمليات الاسترجاعات وأهداف البث. على سبيل المثال، يقوم Android On Tap بتنبيه KeyguardManager ليطلب من المستخدم تأكيد طلب التثبيت إذا كان الجهاز محميًا برمز PIN أو كلمة مرور أو نمط. يقوم AOT أيضًا بتنبيه المستخدم عند تشغيله في GSI.
وبحسب وصف "DynamicAndroidManager"، فإن الخدمة "تقدم آلية لاستخدام نظام Android جديد الصورة مؤقتًا." بعد التثبيت، يمكن للجهاز إعادة التشغيل في الصورة المثبتة حديثًا باستخدام الصورة التي تم إنشاؤها حديثًا /data. تؤدي إعادة التشغيل أثناء استخدام GSI إلى إرجاع المستخدم إلى صورة النظام الأصلية، ولكن يتم فقط تعطيل الصورة المثبتة حديثًا وبياناتها ولا يتم حذفها. إذا اختار المستخدم القيام بذلك، فيمكن إزالة GSI وبياناته بالكامل.
مصادر: [1], [2], [3], [4]
GSID
يخصص برنامج GSI مساحة في القسم /data لتخزين صورة GSI وبياناتها ولجعل الصورة قابلة للتمهيد. يتم تخزين البيانات الوصفية لـ GSI في /metadata، بينما يتم تخزين GSI نفسه وبياناته في /data/gsi. افتراضيًا، يخصص GSID 8 جيجابايت من بيانات المستخدم لـ GSI المثبت حديثًا. بشكل عام، يبحث GSID عن مساحة خالية تبلغ 40% على الأقل قبل بدء التثبيت. وأخيرًا، يمنع البرنامج الخفي المستخدم من تثبيت GSI داخل GSI، لأسباب واضحة.
مصادر: [1], [2], [3], [4]
حماية
تم تمكين Android Verified Boot (AVB) لصورة نظام EXT4 المثبتة حديثًا (تم تثبيت system_gsi على /system). نفذت Google أيضًا سياسات SELinux للخدمات الجديدة. وأخيرًا، يتطلب تثبيت GSI أن يحصل التطبيق على إذن MANAGE_DYNAMIC_ANDROID الجديد. هذا إذن على مستوى التوقيع مما يعني أنه يجب توقيع التطبيق بواسطة الشركة المصنّعة للمعدات الأصلية (OEM).
مصادر: [1], [2]
أوامر ADB و Fastboot
ستكون GSIs أيضًا قابلة للتثبيت عبر أوامر ADB الجديدة. سيسمح أمر ADB gsi_tool shell الجديد للمستخدمين بتعطيله وإعادة تمكينه وتثبيته والحفاظ عليه بيانات المستخدم، أو تثبيت بيانات المستخدم وإنشائها، أو تثبيت بيانات المستخدم ومسحها، أو التحقق من حالة تثبيت.
gsi_tool - command-line tool for installing GSI images.
Usage:
gsi_tool <disable|install|wipe|status> [options]
disable Disable the currently installed GSI.
enable Enable a previously disabled GSI.
installInstall a new GSI. Specify the image sizewith
--gsi-size and the desired userdata size with
--userdata-size (the latter defaults to 8GiB)
--wipe (remove old gsi userdata first)
wipe Completely remove a GSI and its associated data
status Showstatus
ستتم إضافة أمرين fastboot جديدين لإدارة GSI، على الرغم من أن تثبيت fastboot غير مدعوم لأن fastboot لا يمكنه تحميل بيانات المستخدم.
fastboot gsi wipe
fastboot gsi disable
مصادر: [1], [2]
من سيستفيد هذا؟
أريد أن أقول إن مطوري التطبيقات سيكونون قادرين على الاستفادة من Dynamic Android وAndroid On Tap، لكنني لست متأكدًا تمامًا. على الرغم من أن جوجل قد أعربت عن اهتمامها بهذا الأمر، إلا أنه ليس هناك ما يضمن أن هذه الميزة ستكون متاحة في كل إصدار من Android Q مصنعي المعدات الأصلية غير التابعين لشركة Google. للاستفادة من هذا على الجهاز، يحتاج البرنامج إلى تطبيق GSI Picker الذي تم توقيعه بنفس الشهادة مثل ذاكرة للقراءة فقط. لست متأكدًا أيضًا من أن تثبيت GSIs من ADB سيكون ممكنًا بدون جذر ADB بسبب سياسات SELinux.تحديث: جديد يقترف يؤكد أن جذر ADB سيكون مطلوبًا لاستخدام GSI_tool. إذا لم يكن هذا مخصصًا لمطوري التطبيقات لاختبار تطبيقاتهم على إصدار نظيف من Android، فمن المحتمل أن يكون ذلك فقط يفيد المهندسين من مصنعي المعدات الأصلية الذين يتطلعون إلى اختبار مجموعة اختبار التوافق (CTS) ومجموعة اختبار البائع (VTS) على أجهزة الكمبيوتر الخاصة بهم الأجهزة.
شكر خاص لمطور XDA المعترف به luca020400 لمساعدته في هذا المقال.