حصري: سوف يتلقى Android Oreo دعمًا بدون دعم على مستوى النظام في غضون أسبوع واحد

دعم OMS الرسمي للموضوع مكشوف بشكل غير رسمي بواسطة الطبقة التحتية

تحديث 09/13/17: تم إصدار الوظيفة الإضافية Andromeda لـ Substratum التي تسمح بالسمات المخصصة على أجهزة Android Oreo غير ذات الجذر. انظر هذه المادة لمزيد من التفاصيل. سيبقى المقال الأصلي أدناه.

مع كل إصدار جديد من نظام التشغيل Android OS من Google ، هناك أسباب قليلة تجعل معظم المستخدمين يستخدمون جذر أجهزتهم. ومع ذلك ، من بين المستخدمين الباقين الذين ما زالوا يختارون تجذير أجهزتهم ، فإن أحد الأسباب الأكثر شيوعًا هو تمكين دعم السمات على مستوى النظام. عادةً ما يتم إدارتها من خلال إطار عمل Substratum theme من أي وقت مضى منذ النهاية المؤسفة لـ CyanogenMod Theme Engine. مع مرور الوقت ، عمل الفريق الذي يقف خلف Substratum بجد على تضمين دعم المزيد من الأجهزة من خلال دمج دعم Substratum على مستوى ROM حتى يمكن تشغيله دون الوصول إلى الجذر. والآن ، أخذ الفريق المشروع إلى أبعد مما كان يمكن أن يتخيله أي منا من خلال توفير دعم كامل للمظاهر على مستوى النظام بدون الجذر لأي جهاز Android Oreo .

لقطات تظهر تطبيق Sai Android Oreo Black Theme الذي يعمل على Google Pixel بدون جذر على Android Oreo 8.0.0

لإعطائك فكرة عن مدى مصداقية هذا التطور ، ضع في اعتبارك أن الأمور التالية ستكون ممكنة الآن بدون جذر :

  • Theming of Android Framework و Android System UI ، وكذلك أي تطبيقات نظام أخرى. (كثير منكم سيحب أن يكون هناك مظهر مظلم متاح ، أخيرًا!)
  • Theming من أي تطبيق طرف ثالث
  • خطوط مخصصة لتطبيقات الطرف الثالث
  • العديد من التعديلات الأخرى مثل شريط الحالة في منتصف ساعة وزارة الدفاع

والقائمة تطول! يحتوي Substratum على قائمة واسعة من الموضوعات المتاحة التي تدعم الإطار (والتي يتم دعمها جميعًا في هذا الإصدار الجديد القادم من Substratum لنظام Android 8.0) ، ومجتمع نشط على Google+ ومنتدياتنا الخاصة ، ونظرا لهذا التطور ، فإن الدعم يرتبط فقط بـ تنمو!


Android Oreo وخدمة Overlay Manager

عينة من بعض سمات الطبقة التحتية.

منذ أن قامت Google بتضمين دعم أصلي لمحرك السمة Runtime Resource Overlay (RRO) من Sony في نظام التشغيل Android 6.0 Marshmallow ، كنا ننتظر أن توفر Google واجهة مضمنة بالإضافة إلى واجهات برمجة التطبيقات العامة التي يمكن للمطورين استخدامها لتمييز كل من تطبيق إطار عمل النظام وكذلك تطبيقات الطرف الثالث. للأسف ، لم يجلب إصدار Android Nougat الجديد إلى الطاولة منذ إضافة RRO من Sony إلى مشروع Android Open Source Project (AOSP).

ولكن بفضل العمل الدؤوب الذي قام به المهندسون في شركة Sony Mobile ، تطوَّر محرك سمة RRO في النهاية إلى ما يُعرف باسم Overlay Manager Service (OMS) ، وهو ما تستند إليه Substratum. كانت شركة Sony رائدة في مجال حل تطبيق المصدر المفتوح ، ولكن نظرًا لأن محرك السمة OMS الخاص به تم قبوله في AOSP وقت إصدار Android 7.1 النهائي ، وهو السبيل الوحيد لمستخدمي الأجهزة غير التابعة لشركة Sony للاستفادة من محرك السمة. من خلال ROM مخصص.

