Breaking: أعلنت Chainfire اليوم عن إصدار SuperSU Beta 2.27، مما يلغي الحاجة إلى تعديلات kernel ramdisk للاستفادة من الوصول إلى الجذر على Android 5.0
حتى الآن، إذا كنت تريد الحصول على الجذر لنظام Android 5.0، فأنت بحاجة إلى تثبيت نواة معدلة على جهازك للتغلب على بعض قيود SELinux. مطور XDA المعترف به نار متسلسلة صدر مؤخرا ما كان ضروريا سابقا CF-الجذر التلقائي الحزمة، التي أجرت التعديلات اللازمة على قرص ذاكرة الوصول العشوائي kernel لإزالة قيود SELinux من البرنامج النصي install-recovery.sh على AOSP. ومع ذلك، هذا الصباح، جلب تشاين فاير البسمة على وجوه الكثيرين، كما هو أعلن على تويتر أن هذا لن يكون ضروريا للمضي قدما.
حتى اليوم، خططت Chainfire لإصدار أداة تصحيح آلية تعتمد على ZIP، تلقائيًا تصحيح صور النواة من داخل ريكفري TWRP، حتى توصل إلى طريقة مناسبة لإزالة الحاجة إليها هذا.
يعني هذا الكشف أن مستخدمي Android 5.0 لم يعودوا بحاجة إلى تشغيل نواة معدلة للوصول إلى الجذر عبر SuperSU (أو حلول الجذر الأخرى). على الرغم من أنها لا تمثل مشكلة كبيرة على أجهزة Nexus التي تحتوي على أدوات تحميل التشغيل غير القابلة للفتح، فقد كانت هناك حاجة إلى تعديلات على قرص ذاكرة الوصول العشوائي يثير هذا القلق العديد من مستخدمي الأجهزة المقفلة باستخدام أداة تحميل التشغيل والتي لا يتوفر لها إلغاء القفل (نعم، إنهم يفعلون ذلك للأسف يخرج). الإجابة على صلواتهم موجودة الآن هنا، ويمكننا تقديم شرح حصري للتغييرات المطلوبة. على الأقل في الوقت الحالي (حتى/ما لم تقم Google بتصحيح هذا)، من الممكن الوصول إلى الجذر ثم تثبيت واستخدام SuperSU على جهاز Android 5.0، دون أي تعديل على قرص ذاكرة الوصول العشوائي kernel. والسبب في ذلك هو حاجة SuperSU لتشغيل خدمة كجذر، للسماح بالوصول غير المقيد للجذر على الأجهزة المحمية بـ SELinux.
في السابق، كانت SuperSU تستفيد من AOSP المثبت مسبقًا flash_recovery الخدمة (المستخدمة في AOSP لتحديث الاسترداد بعد تثبيت OTA) لبدء البرنامج الخفي SuperSU (الذي يوفر في الواقع امتيازات الجذر للتطبيقات التي تطلبها). مع إصدار Lollipop، تمت إضافة هذه الخدمة إلى سياق SELinux المقيد، مما يعني أنها لم تعد تتمتع بوصول خالص إلى النظام. سعت تعديلات النواة السابقة إلى إزالة قيود SELinux من هذا البرنامج النصي.
يعمل الإصدار التجريبي الأخير من Chainfire لـ SuperSU على حل هذه المشكلة عن طريق استخدام خدمة "Zygote" الأساسية (المسؤولة عن تشغيل جميع خدمات Java، وبالتالي جميع التطبيقات المثبتة على الجهاز). نظرًا لأن Zygote هي إحدى الخدمات الوحيدة المتوفرة على Android L، والتي يتم تشغيلها كجذر داخل سياق SELinux "init" غير المقيد، مما يجعله هدفًا رئيسيًا للاستخدام في تشغيل SuperSU. بعد التمهيد، يتم نقل سياق SELinux "init" لخدمة Zygote إلى سياق "Zygote" النهائي (المقيد). تمكنت Chainfire من تعديل ملفات Zygote بنجاح، من أجل تشغيل التعليمات البرمجية كمستخدم جذر، ضمن سياق "init" غير المقيد، وبالتالي إعادة SuperSU إلى Android L، بدون kernel التعديلات.
ليست هذه هي المرة الأولى التي يلجأ فيها Chainfire إلى Zygote لحل هذه المشكلات؛ استخدم الإصدار التجريبي 2.23 السابق Zygote كوسيلة للتحايل على بعض مشكلات SELinux الأخرى (والتي كانت تتسبب في تعطل تطبيقات الجذر على Android L). سمح هذا لبعض (وليس كل) التطبيقات غير العاملة بالعمل - أما الباقي فيتطلب بعض التحديثات من قبل مطوريها. لسوء الحظ، عندما تمت استشارة كود 5.0 AOSP، تبين أن Google قد كسرت بالفعل هذه الطريقة للاستيلاء على خدمة Zygote. ونظرًا لفشل كل محاولاته السابقة للاستيلاء على Zygote، فهذه خطوة واعدة للأمام.
حرصت Chainfire على الإشارة إلى أن SuperSU تمكنت منذ فترة طويلة من تعديل سياسات SELinux على نظام التشغيل (وتحذر من سهولة استخدام والتي يمكن لمصنعي المعدات الأصلية (OEM) تعطيل هذا، ومنع الوصول إلى الجذر بشكل هادف وبسيط)، وكيف يجب إجراء أي تعديلات على Zygote بعناية، نظرا لأن الخدمة يتم تشغيلها من سياقات مختلفة مختلفة، ولمهام مختلفة، وهذا يثير احتمال حدوث عدد من (سيئة) إخفاقات خفية. يُعد إصدار SuperSU beta 2.27 الجديد بمثابة تصميم للمتحمسين وغيرهم من التقنيين للعب به، لاكتشاف ما يتعطل. لا توجد أخطاء غير متوقعة، وهذه طريقة قابلة للتطبيق للمضي قدمًا.
خذ ملاحظة - حتى لو نجح هذا الإصدار التجريبي وكان Zygote هو السبيل المفضل للحصول على الوصول إلى الجذر، فمن الآن فصاعدًا، ستكون العملية برمتها مجرد تغيير في سطر واحد بعيدًا عن الاختراق بواسطة Google، الأمر الذي من شأنه أن يجعل أقراص ramdisk kernel المصححة هي المستقبل للوصول إلى الجذر على Android (وبالتالي استبعاد الجذر لقفل أداة تحميل التشغيل الأجهزة). في الواقع، كتنبيه، قد لا تعمل العملية الجديدة حتى على إصدار AOSP محدث بالكامل، وذلك بسبب وجود عدد كبير إلى حد ما من SELinux التغييرات خلال الأشهر القليلة الماضية، والتي لم يتم تضمينها في أجهزة البيع بالتجزئة، ولكنها ستكون موجودة بلا شك في المستقبل إطلاق. ومع ذلك، عاجلاً أم آجلاً، يبدو من المحتمل أن تكون أقراص ذاكرة الوصول العشوائي المعدلة للنواة ضرورية للجذر، ولكن هذا الإصدار التجريبي الجديد قد يوفر فترة توقف قصيرة للتنفيذ قبل أن نضطر إلى السير في هذا الاتجاه.
الدفع ملاحظات الإصدار لمزيد من المعلومات حول المخاطر التي ينطوي عليها اختبار ذلك، وللروابط. يجب أن يدرك المطورون أيضًا أن Chainfire تعمل حاليًا بجد على دليل "كيفية تنفيذ SU". (تم تحديثه بالكامل لنظام التشغيل Android 5.0)، والذي من المفترض أن يكون متاحًا خلال الأيام القليلة القادمة.
[شكر جزيل لـ Chainfire على عمله هنا، ومساعدته في إعداد هذا المقال.]