إطار Xposed الرسمي لنظام Android Nougat هنا - قم بتنزيل الوحدات النمطية المفضلة لديك الآن!

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

على مدار العام الماضي ، قدم مطور معترف به أقدم rovo89 ، المطور الرئيسي لـ Xposed Framework ، العديد من التحديثات حول التقدم المحرز في Xposed Framework لنظام Android Nougat. بالنسبة للبعض ، كان الانتظار مقبولًا في الغالب بسبب العدد الهائل من الوظائف الإضافية التي يوفرها Xposed Framework في Android Marshmallow. لكن العديد من الآخرين انتقلوا إلى الحياة بدون Xposed على أجهزتهم.

لقد رأينا لمحة عن تجدد الإثارة في المشروع عندما أصدر المطور abforce نموذجًا فرعيًا لـ ART لـ AOSP 7.1.2 ، ولكن كما تشير GermainZ الخاصة بنا ، فمن الأفضل أن تنتظر إصدار إطار عمل Xposed الرسمي لأن تطبيق abforce يتطلب أن يكون إطار العمل دمجها في مدمجة مخصصة. علاوة على ذلك ، كان هذا التطبيق غير الرسمي غير مكتمل ، مما أدى إلى سلوك غير متسق أو عربات التي تجرها الدواب مع بعض وحدات Xposed.

بينما قام Abforce بعمل رائع في الحصول على Xposed غير رسمي يعمل على Android 7.1 Nougat ، فإن تنفيذه يتعارض مع رؤية rovo89 لـ Xposed - وهو أنه يجب أن يكون حلاً مستقرًا يوفر عقدًا موثوقًا وسهل الاستخدام للمستخدمين والمطورين على حد سواء. ما نعنيه بهذا هو أنه ليس فقط يجب أن تعمل الوحدات دون مشكلة بالنسبة للمستخدمين ، ولكن الطريقة التي يتم بها إعداد الوحدات يجب أن تكون متسقة بين المستخدمين حتى يعرف المطورون ما إذا كانت وحدة Xposed النمطية هي المسؤولة عن تعطل التطبيق أم لا.

لم يعد لدينا ما يدعو للقلق بشأن بعض المشكلات مثل rovo89 (بعد بعض المساعدة من wanam Developer Recognized) ، وهو الآن جاهز لإصدار تحديث رسمي إلى Xposed Framework و Installer - مما يحقق التوافق مع Android 7.0 / 7.1 Nougat . هذا يعني أنك لن تضطر إلى تثبيت ROM مخصص أو تضطر إلى تعبث مع الإصدارات غير المستقرة الوامضة للاستمتاع Xposed — فقط قم بتجذير هاتفك وتثبيت أحدث تطبيق Xposed Installer (مرتبط أدناه) وسوف يقوم Xposed Installer بسحر تثبيت Xposed من اجلك

المثبت Xposed تصفح مستودع الوحدة النمطية

قد يبدو هذا متأخراً بعض الشيء في بعض العقول ، خاصة وأن هذا الإصدار يأتي بعد شهر من إصدار Android 8.0 Oreo. ضع في اعتبارك أن عددًا قليلًا جدًا من الأجهزة سيكون بإمكانها الوصول إلى إصدار ثابت من Android Oreo لعدة أشهر قادمة. يعمل Android Oreo على 0.2٪ فقط من جميع أجهزة Android (مقارنة بـ 18٪ تقريبًا على Nougat) وفقًا لآخر الإحصاءات من Google ، ولكن العديد من مستخدمينا هم من يحب تثبيت مدمجة مخصصة للبقاء على حافة النزيف.

توزيع إصدار Android اعتبارًا من أكتوبر 2017. المصدر: Google

على الرغم من تثبيت منفذ غير رسمي لنظام Android 8.0 متاح على عدد لا يحصى من الأجهزة في منتدياتنا ، فإن العديد من هذه المنافذ ليست حالة برنامج تشغيل يوميًا. لذلك ، ما لم تكن على استعداد لاسترداد مئات الدولارات مقابل Google Pixel 2/2 XL جديد ، أو Sony Xperia XZ1 / XZ1 Compact ، أو جهاز قادم مثل Huawei Mate 10 ، فمن المحتمل أن تتمكن من الضغط عدة أشهر من الاستخدام خارج إطار Xposed على Android Nougat.

إذا كان هذا يبدو مثلك ، فانتقل إلى موضوع المنتدى الرسمي لـ Xposed Installer والرمز البريدي الإطاري لتنشيطه وتشغيله على جهاز Android Nougat الخاص بك.

تنزيل برنامج Xposed Installer v3.1.2 (مرفق)

المثبت Xposed ل Nougat 7.0 (SDK24) تنزيل

المثبت Xposed ل Nougat 7.1 (SDK25) تنزيل

بالنسبة للعديد من المستخدمين الأحدث الذين ليسوا على دراية بما يمكن أن يستخدمه إطار عمل Xposed أو كيفية عمله ، سنشرح بإيجاز إطار عمل Xposed أدناه ، ولماذا يجب أن تكون متحمسًا ، ولماذا استغرق التطوير في هذا طالما استمر .


