يتضمن Android Oreo دعم واجهة سطر الأوامر لموضوعات RRO، مما يشير إلى أن نظام التشغيل يقترب أكثر من أي وقت مضى من دعم السمات على مستوى النظام.
مع إطلاق Android Oreo، تم قضاء الكثير من الوقت في البحث عن الأشياء الجيدة المخفية داخل الكود المصدري. في الماضي، قام فريق هندسة Android بذلك تحدثت عن تمكين السمات في Android O. أبلغنا في مايو أن معاينة المطور الثانية لنظام Android O ربما كانت بمثابة تلميح إلى دعم Google لخدمة Overlay Manager Service (OMS) وRuntime Resource Overlay (RRO)، لكننا نعرف الآن على وجه اليقين أنه كان كذلك. اندرويد اوريو الان, من الناحية الفنية، يدعم سمات OMS/RRO ويوفر أيضًا واجهة لتمكين السمات أو تعطيلها، بشرط أن تتمكن من استخدام سطر الأوامر.
التحديث: يستخدم Substratum هذه الأوامر مع معاينات التطوير والآن مع Oreo منذ أن كانت متاحة!
ما هي RRO وOMS؟
تم تطوير RRO داخليًا بواسطة شركة Sony لوظيفة السمة على خط Sony Xperia. لقد عمل المطورون الذين أدركوا أهميتها على توسيع دعمها ليشمل ROMs أخرى، ومعها جاءت ميزات RRO عبر العديد من الأجهزة - وليس فقط أجهزة Sony. لقد استبدل الموارد ببراعة في وقت تشغيل التطبيق، مما أدى إلى سهولة الاستخدام غير المرئية من خيارات السمات الأخرى في ذلك الوقت. لقد تطور هذا إلى OMS، والذي تم تطويره أيضًا داخليًا بواسطة شركة Sony. الشهير
مدير الطبقات استخدمت سمات RRO في الأصل، ولكن تم تعديل OMS لاحقًا إلى ما يُعرف الآن باسم Substratum وهو إطار عمل السمات الأكثر دراية للمستخدمين في منتدياتنا الآن. إن ROM الموجودة في منتدياتنا مع التزامات OMS تعني أنها تدعم محرك السمات القياسي الخاص بـ Substratum. "الوضع القديم" داخل الطبقة التحتية يستخدم سمات RRO.يقدم Android Oreo أوامر السمة
يبدو أن Google ترغب الآن في تقديم الدعم الكامل لهذا النوع من السمات في AOSP، ومن المحتمل أن تتجه نحو مدير سمات كامل يدعمه النظام. بالنسبة لنظام Android Gerrit، أجرت Google عددًا من التغييرات في الأشهر الأخيرة (وباستخدام Android Oreo) والتي تقترح خطوات لتمكين محرك السمات على مستوى النظام. التغييرات أدناه، مع روابط للالتزامات الخاصة بها.
- تراكب الأوامر
- تم تقديم OverlayManagerService (OMS).
- إذن جديد بعنوان CHANGE_OVERLAY_PACKAGES
تشير كل هذه التغييرات إلى تحرك Google نحو شكل من أشكال تطبيق سمات النظام ليتم تضمينه في المستقبل. يتطلب الإذن المذكور أعلاه امتيازات النظام، وبالتالي يعني أن تطبيق النظام فقط (أو تطبيق له حق الوصول إلى الجذر) يمكنه استدعاء هذا الإذن. ومع ذلك، فهو أمر مثير للاهتمام، لأنه يظهر أن Google تعمل أخيرًا على تحقيق ذلك شئ ما.
فلماذا فقط من الناحية الفنية هل يدعم Android Oreo السمات؟ حسنًا، الإجابة البسيطة هي أنه بينما يمكنك استدعاء طريقة النظام لتثبيت السمات، فإن القيام بذلك سيكون بلا جدوى إلى حد ما. وذلك لأنه على الرغم من أنه يمكنك استخدام واجهة سطر الأوامر الجديدة لإدارة السمات المثبتة، إلا أنه لا يمكنك ذلك فعليًا قم بتثبيت سمات جديدة دون الوصول إلى الجذر لأن السمات تحتاج إلى الانتقال إلى دليل مقيد من المستخدم فضاء. من خلال الوصول إلى الجذر، يمكنك ببساطة تمكين سمة الطبقة التحتية على أي حال، لذلك ليست هناك حاجة للقيام بذلك بالطريقة الجديدة. لم تقم Google بتضمين تطبيق نظام لتخصيص الجهاز، لذلك حتى ذلك الحين ليس هناك فائدة على الإطلاق من محاولة القيام بذلك بالطريقة المضمنة حديثًا.
واجهة سمات سطر الأوامر
لقد قمنا في XDA باختبار الأمر على Google Pixel الذي يعمل بإصدار Android Oreo. قررنا اختبار بعض الأوامر واستخدامها أولاً
cmd overlays list
لعرض جميع التراكبات المثبتة مسبقًا. لقد لاحظنا وجود "com.google.android.theme.pixel"، وقمنا بتعطيله وتمكين "android.auto_generated_rro__" بدلاً من ذلك عن طريق تشغيل الأوامر التالية.
كما هو واضح هنا، تم تعطيل التراكب القياسي وتم تمكين التراكب الذي تم إنشاؤه تلقائيًا. عند تشغيل الأمر الخاص بنا لعرض التراكبات المثبتة لدينا مرة أخرى، نرى الإخراج التالي.
وينتج عن هذا تطبيق إعدادات نظام Android ذو السمة الجديدة على Google Pixel الخاص بنا. لاحظ أن قائمة التراكب أعلاه تتضمن أيضًا السمات المثبتة باستخدام Substratum، وقد تمكنا من تمكين/تعطيلها بنفس السهولة.
وجدنا أيضًا أمرًا آخر عند البحث في المصدر. الأمر على النحو التالي
cmd overlay dump --user 0
يعطينا الإخراج التالي.
انتاج |
إعدادات
android.auto_generated_rro__: 0 {
mPackageName...: android.auto_generated_rro__
معرف المستخدم...: 0
mTargetPackageName.: android
mBaseCodePath...: /vendor/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...: /vendor/overlay/Pixel/PixelThemeOverlay.apk
mState...: STATE_DISABLED
mIsEnabled...: خطأ
mIsStatic...: خطأ
}
التراكبات الافتراضية: com.google.android.theme.pixel
ذاكرة التخزين المؤقت لمعلومات الحزمة
2 حزمة (حزم)
اقرأ أكثر
لذا، كما يمكن أن نرى، بذلت Google الكثير من العمل في تطوير محرك السمات ودمجه في مصدر AOSP. يبدو أنه إذا تمت إضافته على مستوى النظام، سيتم تمكين السمات داخل موالف واجهة المستخدم للنظام. جوجل لديها أيضا المعلومات المقدمة لمصنعي المعدات الأصلية، لذلك من الممكن أن يتمكن مصنعو المعدات الأصلية الإضافيون من تمكين دعم السمات بناءً على إصدار AOSP في المستقبل على Android Oreo.
وبشكل عام، يعد هذا تطورًا مثيرًا للغاية. يعد Theming أحد الأجزاء العديدة التي تحدد Android كنظام تشغيل قابل للتخصيص بالكامل على هاتفك، حتى لو كان يتطلب حاليًا الوصول إلى الجذر للموضوعات على مستوى النظام. في المستقبل، إذا تم تمكينه من العمل دون الوصول إلى الجذر، فسيكون ذلك خطوة كبيرة في اتجاه حرية المستخدم. بالطبع، قد يتم قفله في موالف System UI لبعض الوقت (حيث يمكن للموضوعات المعطلة أن تؤدي إلى تعطيل التطبيقات) ولكن يسمح بذلك إن قيام المستخدم حتى بالاستفادة من دعم السمة الأصلية في المقام الأول يعد إضافة كبيرة لتشغيل الهاتف المحمول نظام.