لا يحتاج Xpose Framework إلى مقدمة لقراء XDA. عندما سئل عن الأشياء مجتمعنا يكره أكثر ما يتعلق بـ Lollipop، كان التعليق الوحيد الذي حصل على أعلى نسبة تصويت في المناقشة هو أنه كسر الدعم لـ Xpose. في الواقع، رفض العديد من أعضاء المنتدى التحديث إلى Lollipop خصيصًا لهذا السبب. لكن كل هذا يتغير الآن، حيث وصل إطار عمل Xpose الذي طال انتظاره أخيرًا إلى Android Lollipop.
إذا لم تكن على دراية بـ Xpose بالفعل، فهي ببساطة هبة من السماء لمجتمع التعديل. لا يتطلب Xpose أي وميض لأي ذاكرة قراءة فقط (ROMs)، ولكنه يوفر الكثير من التخصيصات والتعديلات التي يمكن للمستخدمين تثبيتها مثل التطبيقات على الأجهزة التي تم الوصول إلى جذرها. إنه سهل الاستخدام بشكل لا يصدق وبمخاطر محدودة. والآن، يمكن لجميع عشاق Android على Lollipop الاستمتاع بمزايا هذا المشروع الرائع على أجهزتهم. احصل على التنزيل الخاص بك وانتقل إلى التعديل!
كان rovo89 أيضًا لطيفًا بما يكفي لتزويدنا بأسئلة وأجوبة حول أحدث مشروع. يمكنك العثور على إجابات لجميع أسئلتك حول المشروع أدناه.
لماذا استغرق الأمر وقتا طويلا؟ تم نشر ART منذ أكثر من عام!
بادئ ذي بدء، يستمر العديد من الأشخاص في طلب دعم العلاج المضاد للفيروسات القهقرية. يحتوي Lollipop على تغييرات أكثر بكثير من ذلك، مثل سياسات SELinux الأكثر صرامة، وذاكرة القراءة فقط (ROM) 64 بت، وتغييرات البنية التي تتوقعها من إصدار رئيسي. وبالطبع يتم تحسين العلاج المضاد للفيروسات القهقرية نفسه باستمرار؛ هناك اختلافات كبيرة بين ART لـ KitKat و ART لـ Lollipop.
لذا فإن أحد الأسباب هو التعقيد الكبير الذي يتطلب ساعات طويلة من العمل للبحث والتطوير والاختبار.
سبب آخر هو أن هناك أشياء أخرى في حياتي غير Xpose، لذلك كانت هناك أسابيع أو حتى أشهر بالكاد ألقيت فيها نظرة على الكود على الإطلاق.
هل نحن بحاجة إلى إعادة كتابة كافة الوحدات؟
لا، لم تتغير واجهة برمجة تطبيقات Xpose إلى حد كبير. يلخص Xpose كل التفاصيل، لذلك لا تحتاج الوحدات إلى الاهتمام سواء كانت تعمل على Dalvik أو ART. ستعمل العديد من الوحدات فعليًا دون أي تغييرات، خاصة تلك التي تعدل سلوك تطبيقات المستخدم. قد تحتاج الوحدات التي تستهدف سلوك النظام إلى تعديلها وفقًا لرمز إطار عمل Android الجديد لا يحدث ذلك بسبب ART، ولكن ببساطة بسبب تغييرات البنية والتعليمات البرمجية التي تحدث بين أي جهازي Android إطلاق. الأهم هو أن رمز خدمات النظام قد تم نقله إلى ملف منفصل. بالنسبة لمعظم الوحدات المتأثرة، يمكن حل هذه المشكلة عن طريق إعادة البناء قليلاً (نقل الكود إلى مكان مختلف).
هل هو في الواقع العمل؟
نعم! على الأقل بالنسبة لي، يعمل بشكل جيد على جهازي اليومي (Nexus 5 على CM12) وأيضًا على جهاز Nexus 9 (المدفوع بواسطة XDA - شكرًا!). الهاتف مستقر كالمعتاد والتطبيقات تعمل بشكل جيد. ومن الواضح أن الوحدات والخطافات/بدائل الموارد الخاصة بها تعمل بشكل جيد أيضًا، وإلا فلن يكون هناك أي فائدة في إطلاق شيء ما.
ولكن لماذا إذن هو إصدار ألفا؟
نظرًا لوجود تغييرات كبيرة منذ الإصدار المستقر الأخير والتي يجب اختبارها بواسطة أشخاص يعرفون كيفية استخدام الاسترداد والهروب من حلقات التمهيد والإبلاغ عن الأخطاء بشكل صحيح. أنصح بشدة المبتدئين بالانتظار حتى يتم اختبار Xpose بواسطة عدد كافٍ من الأشخاص ذوي الخبرة.
هناك أيضًا بعض حالات الحافة التي لم يتم اختبارها بعد، مثل طرق ربط JNI (الأصلية) والأساليب التي يتم تنفيذها في وقت ربطها.
أريد تثبيته. الآن! ماذا علي ان افعل؟
تأكد من أنك قرأت كلماتي أعلاه وأنك على دراية بالأجزاء الداخلية لهاتفك. من الواضح أنك تحتاج إلى أن تكون على Lollipop ROM وأن يكون لديك نسخة احتياطية جيدة من بياناتك. في الوقت الحالي، سأقوم فقط بنشر إصدار ARMv7. يعتبر الإصدار 64 بت أكثر تعقيدًا، لذا دعونا نجرب الإصدار "السهل" أولاً.
في الوقت الحالي، يجب إجراء التثبيت يدويًا في استرداد مخصص. سيتم تثبيت وميض الملف المضغوط:
- app_process32_xpose وبعض الروابط الرمزية
- libexpose_art.so
- libart.so وبعض المكتبات الثنائية ذات الصلة (استنادًا إلى الإصدار 5.0.2، معززة بدعم الربط وما إلى ذلك)
- XposeBridge.jar (مخزن الآن في /system/framework)
سيتم إنشاء نسخ احتياطية من الملفات الموجودة تلقائيًا ويمكن استعادتها لاحقًا.
إنه لا يعمل / لا يعجبني! كيف يمكنني إلغاء تثبيته؟
أسهل طريقة هي استعادة نسخة احتياطية أو تحديث قسم النظام. لم يتم بعد إنشاء ملف مضغوط لإلغاء التثبيت.
لماذا تقوم باستبدال ملفات ART في جهازي؟ وهذا أكثر عدوانية من Dalvik، وسوف يسبب مشكلات كبيرة في الأداء وسيكون غير مستقر!
لقد كتبت بعض الأسباب على جيثب. نعم، إنه أكثر تدخلاً، لذا حاولت تجنبه لفترة طويلة، ولكن من وجهة نظر فنية وموجهة نحو الدعم، أعتقد أنه الخيار الأفضل.
أداء أقل من الفن الأصلي؟ ربما لأنه اضطررت إلى تعطيل بعض التحسينات لجعل أنواع معينة من الخطافات ممكنة. ومع ذلك، فإن هذا لا يؤثر إلا على جزء صغير من جميع الأساليب، وحتى بالنسبة لتلك الأساليب، فإن فقدان الأداء ليس كبيرًا أو ملحوظًا بالتأكيد، حتى لو كان قابلاً للقياس. لا يزال هناك الآلاف من التحسينات الأخرى التي يتم إجراؤها بواسطة ART، وقد حاولت تعطيل أقل عدد ممكن منها مع توفير أكبر قدر ممكن من المرونة.
الاستقرار جيد كما ذكرنا أعلاه. مقارنةً بالنهج الذي استخدمته مع Dalvik (تعديل هياكل البيانات الداخلية لوقت التشغيل من app_process)، وأنا متأكد تمامًا من أن استبدال المكتبات بالكامل يعد أكثر موثوقية طريق. يمكنني دمج تغييراتي في التعليمات البرمجية الموجودة بشكل نظيف وإعادة استخدام الوظائف ذات الصلة، في حين ستكون هناك حاجة إلى العديد من الاختراقات والافتراضات بطرق أخرى.
هل ستجعل كود المصدر عامًا أخيرًا؟
بالتأكيد، ستجده على GitHub بعد وقت قصير جدًا من إصدار نسخة ألفا، في فرع منفصل في الوقت الحالي.
هل هذا يعني أن إصدار Android الأقدم لم يعد مدعومًا الآن؟
لا! يتم تجميع التعليمات البرمجية الجديدة على كافة إصدارات 4.x من Android، وتحتاج فقط إلى اختبارها قبل الإصدار الموحد. لكن أولاً، أحتاج إلى التأكد من أنه يعمل بشكل جيد مع Lollipop. من المحتمل أن يتم دعم الدعم المضاد للفيروسات القهقرية إلى KitKat، لكن هذا له أولوية أقل.
كيف يمكنني أن أشكرك على عملك؟
لقد طلب العديد من الأشخاص طرقًا للتبرع ببضعة دولارات، لذلك قمت بإنشاء موقع هبة الصفحة الآن.
ما هو المبلغ الذي أحتاج إلى التبرع به حتى تتمكن من إضافة الميزة X أو الوحدة التي تقوم بوظيفة Y؟
هذا ليس تبرعًا، بل هو دفع أموال لشخص ما على أمل الحصول على عمل في المستقبل. أنا غير مهتم بالوظائف المستقلة.