لماذا تثبيت Xposed Framework؟

هل ترغب في الحصول على ميزات ROM مخصصة دون وميض ROM مخصص؟ والدة جميع وحدات Xposed لقرص ROM الخاص بك ، والمعروفة باسم GravityBox ، قد قمت بتغطيتها. هل تريد تخصيص إعدادات العرض على أساس كل تطبيق؟ جرب إعدادات التطبيق. ماذا عن تخصيص تطبيقات معينة مثل Hangouts؟ أو تعديل Instagram بحيث يمكنك تنزيل المنشورات التي تريدها؟

GravityBox إعلام التحكم

إعدادات التطبيقات

يمنح Xposed المطورين القدرة على تعديل ما يريدون إلى حد كبير - ويستهدف معظمهم التطبيقات الفردية ولكن يمكن تعديل الميزات على مستوى النظام. الأمثلة التي ذكرناها هي مجرد قمة جبل الجليد. عدد الميزات الإضافية التي يمكنك إضافتها أو التطبيقات التي يمكنك تعديلها أمر لا يصدق - ما عليك سوى البحث في مستودع Xposed Module الرسمي لتراه بنفسك. ضع في اعتبارك أن بعض الوحدات قد تحتاج إلى تحديث لهذا الإصدار الجديد ولدعم Nougat ، لذا تأكد من التحقق قبل تثبيته على Nougat ROM!

كيف تعمل وحدات Xposed؟

جوهر ذلك هو أن Xposed Framework يسمح للوحدات النمطية " بالربط " في أساليب Java لأي تطبيق - سواء كان مثبتًا من قِبل المستخدم أو تطبيق نظام. يتيح Xposed للوحدات النمطية تنفيذ أساليبها الخاصة قبل أو أثناء أو بدلاً من الطرق الأصلية للتطبيق الهدف.

على سبيل المثال ، تخيل طريقة مستخدمة في تطبيق Gmail تنشر إعلامات لرسائل البريد الإلكتروني الجديدة. افتراضيًا ، تنشئ الطريقة إشعارًا جديدًا به أزرار لأرشفة / حذف أو الرد على البريد الإلكتروني. يمكن إنشاء وحدة Xposed للربط في هذه الطريقة وإضافة زر جديد مثل "وضع علامة للقراءة" (نعم ، هناك بالفعل وحدة نمطية لذلك فقط).

ما سبق هو تبسيط مفرط للنتيجة النهائية لما يسمح به إطار Xposed للوحدات النمطية. إطار العمل نفسه معقد بشكل لا يصدق ويجعله يعمل بشكل عام تقريبًا على الأجهزة ذات الجذور - دون الحاجة إلى ذاكرة ROM مخصصة - هو السبب في أن Xposed for Android Nougat استغرق وقتًا طويلاً لإكماله.

لماذا يستغرق تطوير Xposed وقتًا طويلاً؟

السحر وراء Xposed - ما يسمح للوحدات النمطية بربط طرق التطبيقات الأخرى - يتطلب معرفة عميقة بكيفية عمل Zygote و Android Runtime (ART). تمنع هذه المتطلبات بالفعل عددًا كبيرًا من الأشخاص من المساهمة في المشروع ، ولكن المشكلة تتفاقم بسبب حقيقة أن rovo89 كانت المساهم الرئيسي في Xposed على مدار السنوات الخمس الماضية .

لهذا السبب تم رفض دعوات الاستعانة بمصادر خارجية للتعديلات التي أجراها على Xposed منذ آخر إصدار عام من Xposed. إنه من بنات أفكاره ، وهو الأفضل في فهمه وتعديله ، لذلك فإن إضافة المزيد من القوى العاملة إلى المشروع في هذه المرحلة المتأخرة قد يؤدي ببساطة إلى تأخير المشروع.

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

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

ماذا فعلت rovo89 للحصول على Xposed العمل في نوغة؟

تؤدي الإصدارات الجديدة من Android في بعض الأحيان إلى إحداث تغييرات في طريقة عمل ART ، والتي قد تتطلب إعادة صياغة أجزاء من Xposed. قدم Android 7.0 Nougat مترجم Just-in-Time لـ ART للمساعدة في تحسين أداء وقت تشغيل التطبيقات ، على سبيل المثال. لكن إطار Xposed Framework غير الرسمي بواسطة abforce يؤدي ببساطة إلى تعطيل العديد من تحسينات ART بحيث يعمل تثبيت الأسلوب بشكل صحيح.

تحسينات ART في Android Nougat. المصدر: جوجل

في المقابل ، يحافظ تطبيق rovo89 على جميع تحسينات ART في Android Nougat عن طريق إعادة تجميع المتصل بالطريقة باستخدام JIT مع الاستمرار في تثبيت خطافات الأسلوب. هذا يعني أنه يمكنك الاستمتاع بمزايا Xposed Module دون التضحية بالأداء عن طريق تعطيل تحسينات ART بقوة.

