يحتوي أحدث إصدار من Android Oreo من Google بالفعل على دعم للموضوع الأصلي، وبفضل محرك السمات Substratum، سيأتي في غضون أسبوع واحد.
التحديث بتاريخ 13/09/17: تم الآن إصدار الوظيفة الإضافية Andromeda لـ Substratum والتي تتيح سمات مخصصة على أجهزة Android Oreo غير الجذر. راجع هذه المقالة لمزيد من التفاصيل. ستبقى المقالة الأصلية أدناه.
مع كل إصدار جديد بالنسبة لنظام التشغيل Android من Google، هناك أسباب أقل تدفع معظم المستخدمين إلى ذلك الجذر أجهزتهم. ومع ذلك، من بين المستخدمين المتبقين الذين ما زالوا يختارون عمل روت لأجهزتهم، فإن أحد الأسباب الأكثر شيوعًا هو تمكين دعم السمات على مستوى النظام. عادة، تتم إدارة ذلك عبر الطبقة التحتية إطار الموضوع منذ ذلك الحين زوال مؤسف لمحرك CyanogenMod Theme. مع مرور الوقت، فريق وراء الطبقة التحتية عملت بجد لتشمل الدعم لمزيد من الأجهزة من خلال دمج دعم الطبقة التحتية على مستوى الروم لذلك يمكن تشغيله دون الوصول إلى الجذر. والآن، أخذ الفريق المشروع إلى ما هو أبعد مما كان يمكن لأي منا أن يتخيله دعم كامل للموضوع على مستوى النظام دون الحاجة إلى الجذر لأي جهاز يعمل بنظام Android Oreo.
تظهر لقطات الشاشة ساي الروبوت أوريو الأسود الموضوع يعمل على Google Pixel بدون جذر على Android Oreo 8.0.0
لإعطائك فكرة عن كيفية القيام بذلك لا يصدق هذا التطور، اعتبر أن ما يلي سيكون ممكنًا الآن بدون جذر:
- موضوعات ال إطار عمل Android وواجهة مستخدم نظام Androidوكذلك أي تطبيقات النظام الأخرى. (الكثير منكم سيفعلون ذلك حب الحصول على سمة داكنة متاحة أخيرًا!)
- ثيمات من أي تطبيق طرف ثالث
- الخطوط المخصصة لتطبيقات الطرف الثالث
- العديد من التعديلات الأخرى مثل تعديل الساعة المركزية لشريط الحالة
والقائمة تطول! الطبقة التحتية لديها قائمة واسعة من المواضيع المتاحة التي تدعم الإطار (جميعها مدعومة في هذا الإصدار الجديد القادم من Substratum لنظام Android 8.0)، مجتمع نشط على جوجل+ وخاصتنا المنتدياتونظرًا لهذا التطور، لا بد أن ينمو الدعم!
Android Oreo وخدمة Overlay Manager
منذ دمج جوجل الدعم الأصلي لتراكب موارد وقت التشغيل من سوني محرك السمات (RRO) في Android 6.0 Marshmallow، لقد كنا ننتظر لكي توفر Google واجهة مدمجة بالإضافة إلى واجهات برمجة التطبيقات العامة التي يمكن للمطورين استخدامها لتخصيص كل من تطبيق إطار النظام بالإضافة إلى تطبيقات الطرف الثالث. للأسف، لم يقدم إصدار Android Nougat سوى القليل من الجديد إلى الطاولة منذ إضافة RRO من Sony إلى مشروع Android مفتوح المصدر (AOSP).
ولكن بفضل العمل الدؤوب الذي قام به المهندسون في Sony Mobile، تطور محرك موضوعات RRO في النهاية إلى ما يُعرف باسم Overlay Manager Service (OMS)، وهو ما يستند إليه Substratum. كانت شركة Sony رائدة فيما يتعلق بحل السمات مفتوحة المصدر، ولكن منذ أن تم قبول محرك سمات OMS الخاص بها في AOSP في جميع أنحاء العالم وقت إصدار Android 7.1 النهائي، فإن الطريقة الوحيدة لمستخدمي الأجهزة غير التابعة لشركة Sony للاستفادة من محرك السمات هي من خلال تخصيص ذاكرة للقراءة فقط.
لقد تغير ذلك في Android 8.0. عندما تم إصدار Substratum في البداية لـ أول عدد قليل من معاينات مطوري Android Oلقد أدرك مطورو Substratum ذلك دعم كامل لشركة سوني OMS كان متاحا. هذا يعني أنه يمكن للمستخدم تثبيت سمة موجودة مدعومة من Substratum وستكون تعمل بشكل كامل على أجهزة Android Oreo دون الحاجة إلى أي تصحيحات ROM. على الرغم من ذلك، كانت هناك مشكلة واحدة فقط: عملية تمكين سمة الطبقة التحتية المثبتة تتطلب الوصول إلى الجذر، أو هكذا ظنوا.
دعم السمة الأساسية بدون جذور على مستوى النظام لنظام Android Oreo
بينما وضع المطورون عملهم بهدوء على مسألة حصول مستخدمي Android Oreo على حل موضوعي بدون جذور تمامًا في الخلف ناسخًا، كنا نبحث بشكل مستقل في كل معاينة لمطوري Android O ونجد دليلاً على وجود محرك السمات قيد التشغيل، رغم ذلك لقد أخطأنا في التعرف عليه لأنه يعتمد على RRO الأقدم بدلاً من OMS الأحدث من Sony. حتى أن Google أثارت استفزاز المجتمع حول دعم الموضوع في ملف AMA تتمحور حول المطور على Reddit، مشيرًا إلى أنه لا تزال هناك بعض العقبات التي يجب التغلب عليها قبل أن يتم دمج حل السمات الكامل في Android.
لم تكن راضيًا عن هذه الإجابة، أردنا أن نرى إلى أي مدى ذهبت Google في الحصول على دعم للموضوع لنظام Android Oreo. للقيام بذلك، حفرت في الكود المصدري لنظام أندرويد 8.0 بمجرد إسقاط الإصدار النهائي، واكتشاف وجود أوامر ADB Shell التي يمكنها تمكين التراكبات أو تعطيلها، والتي قام كاتب XDA آدم كونواي بتغطيتها بالأمس.
في البداية، لم أكن معجبًا جدًا بهذه النتيجة، لأنه على حد علمي في ذلك الوقت كانت عديمة الفائدة من الناحية الوظيفية حيث كنت أنا وزملائي تحت الانطباع بأن التثبيت لا يزال السمة تتطلب الوصول إلى الجذر حيث يجب نقل ملفات السمة إلى مجلد لا يمكن الوصول إليه من مساحة المستخدم (في /system/vendor/overlay، وهي طريقة RRO دور). نيكولاس تشام بنفسه، وهو أحد المطورين الرئيسيين وراء Substratum، علق على منشورنا بأنه كان على علم بوجود هذه الأوامر لبعض الوقت و لقد تم استخدامه لإصدارات Android O بالفعل.
ومع ذلك، فقد رأى أحد الأشخاص فرصة سانحة بعد أن نشرنا مقالتنا بالأمس. XDA خاص جدًا جيف كوركوران، المطور وراء أعمالنا الداخلية تطبيق مختبرات XDA، أدركت أن هناك حلاً بديلاً محتملاً لجعل واجهة سطر الأوامر الأصلية لنظام Android Oreo لكي يعمل OMS بدون جذر. أنها تنطوي على الطريقة التي تم استخدامها من قبل هيليوم، وهو حل النسخ الاحتياطي الشهير غير الجذر، ومؤخرًا بواسطة بديل Greenify مفتوح المصدر المعروف باسم بريفينت.
امتيازات مرتفعة من خلال البرنامج النصي
في العادة "تراكب كمد" لا يمكن تشغيل الأوامر التي أضافتها Google إلى إصدار Oreo إلا من خلال جهاز يتمتع بامتيازات الجذر أو من خلال جهاز مرتبط بجهاز كمبيوتر يستدعي غلاف Android Debug Bridge (ADB). لقد اكتشف ذلك عدد قليل من المطورين الأذكياء، مثل مطوري هيليوم وبرفينت، على مر السنين كيفية رفع امتيازات التطبيق الذي يعمل على الهاتف بشكل أساسي لتتناسب مع امتيازات ADB صدَفَة. ومن خلال القيام بذلك، يمكن للتطبيق إرسال أوامر لا يمكنه عادةً إرسالها بسبب الأذونات المقيدة. في حالة الطبقة التحتية، وهذا يعني يمكن تثبيت التطبيق ثم تمكين أو تعطيل سمات الطبقة التحتية بدون الجذر.
وكان هذا الإدراك أ رئيسي اختراق لم يتم اكتشافه إلا مساء أمس. في غضون ساعات قليلة، تمكن نيكولاس (بمساعدة جيف) من إنشاء نسخة ألفا سريعة من مدير سمات Substratum بدون جذور لأجهزة Android Oreo. وهو يعمل - ولكن مع بعض التحذيرات.
تحذيرات من دعم الطبقة التحتية بدون جذور
ستتطلب العملية المطلوبة لمنح امتيازات Substratum ADB Shell المرتفعة استخدام ملف بسيطة جدا وخفيفة الوزن تطبيق سطح المكتب (أو مجرد أمر ADB Shell إذا كنت تعرف ما تفعله). بمجرد منحها، ستعمل Substratum كما تتوقع مع قدرتها على التعامل مع إدارة جميع سمات Substratum المثبتة لديك. ستظل أية سمات تقوم بتثبيتها مثبتة حتى تختار إلغاء تثبيته من خلال Substratum مرة أخرى.
ومع ذلك، فإن الامتيازات الممنوحة للطبقة التحتية هي امتيازات عابرة يتم فقدها عندما يقوم المستخدم بإجراء إعادة تشغيل كاملة (على الرغم من أن عمليات إعادة التشغيل البسيطة لواجهة مستخدم النظام لا تفقد هذا الامتياز لحسن الحظ). هذا يعني أنه سيتعين عليك تشغيل برنامج سطح المكتب مرة أخرى إذا قمت بإعادة تشغيل هاتفك وترغب في استخدام Substratum لإضافة سمة أو إزالتها أو تعديلها. أريد أن أكرر ذلك مرة أخرى ستظل أي سمات تقوم بتثبيتها مثبتة حتى إذا قمت بإعادة التشغيل، وهذا يعني أنه إذا كنت ترغب في تغيير بعض السمات فقط من حين لآخر، فيجب أن يكون هذا مثاليًا بالنسبة لك. يجب أن تكون أيضًا قادرًا على تبديل السمات من قائمة الإعدادات، كما خيار "الموضوع" الخاص بمعاينة المطور ضمن إعدادات العرض، يتعرف على السمات المثبتة ويسمح لك بالتبديل بينها
أخيرًا، آخر شيء أريد أن أذكره هو شيء يبدو واضحًا بمجرد التفكير فيه، ولكن في حماسك لسماع الأخبار ربما تكون قد نسيته. جهازك لا يزال بدون جذر. هذا يعني أنه لا يمكنك لمس أو تعديل أي ملفات تتطلب الوصول إلى الجذر لتحريرها، حتى لو وعدت سمة Substratum التي قمت بتثبيتها بتغيير شيء ما. عذرًا، ولكن هذا يعني للأسف أنه لا يمكنك تطبيق تغيير الخط على مستوى النظام عليه إرجاع الرموز التعبيرية المزعجة، على الرغم من أنه كما ذكر في البداية، فإنه يكون من الممكن لموضوع الطبقة التحتية تغيير خطوط التطبيقات الفردية.
ضرورة الركيزة
دعنا نحصل على تفاصيل مهمة بعيدًا عن الطريق الآن. متى يأتي هذا؟ كما يشير العنوان، يجب أن يكون التوفر العام الأول للطبقة التحتية بدون جذور لأجهزة Android 8.0 مثل Google Nexus 5X وGoogle Nexus 6P وGoogle Pixel وGoogle Pixel XL في غضون 1 أسبوع. هذا ليس ضمانا بأي حال من الأحوال، حيث يمكن أن تتغير الأمور في عملية التطوير مما قد يتطلب استثمارًا إضافيًا للوقت، ولكن نظرًا لأن OMS موجود بالفعل مدعوم بالكامل في AOSP، كل ما يعمل عليه فريق Substratum الآن هو التواصل بين تطبيق Substratum والتطبيق غير الجذر الأجهزة.
التالي: هل سيكون مجانياً؟ لا. ستكون الطبقة الأساسية لأجهزة Android Oreo غير الجذر هي تطبيق مدفوع. لا أستطيع أن أخبرك كم سيكلف ذلك لأن نيكولاس لم يقرر بعد السعر، ولكن كن مطمئنًا أن السعر سيكون عادلاً نظرًا لقيمة ما ستحصل عليه. حتى هذه اللحظة، كان Substratum متاحًا مجانًا للعديد من الأجهزة، لذا فكر في دعم هذا النوع من التطوير من خلال دعم Team Substratum أولاً. يمكنك إما الانتظار حتى تقوم Google بإصدار هذا المظهر المظلم الذي طالما أردته (ها، جيد واحد)، أو يمكنك إنفاق بضعة قروش لدعم التنمية المستقلة التي يأخذها الكثير من الناس ممنوح.
هل ما زلت غير مقتنع بقيمتها؟ أنت تستطيع يحاول تثبيت سمات الطبقة التحتية على جهازك 8.0 غير الجذر. في الواقع، هذا بالضبط ما فعلناه أعلاه. وبطبيعة الحال، حصلنا على القليل من المساعدة من نيكولاس للقيام بذلك. إذا كنت تريد تثبيت سمة Substratum موجودة من متجر Google Play، فإليك الخطوات العامة:
- قم بتحميل وتثبيت ملف APK على جهازك.
- قم باستخراج المحتويات وتجميع كل تراكب في ملف APK فردي لكل تطبيق تريد أن يكون موضوعه
- قم بتثبيت كل ملف APK متراكب فردي قمت بتجميعه يدويًا في الخطوة رقم 2
- بالنسبة لكل ملف APK متراكب تقوم بتثبيته، قم بتشغيل الأمر التالي لتمكينه:
cmd overlay enable
- إذا كنت تريد تغيير أولوية التراكبات، فاستخدم:
cmd overlay set-priority
PARENT|lowest|highest - قم بإدراج جميع التراكبات المثبتة لديك باستخدام:
cmd overlay list
- قم بإزالة أي تراكبات لا تريدها باستخدام:
cmd overlay disable
إذا كنت تريد حقًا استخدام سطر الأوامر لإدارة السمات، فكن ضيفنا! أنا شخصياً كنت عالقاً في تجاوز الخطوة رقم 2. لا تستخدم الطبقة التحتية بعض الطرق المخفية التي لا يمكنك التوصل إليها بنفسك، ولكنها تصنعها بعيد أسهل بالنسبة لك لإدارة. عندما يكون من الممكن القيام بشيء ما يدويًا ولكن يمكن لأحد التطبيقات القيام بذلك نيابةً عني بسهولة أكبر، فإنني أميل إلى السماح للتطبيق بالقيام بعمله فقط. ولكن هذا متروك لك.
شخصيا، أنا حقا، حقا متحمس لنرى أين يذهب هذا. بالنسبة لأي أجهزة لا تدعم بالفعل نظام إدارة السمات المدمج (مثل أجهزة Motorola أو OnePlus)، فلديك الآن سبب آخر للتطلع إليه في تحديث Android 8.0. لأولئك منكم المحظوظين بما فيه الكفاية لتذوق أوريو الحلو، لديك شيء تتطلع إليه خلال أسبوع واحد.
ملاحظة. يا مستخدمي سامسونج، هل تعرفون أجهزتكم؟ تدعم بالفعل موضوعات الطبقة التحتية دون الحاجة إلى الجذر؟
P.S هل أنت مطور مهتم بمعرفة المزيد عن Substratum؟ تحقق من نيكولاس عرض شرائح رائع هنا!