يقدم Android Oreo واجهة سطر الأوامر للسمات

مع إطلاق Android Oreo يأتي الكثير من الوقت الذي تقضيه في البحث عن الأشياء الجيدة المخفية داخل شفرة المصدر. في الماضي ، تحدث فريق الهندسة Android عن تمكينهم في Android O. لقد أبلغنا في مايو أن معاينة المطور الثاني لنظام Android O ربما كانت تلميحًا من Google التي تدعم خدمة Overlay Manager (OMS) وتراكب موارد وقت التشغيل (RRO) ) ، لكننا نعرف الآن أنه كان كذلك. يدعم Android Oreo الآن ، من الناحية الفنية ، تطبيق OMS / RRO ويوفر أيضًا واجهة لتمكين أو تعطيل السمات ، شريطة أن تتمكن من المعدة باستخدام سطر الأوامر.

تحديث: Substratum يستخدم هذه الأوامر مع معاينات dev والآن مع Oreo منذ توفرها!


ما هي RRO و OMS؟

تم تطوير RRO داخليًا بواسطة Sony للحصول على وظائف السمات على خط Sony Xperia. عملت المطورين الذين أدركوا أهميتها على مد دعمها إلى مدمجة أخرى ، ومعها جاء RRO لهم عبر العديد من الأجهزة - وليس فقط أجهزة Sony. لقد استبدلت الموارد ببراعة في وقت تشغيل التطبيق ، وسهولة الاستخدام غير المرئية من خيارات السمات الأخرى في ذلك الوقت. لقد تطور هذا الأمر ليصبح نظام إدارة العمليات (OMS) ، والذي طورته شركة Sony داخليًا أيضًا. استخدم Layers Manager المشهور RRO في الأصل ، ولكن تم تعديل OMS لاحقًا وفقًا لما يعرف الآن باسم Substratum وهو إطار العمل الأكثر شيوعًا للمستخدمين في منتدياتنا الآن. ROMs على منتدياتنا مع إلتزامات OMS تعني أنها تدعم محرك الإشتغال القياسي لـ Substratum. يستخدم "الوضع القديم" الموجود في الطبقة التحتية شيوع RRO.


Android Oreo يقدم أوامر السمة

يبدو أن Google ترغب الآن في دعم نوع السمة هذا بشكل كامل في AOSP ، وربما تتجه نحو مدير مظاهر كامل يدعمه النظام. على Android Gerrit ، أجرت Google عددًا من التغييرات في الأشهر الأخيرة (ومع Android Oreo) التي تشير إلى خطوات لتمكين محرك theming على مستوى النظام. التغييرات أدناه ، مع روابط إلى التزاماتهم الخاصة.

  • أوامر تراكب
  • تم تقديم OverlayManagerService (OMS)
  • إذن جديد بعنوان CHANGE_OVERLAY_PACKAGES

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

إذن لماذا يدعم Android Oreo تقنياً فقط؟ حسنًا ، الإجابة البسيطة هي أنه بينما يمكنك استدعاء طريقة النظام لتثبيت السمات ، فإن القيام بذلك سيثبت أنه لا معنى له. هذا لأنه على الرغم من أنه يمكنك استخدام واجهة سطر الأوامر الجديدة لإدارة السمات المثبتة ، لا يمكنك في الواقع تثبيت سمات جديدة دون الوصول إلى الجذر لأن السمات تحتاج إلى الانتقال إلى دليل محظور من مساحة المستخدم. مع الوصول إلى الجذر ، يمكنك ببساطة تمكين سمة Substratum على أي حال ، لذلك ليست هناك حاجة للقيام بذلك بطريقة جديدة. لم تقم Google بتضمين تطبيق نظام لتصميم الجهاز ، لذلك حتى ذلك الحين لا فائدة من محاولة القيام بذلك بالطريقة المضمنة حديثًا.

سطر الأوامر Theming واجهة

لقد اختبرنا الأمر على Google Pixel الذي يشغل إصدار Android Oreo. قررنا اختبار بعض الأوامر واستخدمنا أولاً

 cmd overlays list 

لعرض جميع التراكبات المثبتة مسبقًا. لاحظنا وجود "com.google.android.theme.pixel" ، تعطيله وبدلاً من ذلك تمكين "android.auto_generated_rro__" من خلال تشغيل الأوامر التالية.

كما يمكن رؤيته هنا ، يتم تعطيل التراكب القياسي وتم تمكين التراكب التلقائي. تشغيل أمرنا لعرض التراكبات المثبتة لدينا مرة أخرى ، نرى الناتج التالي.

ينتج عن هذا تطبيق إعدادات نظام Android تحت عنوان حديثًا على Google Pixel. لاحظ أن قائمة التراكب أعلاه تتضمن أيضًا سمات مثبتة باستخدام الطبقة التحتية ، وتمكنا من تمكين / تعطيلها بنفس السهولة.

auto_generated_rro الموضوع

وجدنا أيضا أمر آخر عند الحفر من خلال المصدر. الأمر كما يلي

 cmd overlay dump --user 0 

يعطينا الإخراج التالي.

انتاج |

الإعدادات

android.auto_generated_rro __: 0 {

mPackageName ......: android.auto_generated_rro__

المستخدم ...: 0

mTargetPackageName .: android

mBaseCodePath .........: / البائع / Overlay/framework-res__auto_generated_rro.apk

mState ...........: STATE_ENABLED

mIsEnabled ......: صحيح

mIsStatic .......: صحيح

}

com.google.android.theme.pixel: 0 {

mPackageName .......: com.google.android.theme.pixel

المستخدم ...: 0

mTargetPackageName .: android

mBaseCodePath .........: / البائع / Overlay/Pixel/PixelThemeOverlay.apk

mState ...........: STATE_DISABLED

mIsEnabled .............: خطأ

mIsStatic .......: خطأ

}

التراكبات الافتراضية: com.google.android.theme.pixel

PackageInfo مخبأ

2 حزمة (حزم)

كما يتبين ، قامت Google بالكثير من العمل لتطوير محرك التشغيل ودمجه في مصدر AOSP. يبدو أنه إذا تمت إضافته على مستوى النظام ، سيتم تمكين السمات داخل موالف System UI. قدّمت Google أيضًا معلومات عن المصنّعين الأصليين ، لذلك من الممكن أن تمكّن جهات تصنيع المعدات الأصلية الإضافية من دعمها بناءً على إصدار AOSP في المستقبل على Android Oreo.

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