بعد طول انتظار، أعلن مطور Xpose Framework رسميًا أن المشروع أصبح يدعم Android Nougat. قم بتثبيت وحدات Xpose الآن!
مع نضوج نظام Android البيئي على مر السنين، يجد عدد أقل من المستخدمين أسبابًا تدفعهم إلى إجراء عملية الوصول إلى الجذر لأجهزتهم. هناك اتجاه متزايد من المستخدمين الذين يختارون البقاء على البرامج الثابتة الخاصة بالمخزون، إما لأنهم يجدون التجربة مرضية أو لا يريدون تشغيل لعبة لعبة القط والفأر مع واجهة برمجة تطبيقات SafetyNet من Google. ولكن إذا سألت أحد المستخدمين في أوائل عام 2016 عن سبب قيامه بتجذير هواتفه، فربما كان السبب الأول الذي تم تقديمه هو أنه يمكنه ذلك قم بتثبيت إطار عمل Xpose. لقد كان أكثر من عام منذ إصدار Android 7.0 Nougat تم إصداره لأول مرة، لكن الانتظار الطويل انتهى أخيرًا: أصبح Xpose Framework الرسمي لنظام Android Nougat متاحًا أخيرًا.
على مدار العام الماضي، كان أحد كبار مطوري XDA المعترف بهم روفو89، المطور الرئيسي لـ Xpose Framework عديدالتحديثات حول التقدم المحرز في Xpose Framework لنظام Android Nougat. بالنسبة للبعض، لقد كان الانتظار مقبولا ويرجع ذلك في الغالب إلى العدد الهائل من الوظائف الإضافية التي يقدمها إطار عمل Xpose
أندرويد مارشميلو. لكن العديد من الأشخاص الآخرين انتقلوا إلى الحياة بدون Xpose على أجهزتهم.لقد رأينا لمحة من الإثارة المتجددة في المشروع عندما أصدر المطور abforce ملفًا الوحدة الفرعية ART لـ AOSP 7.1.2، ولكن كما يشير موقع GermainZ الخاص بنا من الأفضل أن تنتظر إطار عمل Xpose الرسمي الإصدار باعتباره تنفيذًا إلزاميًا يتطلب دمج إطار العمل في ذاكرة القراءة فقط المخصصة. بالإضافة إلى، كان هذا التنفيذ غير الرسمي غير مكتمل، مما أدى إلى سلوك غير متناسق أو به أخطاء مع بعض Xpose وحدات.
على الرغم من أن شركة abforce قامت بعمل رائع في جعل تطبيق Xpose غير الرسمي يعمل على Android 7.1 Nougat، إلا أن تطبيقه كان مخالفًا رؤية rovo89 لـ Xpose — أنه يجب أن يكون حلاً مستقرًا يوفر عقدًا موثوقًا وسهل الاستخدام للمستخدمين والمطورين على حد سواء. ما نعنيه بهذا هو أنه لا ينبغي للوحدات النمطية أن تعمل بدون مشكلة للمستخدمين فحسب، بل أيضًا الطريقة التي يتم بها تعيين الوحدات يجب أن يكون الأمر متسقًا بين المستخدمين حتى يعرف المطورون ما إذا كانت وحدة Xpose هي المسؤولة عن التطبيق أم لا يتحطم.
لم يعد علينا القلق بشأن مشكلات مثل rovo89 (بعد بعض المساعدة من مطور XDA المعترف به wanam) أصبح الآن جاهزًا لإصدار تحديث رسمي لـ Xpose Framework وInstaller — جلب التوافق مع أندرويد 7.0/7.1 نوجا. وهذا يعني أنك لن تضطر إلى تثبيت ROM مخصص أو أن تضطر إلى العبث بإصدارات غير مستقرة استمتع بـ Xpose — ما عليك سوى إجراء عملية الوصول إلى هاتفك وتثبيت أحدث إصدار من تطبيق Xpose Installer (الرابط أدناه) و ال سوف يقوم Xpose Installer بسحر تثبيت Xpose لك.
أداة تثبيت Xpose تستعرض مستودع الوحدة النمطية
قد يبدو هذا متأخرًا بعض الشيء في بعض الأذهان، خاصة وأن هذا الإصدار قادم بعد مرور أكثر من شهر على إصدار Android 8.0 Oreo. ضع في اعتبارك أن عددًا قليلاً جدًا من الأجهزة ستتمكن من الوصول إلى إصدار ثابت من Android Oreo لعدة أشهر قادمة. أندرويد أوريو هو فقط على 0.2% لجميع أجهزة أندرويد (مقارنة بحوالي 18% في Nougat) وفقًا لأحدث الإحصائيات من Google، ولكن العديد من مستخدمينا هم من النوع الذي يحب تثبيت ذاكرة القراءة فقط (ROM) المخصصة للبقاء على حافة النزيف.
على الرغم من أنه حتى إذا قمت بتثبيت منفذ غير رسمي لنظام Android 8.0 متاحة على عدد لا يحصى من الأجهزة في منتدياتنا، والعديد من هذه المنافذ ليست في حالة برنامج التشغيل اليومي. لذا، إلا إذا كنت على استعداد لإنفاق مئات الدولارات لشراء منتج جديد تمامًا جوجل بيكسل 2/2 اكس ال, سوني اكسبيريا XZ1/XZ1 كومباكتأو جهاز قادم مثل هواوي ميت 10، فمن المحتمل أن تتمكن من استخدام Xpose Framework لعدة أشهر على Android Nougat.
إذا كان هذا هو حالك، فانتقل إلى موضوع المنتدى الرسمي الخاص بـ Xpose Installer وframe Zips لتشغيله على جهاز Android Nougat الخاص بك.
تنزيل Xpose Installer v3.1.2 (المرفق)
تنزيل برنامج تثبيت Xpose لـ Nougat 7.0 (SDK24).
تنزيل برنامج تثبيت Xpose لـ Nougat 7.1 (SDK25).
بالنسبة للعديد من المستخدمين الجدد الذين ليسوا على دراية بما يمكن استخدام Xpose Framework من أجله أو كيفية عمله، فإننا سوف نشرح بإيجاز إطار عمل Xpose أدناه، ولماذا يجب أن تكون متحمسًا، ولماذا استغرق تطويره كل هذا الوقت فعل.
لماذا تثبيت Xpose Framework؟
هل ترغب في الحصول على ميزات ROM مخصصة دون وميض ROM مخصص؟ أم جميع وحدات Xpose المخصصة لتعديل ذاكرة القراءة فقط (ROM) الخاصة بك، والمعروفة باسم GravityBox، هل قمت بتغطية. هل تريد تخصيص إعدادات العرض على أساس كل تطبيق؟ يحاول إعدادات التطبيقات. ماذا عن تخصيص تطبيقات معينة مثل جلسات Hangout؟ أو تعديل Instagram حتى تتمكن من ذلك قم بتنزيل أي مشاركات تريدها?
يمنح Xpose المطورين القدرة على ذلك تعديل إلى حد كبير ما يريدون- تستهدف في الغالب التطبيقات الفردية ولكن حتى الميزات على مستوى النظام يمكن تعديلها. والأمثلة التي ذكرناها هي مجرد غيض من فيض. إن عدد الميزات الإضافية التي يمكنك إضافتها أو التطبيقات التي يمكنك تعديلها لا يصدق، ما عليك سوى البحث في مستودع Xpose Module الرسمي لترى بنفسك. ضع في اعتبارك أن بعض الوحدات قد تحتاج إلى التحديث لهذا الإصدار الجديد ولدعم Nougat، لذا تأكد من التحقق قبل تثبيتها على Nougat ROM الخاص بك!
كيف تعمل وحدات Xpose؟
جوهر الأمر هو أن Xpose Framework يسمح للوحدات النمطية بذلك "ربط" في أساليب Java لأي تطبيق—سواء كان ذلك مثبتًا بواسطة المستخدم أو أحد تطبيقات النظام. يتيح Xpose للوحدات تنفيذ أساليبها الخاصة قبل أو أثناء أو بدلاً من الطرق الأصلية للتطبيق المستهدف.
على سبيل المثال، تخيل طريقة مستخدمة في تطبيق Gmail لنشر إشعارات لرسائل البريد الإلكتروني الجديدة. افتراضيًا، تقوم الطريقة بإنشاء إشعار جديد يحتوي على أزرار لأرشفة/حذف البريد الإلكتروني أو الرد عليه. يمكن إنشاء وحدة Xpose للربط بهذه الطريقة وإضافة زر جديد مثل "وضع علامة كمقروء". (نعم، هناك بالفعل وحدة لذلك.)
ما ورد أعلاه هو تبسيط مفرط للنتيجة النهائية لما يسمح إطار عمل Xpose لوحداته بالقيام به. يعد إطار العمل نفسه معقدًا بشكل لا يصدق ويجعله يعمل بشكل عالمي تقريبًا على الأجهزة ذات الجذور - دون الحاجة إلى ذاكرة ROM مخصصة - وهذا هو السبب وراء استغراق Xpose لنظام Android Nougat وقتًا طويلاً حتى يكتمل.
لماذا يستغرق تطوير Xpose وقتًا طويلاً؟
إن السحر الكامن وراء Xpose - وهو ما يسمح للوحدات النمطية بالارتباط بطرق التطبيقات الأخرى - يتطلب معرفة عميقة بكيفية عمل Zygote و وقت تشغيل أندرويد (اعمال فنية. وتمنع هذه المتطلبات بالفعل عددًا كبيرًا من الأشخاص من المساهمة في المشروع، لكن المشكلة تتفاقم بسبب حقيقة أن لقد كان rovo89 المساهم الرئيسي في Xpose على مدى السنوات الخمس الماضية.
ولهذا السبب تم رفض الدعوات المطالبة بمصادر مفتوحة للتعديلات التي أجراها على Xpose منذ الإصدار العام الأخير لـ Xpose. إنها من بنات أفكاره، وهو الأفضل في فهمها وتعديلها، وبالتالي إضافة المزيد من القوى العاملة إلى المشروع في مثل هذه المرحلة المتأخرة يمكن ببساطة تأخير المشروع أكثر.
بالإضافة إلى ذلك، إذا قام rovo89 بتحديث مصدره باستمرار، كان قلقا أن شخصًا ما قد يأخذ الكود غير المكتمل لإنشاء إطار عمل Xpose شبه فعال دون الحاجة إلى تثبيت Xpose العالمي المصاحب له. (حدث هذا الشيء بالضبط على أي حال مع التنفيذ القسري، والفوضى الناتجة عن طرق التثبيت المختلفة تبرر تردد rovo89.)
وبالتالي، فإن أفضل شيء يمكننا القيام به هو منح rovo89 وقتًا للعمل على مشروعه المفضل. Xpose ليس وظيفته الكاملة أو حتى بدوام جزئي. إنها مجرد هواية، قام بها لصالح المجتمع لمدة 5 سنوات. يتطلب مشروع معقد مثل Xpose وقتًا للعمل ثم الاختبار، وهو وقت لم يكن متاحًا له غالبًا بسبب التزاماته الأخرى. تقدم كان تم إجراؤها خلال العام الماضي، تمامًا كما وثق rovo89 في عدد قليل من تحديثاته العامة حول هذه المشكلة حتى أصبح كل من Xpose Framework نفسه وXpose Installer جاهزين للإصدار.
ماذا فعل rovo89 لكي يعمل Xpose في Nougat؟
تُحدث الإصدارات الجديدة من Android أحيانًا تغييرات على طريقة عمل ART، الأمر الذي قد يتطلب إعادة صياغة أجزاء من Xpose. قدم Android 7.0 Nougat برنامج التحويل البرمجي Just-in-Time لـ ART للمساعدة في تحسين أداء وقت تشغيل التطبيقات، على سبيل المثال. لكن إطار عمل Xpose غير الرسمي يقوم ببساطة بتعطيل العديد من تحسينات ART بحيث يمكن أن يعمل ربط الطريقة بشكل صحيح.
في المقابل، تنفيذ rovo89 يحتفظ بجميع تحسينات ART في Android Nougat من خلال إعادة ترجمة المتصل الخاص بالطريقة باستخدام JIT مع الاستمرار في وضع خطافات الطريقة في مكانها. وهذا يعني أنه يمكنك الاستمتاع بمزايا وحدة Xpose دون التضحية بالأداء من خلال تعطيل تحسينات ART بالقوة.
لمزيد من التفاصيل حول ما فعله rovo89 لتحقيق طريقة ربط موثوقة في Xpose لنظام Android Nougat، نوصيك بقراءة البيان أدناه الذي قدمه لنا.
البيان الكامل من rovo89
من الواضح أن جوهر Xpose هو قدرته على ربط أساليب Java، أي السماح للوحدات بتنفيذ التعليمات البرمجية قبل هذه الأساليب أو بعدها أو بدلاً منها. تعتمد كل الوظائف الأخرى تقريبًا على هذا، لذا من المهم أن تعمل دائمًا كما هو متوقع. المفهوم العام هو نفسه منذ أن اخترعت Xpose قبل خمس سنوات، وهو يتطلب تغيير نقطة دخول الطريقة. يبدأ هذا بالفشل عندما لا يتم التحقق من نقطة الإدخال أثناء التنفيذ - وهذا هو الحال بالفعل مع بعض التحسينات في ART.
أحد الأمثلة على ذلك هو عندما تكون نقطة الإدخال معروفة بالفعل في وقت الترجمة، فيمكن للمتصلين الانتقال مباشرة إلى هذا العنوان دون البحث عنه. مثال آخر هو البطانة. خذ بعين الاعتبار هذا المثال:
ART ذكي بما فيه الكفاية لملاحظة أن الطريقة double() بسيطة جدًا وبالتالي فهي تدمج المنطق في طريقة doSomething()، مثل هذا:
لا يزال بإمكانك ربط الطريقة double()، ولكن لن يتم استدعاؤها من doSomething() بعد الآن في وقت التشغيل، وكذلك لن يتم استدعاء رد الاتصال الخاص بك. إن الفن أكثر ذكاءً: فهو يدرك أن السحر دائمًا هو 42، وبالتالي لا يمكن تحقيق الشرط أبدًا. لذا فإن طريقة doSomething() بأكملها هي في الواقع محظورة:
في الإصدارات السابقة، كان Xpose يستخدم لتعطيل هذه التحسينات تمامًا وإعادة الترجمة القسرية لكل شيء. جاء ذلك مع عدة سلبيات. بادئ ذي بدء، يقوم مطورو ART بعمل رائع في تعظيم الأداء من خلالهم التحسينات، وتعطيلها جزئيًا يؤدي بالضرورة إلى أداء أقل (لم أقم أبدًا بقياس مقدار رغم ذلك). ومن ثم، فإن إعادة التجميع في حد ذاتها ليست سهلة دائمًا وسببت لي الكثير من الصداع، خاصة في البداية. أخيرًا، تشغل الملفات المترجمة مسبقًا مساحة، بالإضافة إلى الملفات المترجمة مسبقًا على /system.
تعمل الإصدارات غير الرسمية من Nougat أيضًا على تعطيل هذه التحسينات، ولكنها لا تفرض إعادة الترجمة (لأن المنفذ تم تصميمه في الأصل ليتم دمجه في ذاكرة القراءة فقط). ولذلك، قد لا يتم تنفيذ الخطافات في بعض الأحيان.
مع الإصدار الرسمي، ستتمكن من الاحتفاظ بالرمز المحسّن وسيظل لديك خطافات موثوقة. كيف يعمل هذا؟ حسنًا، يقوم Xpose بتسجيل جميع المكالمات التي يتم إجراؤها. يحدث هذا أثناء تجميع ملفات APK، أو في مسار منفصل للتعليمات البرمجية المُحسّنة مسبقًا. لا تشغل هذه البيانات الإضافية مساحة كبيرة، ولكنها تسمح لـ Xpose بمعرفة المكان الذي ربما تم تضمين طريقة معينة فيه. لذا، عندما يتم ربط إحدى الطرق، سيتم إلغاء تحسين جميع المتصلين بها، أي لن يتم استخدام الكود الخاص بهم بعد الآن. وهذا يضمن أنه سيتم بالتأكيد استدعاء رد اتصال الخطاف. وإذا تم استخدام المتصل بكثافة، فسيتم ببساطة إعادة ترجمته باستخدام JIT، هذه المرة مع العلم أن الطريقة معقوفة وبالتالي لا يتم تطبيق بعض التحسينات. وهذا يعني أن تأثيرات طرق التثبيت يتم تقليلها إلى الحد الأدنى. ياي!
الآن المضي قدما وجربه. تأكد من استخدام Xpose Installer 3.1.2، حيث كان لا بد من تغيير مسار التكوين لدعم التشفير المستند إلى الملفات.
اقرأ أكثر
خاتمة
نأمل أن تكون متحمسًا مثلنا بشأن إصدار Xpose لنظام Android 7.X Nougat. لقد كان الانتظار طويلًا، ولكن لا مفر منه نظرًا للتعقيد الهائل لـ Xpose. إذا كنت لا تزال في حيرة بشأن ماهية Xpose أو كيفية عمله، فلا تقلق. عدد قليل جدًا من الأشخاص (بما في ذلك نحن) يفهمون حقًا كيف يعمل هذا الأمر. يبذل المطورون مثل rovo89 قصارى جهدهم في تجميع أعمالهم حتى لا تضطر حقًا إلى فهم ما يحدث أسفل الغطاء.
هل تحب إطار عمل Xpose؟ فكر في التبرع لـ rovo89 مقابل العمل الرائع الذي يقوم به. إذا كنت تعتقد أن لديك ما يلزم للمساهمة في المشروع، فراجع صفحة GitHub الخاصة بـ rovo89 أدناه.
التبرع لrovo89
ساهم في Xpose
هل تبحث عن وحدات Xpose؟ تفضل بزيارة المنتدى الفرعي لوحدة Xpose Framework أو قم بتنزيل تطبيق XDA Labs وتصفح مجموعتنا من وحدات Xpose.
منتدى وحدات Xpose
تحميل مختبرات XDA
تقدم أندرويد أوريو
في حال كنت تتساءل، فإليك مدى التقدم في الحصول على Xpose لنظام Android Oreo:
لقد بدأت بالفعل العمل على Android 8.0. هناك عدد قليل ميزات اللغة الجديدة التي يجب أن ألقي نظرة عليها، ولكن المفهوم العام يجب أن يستمر في العمل. يتضمن ذلك كل العمل على إبطال التعليمات البرمجية المجمعة لأي متصلين عند ربط إحدى الطرق، الأمر الذي استغرق معظم الوقت عندما عملت على Nougat. لذلك أنا واثق حقًا من أنني سأكون أسرع كثيرًا هذه المرة. أندرويد 8.1لا ينبغي أن يكون مختلفًا كثيرًا، لذلك لا أتوقع الكثير من العمل الإضافي له.