هذا تغير في أندرويد 8.0. عندما تم إصدار Substratum مبدئيًا في معاينات Android O Developer القليلة الأولى ، أدرك مطورو Substratum أن الدعم الكامل لنظام OMS من سوني كان متاحًا. هذا يعني أنه يمكن للمستخدم تثبيت سمة موجودة تدعمها Substratum وسيكون يعمل بشكل كامل على أجهزة Android Oreo دون الحاجة إلى أي تصحيحات ROM. كانت هناك مشكلة واحدة فقط: تتطلب عملية تمكين سمة Substratum مثبتة الوصول إلى الجذر ، أو هكذا اعتقدوا .


جذر ، دعم النظام الأساسي على مستوى النظام الأساسي لنظام Android Oreo

على الرغم من أن المطورين وضعوا عملهم بهدوء في مسألة جعل مستخدمي Android Oreo حلاً لموضوع لا جذور له بالكامل على جهاز النسخ الخلفي ، فقد كنا نبحث بشكل مستقل في كل معاينة Android O Developer ونجد دليلًا على أن محرك السمة قيد التشغيل ، على الرغم من أننا أخطأنا في تعريفه على أنه يعتمد على RRO الأقدم بدلاً من OMS الأحدث من Sony. حتى أن Google أثارت قلق المجتمع حول دعم السمات في AMA المتمحورة حول مطور البرامج على Reddit ، قائلة إنه لا تزال هناك بعض العقبات التي يجب التغلب عليها قبل أن يتم بناء حل كامل للتطبيق على Android.

غير راض عن هذه الإجابة ، أردنا أن نرى إلى أي مدى ذهبت Google في الحصول على دعم السمة لنظام Android Oreo. للقيام بذلك ، حفرت في شفرة المصدر لنظام أندرويد 8.0 بمجرد إسقاط الإصدار النهائي ، واكتشفت وجود أوامر ADB shell التي يمكن أن تمكن أو تعطل التراكبات ، والتي غطاها الكاتب آدم كونواي أمس.

تعطيل التراكب الافتراضي

في البداية ، لم أكن معجبًا جدًا بالنتيجة ، لأنه على حد علمي في ذلك الوقت ، لم تكن مجدية من الناحية الوظيفية لأنني وزملائي كان لديهم انطباع بأن تثبيت سمة ما زال يتطلب الوصول إلى الجذر لأن ملفات السمات ستحتاج إلى نقل إلى مجلد لا يمكن الوصول إليه إلى مساحة المستخدم (في / system / vendor / overlay ، وهو كيف يعمل RRO). نيكولاس تشوم نفسه ، أحد المطورين الرئيسيين لشركة Substratum ، علق على مشاركتنا أنه كان على دراية بوجود هذه الأوامر لبعض الوقت ، وقد استخدمها بالفعل لنظام Android O builds بالفعل.

شخص واحد ، رغم ذلك ، رأى فرصة تنشأ بعد أن نشرنا مقالتنا بالأمس. لقد أدرك جيف كوركوران ، المطور وراء تطبيق Labs الداخلي الخاص بنا ، وجود حل بديل محتمل لجعل واجهة سطر الأوامر الأصلية لنظام Android Oreo تعمل OMS بدون جذر. تضمنت طريقة استخدمها هيليوم ، وهو حل النسخ الاحتياطي غير الرئيسي الشهير ، ومؤخراً بواسطة بديل Greenify مفتوح المصدر المعروف باسم Brevent.

امتيازات مرتفعة من خلال البرنامج النصي

عادةً ، لا يمكن تشغيل أوامر "تراكب cmd" التي أضافتها Google إلى إصدار Oreo إلا من خلال جهاز بامتيازات الجذر أو من خلال جهاز مرتبط بجهاز كمبيوتر يستدعي غلاف Android Debug Bridge (ADB). اكتشف عدد قليل من المطورين الأذكياء ، مثل مطوري Helium و Brevent ، على مر السنين كيفية رفع امتيازات التطبيق التي يتم تشغيلها على الهاتف بشكل أساسي لتتوافق مع مزايا ADB shell. عند القيام بذلك ، يمكن للتطبيق إرسال أوامر لم يستطع عادةً بسبب أذونات مقيدة. في حالة Substratum ، هذا يعني أن التطبيق يمكن تثبيت ثم تمكين أو تعطيل سمات Substratum دون الجذر .

