طريقة إدراج تطبيق اندرويد مع ملفات النظام

السلام عليكم

لدي سؤال بخصوص تطبيقات الاندرويد

احاول عمل تطبيق يقوم بمهام مختلفة

وأرغب في معرفة امرين

  • كيفية دمج التطبيق مع ملفات نظام التشغيل بحيث لو عملت اعادة لضبط المصنع يظل التطبيق موجودا

  • أمكانية تزويد التطبيق بخاصية إعتراض عملية تغيير نسخة نظام التشغيل

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

تطبيقات النظام موجودة على شكل ملفات apk في مسار /system/app ولا يمكنك نسخ او نقل اي شيء اليه الا اذا كان لديك تطبيق يملك صلاحيات الروت ، عند عمل الروت اشهر طريقة هي عن طريق عمل flash لملف من الريكفري والريكفري ستقوم بناء على البيانات الموجودة داخل الملف بنقل برنامج الـ super user الى المسار الذي ذكرته لك فعند اعادة تشغيل الجهاز سيتأخر الجهاز حتى يعمل أكثر من العادة (لماذا ؟) لأنه يقوم بتنصيب ملف الـ apk الذي تم اضافته الى المسار الذي ذكرته لك وعندما يعمل الجهاز ستلاحظ أن تطبيق super user اصبح من تطبيقات النظام .

لكن ماذا لو قمت بنسخ ملف apk الى هذا المسار بشكل يدوي ثم اعدت تشغيل الجهاز ؟

ما سيحدث هو ان الجهاز بعد اعادة التشغيل سيقوم بتنصيب ملف الapk الجديد وسيصبح من تطبيقات النظام .

لكن انتبه اذا كنت قد نصبت التطبيق في السابق ثم قمت بنقل ال apk الى مسار برامج النظام سيحدث خطأ في التطبيق لانه لا يمكن له ان يكون منصب مرتين لذلك لن يفتح عندما تقوم بتشغيله .

ما الحل ؟

قبل ان تقوم بنقل ال apk الى مسار تطبيقات النظام عليك اولا ان تقوم بحذف البرنامج ثم نقل ملف ال apk وعمل اعادة تشغيل


لكن بعد كل هذا ما تطبيقه برمجيا ؟

يفترض بعد كل الكلام السابق (وبعد ان تجربه بنفسك) ان تكون قد فهمت المبدأ لذلك امامك حلين لعمل هذه الخاصية :

  • اما ان تقوم بعمل برنامج اخر يأخذ صلاحيات الروت ويتكفل بنقل الـ apk الخاص ببرنامجك الاصلي الى ذلك المسار ثم اعادة تشغيل الجهاز .

  • الحل الثاني (لست متأكدا ان كان ممكنا فلم اجرب من قبل) هو ان ينقل برنامجك الـ apk الخاص به ثم يقوم بحذف نفسه من قائمة البرامج قبل ان يقوم باعادة التشغيل (هذه النقطة التي لست متأكدا انها ممكنة) لكن على العموم ان لم تكن هذه الطريقة ممكنة فاستخدم الطريقة السابقة .

بالنسبة لصلاحيات الروت التي ستحتاجها بكل تأكيد يوجد اكثر من طريقة للحصول عليها ويمكنك استخدام مكتبة RootTools :


الخاصية الثانية التي تريدها لا اعرف عنها شيء بصراحة ولا اظن انها ممكنة .

في أندرويد الحالي لا يمكن ذلك حسب عملي.

الحل الوحيد هو بناء Custom Android Image وعمل ما تريد.