لمزيد من التفاصيل حول ما فعلته rovo89 في النهاية لتحقيق طريقة ربط موثوقة في Xposed لنظام Android Nougat ، نوصيك بقراءة العبارة أدناه التي قدمها لنا.

بيان كامل من rovo89

من الواضح أن جوهر Xposed هو قدرته على ربط أساليب Java ، أي السماح للوحدات بتنفيذ التعليمات البرمجية قبل هذه الطرق أو بعدها أو بدلاً منها. تعتمد كل الوظائف الأخرى في هذا إلى حد كبير ، لذلك من الأهمية بمكان أن تعمل دائمًا كما هو متوقع. المفهوم العام هو نفسه منذ أن اخترعت Xposed قبل خمس سنوات ، فإنه يتطلب تغيير نقطة الدخول للأسلوب. يبدأ هذا بالفشل عندما لا يتم التحقق من نقطة الدخول أثناء التنفيذ - وهذا هو الحال بالفعل مع بعض التحسينات في ART.

أحد الأمثلة هو عندما تكون نقطة الدخول معروفة بالفعل في وقت الترجمة ، ثم يمكن للمتصلين الانتقال مباشرة إلى هذا العنوان دون البحث عنه. مثال آخر هو مضمنة. النظر في هذا المثال:

ART ذكي بما فيه الكفاية لملاحظة أن الطريقة (2) بسيطة للغاية وبالتالي تدمج المنطق في طريقة doSomething () ، مثل هذا:

لا يزال بإمكانك ربط الأسلوب مرتين () ، لكن لن يتم استدعاؤه من doSomething () بعد ذلك في وقت التشغيل ، وبالتالي لن يتم الاتصال بك. ART أكثر ذكاءً: تدرك أن السحر دائمًا هو 42 ، وبالتالي لا يمكن الوفاء بالشرط أبدًا. لذا فإن طريقة doSomething () بأكملها هي في الواقع ليست عملية:

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

تعمل الإصدارات غير الرسمية لـ Nougat أيضًا على تعطيل هذه التحسينات ، لكنها لا تفرض إعادة التحويل (لأن المنفذ كان أصلاً مدمجًا في ROM). لذلك ، قد لا يتم تنفيذ السنانير في بعض الأحيان.

مع الإصدار الرسمي ، ستحصل على رمز مُحسّن ولا تزال به خطافات موثوقة. كيف يعمل هذا؟ حسنًا ، تسجل Xposed جميع المكالمات التي تم إجراؤها. يحدث هذا أثناء تجميع ملفات APK ، أو في مسار منفصل للرمز preoptimized. لا تشغل هذه البيانات الإضافية مساحة كبيرة ، ولكنها تتيح لـ Xposed معرفة مكان وجود طريقة معينة مضمنة فيها. لذلك عندما يتم ربط أحد الأساليب ، سيتم إلغاء تحديد كل المتصلين به ، أي لن يتم استخدام الكود الخاص بهم بعد الآن. هذا يضمن أنه سيتم استدعاء رد الاتصال هوك بالتأكيد. وإذا تم استخدام المتصل بكثرة ، فسيتم إعادة تجميعه ببساطة مع JIT ، وهذه المرة مع العلم أن الطريقة موصولة وبالتالي فإن بعض التحسينات لا تنطبق. هذا يعني أنه يتم تقليل تأثيرات أساليب الربط إلى الحد الأدنى. ياي!

الآن المضي قدما وجربها. تأكد من استخدام Xposed Installer 3.1.2 ، حيث كان يجب تغيير مسار التكوين لدعم تشفير الملفات.

خاتمة

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

هل تحب Xposed Framework؟ النظر في التبرع ل rovo89 للعمل الرائع الذي يقوم به. إذا كنت تعتقد أن لديك ما يلزمك للمساهمة في المشروع ، راجع صفحة GitHub لـ rovo89 أدناه.

تبرع ل rovo89

المساهمة في Xposed

هل تبحث عن وحدات Xposed؟ تحقق من المنتدى الفرعي Xposed Framework Module أو قم بتنزيل تطبيق Labs وتصفح مجموعتنا من وحدات Xposed.

وحدات Xposed المنتدى

تحميل مختبرات

الروبوت أوريو التقدم

إذا كنت تتساءل ، فإليك كيفية التقدم في الحصول على Xposed لنظام Android Oreo:

لقد بدأت العمل بالفعل على نظام أندرويد 8.0. هناك بعض الميزات اللغوية الجديدة التي سيتعين عليّ النظر إليها ، لكن المفهوم العام يجب أن يظل يعمل. يتضمن ذلك جميع الأعمال المتعلقة بإبطال الشفرة المترجمة لأي المتصلين عندما يتم ربط طريقة ما ، والتي استغرقت وقتًا طويلاً عندما عملت على Nougat. لذلك أنا واثق من أنني سأكون أسرع هذه المرة. Android 8.1should لن يكون مختلفًا كثيرًا ، لذلك لا أتوقع الكثير من العمل الإضافي لذلك.