كان هذا الإدراك إنجازًا كبيرًا تم اكتشافه مساء أمس فقط. خلال بضع ساعات ، تمكن نيكولاس (بمساعدة جيف) من إنشاء نسخة ألفا سريعة من مدير سمة Substratum بدون جذر لأجهزة Android Oreo. وهو يعمل - ولكن مع بعض المحاذير.

تحذيرات من دعم البنية التحتية بدون جذور

ستتطلب العملية المطلوبة لمنح امتيازات Substratum ADB shell المرتفعة استخدام تطبيق سطح مكتب بسيط جدًا وخفيف الوزن (أو مجرد أمر ADB shell إذا كنت تعرف ما تفعله). بمجرد منحها ، ستعمل Substratum كما تتوقع مع قدرتها على التعامل مع إدارة جميع سمات Substratum المثبتة. ستبقى أي سمات تثبتها مثبتة حتى تختار إلغاء تثبيتها من خلال الطبقة التحتية مرة أخرى.

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

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

ضرورة الطبقة التحتية

دعونا الحصول على تفاصيل مهمة للخروج من الطريق الآن. متى يأتي هذا؟ مع ذكر العنوان ، يجب أن يكون أول توافر عام للطبقة التحتية بدون جذر لأجهزة Android 8.0 مثل Google Nexus 5X و Google Nexus 6P و Google Pixel و Google Pixel XL خلال أسبوع واحد . هذا ليس ضمانًا بأي حال من الأحوال ، حيث يمكن أن تتغير الأمور في عملية التطوير التي قد تتطلب استثمارًا إضافيًا في الوقت ، ولكن نظرًا لأن OMS مدعوم بالفعل بشكل كامل في AOSP ، فإن كل فريق Substratum يعمل الآن هو التواصل بين تطبيق Substratum و unroot الأجهزة.

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

لا يزال غير مقتنع بقيمة؟ يمكنك محاولة تثبيت سمات Substratum على جهاز 8.0 الخاص بك غير الجذر. في الواقع ، هذا بالضبط ما فعلناه أعلاه. بالطبع ، تلقينا بعض المساعدة من نيكولاس من أجل القيام بذلك. إذا كنت ترغب في تثبيت سمة Substratum موجودة من متجر Google Play ، فإليك الخطوات العامة:

  1. قم بتنزيل ملف APK وتثبيته على جهازك.
  2. قم باستخراج المحتويات وتجميع كل تراكب في ملف APK فردي لكل تطبيق تريد أن يكون موضوعه
  3. قم بتثبيت كل ملف APK تراكب فردي قمت بترجمته يدويًا في الخطوة رقم 2
  4. لكل تطبيق تراكب APK يتم تثبيته ، قم بتشغيل الأمر التالي لتمكينه: cmd overlay enable
  5. إذا كنت ترغب في تغيير أولوية التراكبات ، استخدم: cmd overlay set-priority PARENT|lowest|highest
  6. قائمة جميع التراكبات المثبتة مع: cmd overlay list
  7. قم بإزالة أي تراكبات لا تريدها: cmd overlay disable

إذا كنت تريد حقًا استخدام سطر الأوامر لإدارة السمات ، فكن ضيفنا! شخصيا ، كنت عالقة في الحصول على الخطوة الماضية رقم 2. لا تستخدم الطبقة التحتية بعض الأساليب المخفية التي لا يمكنك الوصول إليها بمفردك ، ولكنها تجعل الأمر أكثر سهولة بالنسبة لك. عندما يكون من الممكن القيام بشيء يدويًا ولكن يمكن للتطبيق القيام بذلك بسهولة أكبر ، فإنني أميل فقط إلى ترك التطبيق يؤدي وظيفته. ولكن هذا متروك لك.

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


لمستخدمي PS من Samsung ، هل تعلم أن أجهزتك تدعم بالفعل سمات Substratum دون الحاجة إلى الجذر؟

PPS هل أنت مطور مهتم بمعرفة المزيد عن الطبقة التحتية؟ تحقق من عرض شرائح عرض نيكولاس الرائع هنا!