قم بتغيير المجلد إلى مجلد من اختيارك.
- افتح الآن APK Easy Tool واختر 'تحديد' بجوار ' ملف APK للعمل عليه '. اختر ملف res.apk الذي قمت بسحبه من جهاز Galaxy S7. الآن انقر فوق الزر Decompile.
- انتقل الآن إلى دليل ملف .APK الذي تم فك تشفيره ، والصق الملفات من ملف framework-res .zip الذي قدمته في مجلد مفكك من framework-res.apk الخاص بك.
- الآن باستخدام محرر نصوص ، أوصي حقًا بشيء مثل Notepad ++ يمكنه تنظيم كود XML ، وفتح res / القيم / arrays.xml
- الآن هنا حيث سنصبح تقنيًا حقًا. تحتاج إلى إضافة جميع الأسطر التي أعرضها بالخط العريض في القصاصات التالية من التعليمات البرمجية.
- اعثر و أضف ما لدي جريئة.
قوة
وضع البيانات
مطار
إعادة بدء
الإغلاق الكامل
تقرير الشوائب
المستخدمين
انتعاش تمهيد
وضع الطوارئ
الشاشة الفرعية
الشاشة
- انتقل الآن إلى الدقة / القيم / strings.xml و أضف ال بالخط العريض .
جارٍ شحن الجهاز المتصل عبر USB ...
10،32،768،10،60
انتعاش تمهيد
- حسنًا ، انتهينا من framework-res.apk. يمكنك الآن إعادة تجميعها في APK Easy Tool.
- سنعمل الآن على Services.jar ، لذا قم بفك ترجمة Services.jar باستخدام APK Easy Tool ، وانسخ الملفات من ملف Services jar .zip الذي قدمته أعلاه إلى مجلد Services.jar الذي تم فك تجميعه حديثًا.
- الآن باستخدام محرر نصوص ، افتح smali / com / android / server / policy / GlobalActions.smali ، ومرة أخرى ستضيف جريئة سطر في # حقول المثيل
.field mEmiticalStringId: I
.field خاص mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction ؛
- الآن ابحث عن ' .method private createDialog () Lcom / android / server / policy / GlobalActions $ GlobalActionsDialog؛ '
if-eqz v4 ،: cond_8 const v4 ، 0x10809f4: goto_4 const v6 ، 0x10406e2 move-object / from16 v0 ، p0 invoke-direct {v5 ، v0 ، v4 ، v6} ، Lcom / android / server / policy / GlobalActions 20 $ ؛ - > (Lcom / android / server / policy / GlobalActions ؛ II) V move-object / from16 v0، p0 iput-object v5، v0، Lcom / android / server / policy / GlobalActions؛ -> mRestart: Lcom / android / server / سياسة / GlobalActions $ SinglePressAction؛ نسخة جديدة v4 ، Lcom / android / server / policy / GlobalActions 47 دولارًا ؛ نقل الكائن / from16 v0 ، p0 iget-object v0 ، v0 ، Lcom / android / server / policy / GlobalActions ؛ -> mContext: Landroid / content / Context ؛ استدعاء الظاهري {v0} ، Landroid / content / Context ؛ -> getResources () Landroid / content / res / Resources ؛ move-result-object v0 const-string v1، 'tw_ic_do_rebootrecovery' const-string v2، 'drawable' const-string v3، 'android' invoke-virtual {v0، v1، v2، v3}، Landroid / content / res / Resources ؛ -> getIdentifier (Ljava / lang / String ؛ Ljava / lang / String ؛ Ljava / lang / String ؛) أنا حرك نتيجة v5 move-object / from16 v0 ، p0 iget-object v0 ، v0 ، Lcom / android / server / سياسة / GlobalActions ؛ -> mContext: Landroid / content / Context ؛ استدعاء الظاهري {v0} ، Landroid / content / Context ؛ -> getResources () Landroid / content / res / Resources ؛ move-result-object v0 const-string v1، 'tw_ic_do_rebootrecovery' const-string v2، 'string' const-string v3، 'android' invoke-virtual {v0، v1، v2، v3}، Landroid / content / res / Resources ؛ -> getIdentifier (Ljava / lang / String؛ Ljava / lang / String؛ Ljava / lang / String؛) I move-result v6 move-object / from16 v0، p0 استدعاء مباشر {v4، v0، v5، v6} ، Lcom / android / server / policy / GlobalActions 47 دولارًا ؛ -> (Lcom / android / server / policy / GlobalActions ؛ II) V move-object / from16 v0، p0 iput-object v4، v0، Lcom / android / server / policy / GlobalActions ؛ -> mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction ؛ استدعاء ثابت {}، Lcom / samsung / android / feature / SemCscFeature؛ -> getInstance () Lcom / samsung / android / feature / SemCscFeature؛ تحريك-نتيجة-كائن v4 const-string / jumbo v5 ، 'CscFeature_Common_ConfigBikeMode'
- الجزء التالي صعب ، أنت بحاجة إليه أضف الخطوط الغامقة وتعديل الخط الذي تحته خط.
const / 16 v6 ، 0x80 const / 4 v7 ، 0x1 move-object / from16 v0 ، p0 استدعاء مباشر {v0 ، v6 ، v4 ، v5 ، v7} ، Lcom / android / server / policy / GlobalActions ؛ -> addDialogItemsIfEnabled (ILcom / android / server / policy / GlobalActions $ Action؛ Ljava / util / ArrayList؛ Z) Z new-example v4، Lcom / android / server / policy / GlobalActions $ BugReportAction؛ move-object / from16 v0، p0 استدعاء مباشر {v4، v0}، Lcom / android / server / policy / GlobalActions $ BugReportAction؛ -> (Lcom / android / server / policy / GlobalActions؛) V move-object / from16 v0 ، p0 iget-object v5، v0، Lcom / android / server / policy / GlobalActions؛ -> mItems: Ljava / util / ArrayList؛ const / 16 v6 ، 0x100 move-object / from16 v0 ، p iget-object v4 ، v0 ، Lcom / android / server / policy / GlobalActions ؛ -> mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction ؛ move-object / from16 v0، p0 iget-object v5، v0، Lcom / android / server / policy / GlobalActions؛ -> mItems: Ljava / util / ArrayList ؛ const / 4 v7 ، 0x1 move-object / from16 v0 ، p0 استدعاء مباشر {v0 ، v6 ، v4 ، v5 ، v7} ، Lcom / android / server / policy / GlobalActions ؛ -> addDialogItemsIfEnabled (ILcom / android / server / policy / GlobalActions $ Action؛ Ljava / util / ArrayList؛ Z) Z const / 16 v6، 0x200 # قبل ذلك كان 0x100 const / 4 v7 ، 0x1 move-object / from16 v0 ، p0 invoke-direct {v0، v6، v4، v5، v7} ، Lcom / android / server / policy / GlobalActions ؛ -> addDialogItemsIfEnabled (ILcom / android / server / policy / GlobalActions $ Action ؛ Ljava / util / ArrayList؛ Z)
- ابحث الآن عن const-string / جامبو v4.0 ، 'صامت' وأضف هذه الأسطر فوقه. يجب أن يتطابق الخطان الغامقان.
const-string / jumbo v4 ، استدعاء 'Emergencymode' الظاهري {v4، v11}، Ljava / lang / String؛ -> يساوي (Ljava / lang / Object؛) Z move-result v4 if-eqz v4،: cond_15 move- الكائن / from16 v0، p0 iget-object v4، v0، Lcom / android / server / policy / GlobalActions؛ -> mItems: Ljava / util / ArrayList؛ move-object / from16 v0، p0 iget-object v5، v0، Lcom / android / server / policy / GlobalActions؛ -> mEmstract: Lcom / android / server / policy / GlobalActions $ ToggleAction؛ استدعاء الظاهري {v4، v5}، Ljava / util / ArrayList؛ -> add (Ljava / lang / Object؛) Z goto / 16: غوتو_7 : cond_15 const-string / jumbo v4، 'rebootrecovery' invoke-virtual {v4، v11}، Ljava / lang / String؛ -> يساوي (Ljava / lang / Object؛) Z move-result v4 if-eqz v4،: cond_asc1 move-object / from16 v0، p0 iget-object v4، v0، Lcom / android / server / policy / GlobalActions؛ -> mItems: Ljava / util / ArrayList ؛ Move-object / from16 v0، p0 iget-object v5، v0، Lcom / android / server / policy / GlobalActions؛ -> mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction ؛ استدعاء الظاهري {v4، v5}، Ljava / util / ArrayList؛ -> add (Ljava / lang / Object؛) Z goto / 16: غوتو_7 : cond_asc1 const-string / jumbo v4 ، 'silent'
بعد ذلك ، نحتاج إلى إضافة جزء مفقود من خدمات Android 7.jar ، لذلك سنقوم بإعادة إضافته حتى يعمل هذا التعديل.
ابحث عن السطر الخاص بـ .method private addCustomDialogItems (Landroid / Graphics / drawable / BitmapDrawable ؛ Ljava / lang / String ؛ Landroid / content / Intent ؛ ILjava / util / ArrayList ؛) Z
وأضف هذه الطريقة أعلاه:
.method وصول اصطناعي ثابت 500 دولار (Lcom / android / server / policy / GlobalActions ؛) Landroid / content / Context ؛ .locals 1 iget-object v0، p0، Lcom / android / server / policy / GlobalActions؛ -> mContext: Landroid / content / Context ؛ عودة الكائن v0. طريقة النهاية
هذا كل ما في الأمر ، الآن أعد ترجمة services.jar ، ويمكنك إعادة كلٍّ من framework-res.apk و services.jar المُعاد ترجمتهما إلى هاتفك ، إما باستخدام دفع adb الأمر أو باستخدام زر APK Easy Tool 'التثبيت على الهاتف'.
إذا حصلت على حلقة تمهيد بعد الضغط على الهاتف ، فقم بالتمهيد في الاسترداد المخصص والمسح Dalvik + الكاش.
3 دقائق للقراءة