كيفية إضافة زر إعادة التشغيل إلى قائمة الطاقة في Galaxy S7 Edge

adb pull /system/framework/services.jar



قم بتغيير المجلد إلى مجلد من اختيارك.

  1. افتح الآن APK Easy Tool واختر 'تحديد' بجوار ' ملف APK للعمل عليه '. اختر ملف res.apk الذي قمت بسحبه من جهاز Galaxy S7. الآن انقر فوق الزر Decompile.



  1. انتقل الآن إلى دليل ملف .APK الذي تم فك تشفيره ، والصق الملفات من ملف framework-res .zip الذي قدمته في مجلد مفكك من framework-res.apk الخاص بك.
  2. الآن باستخدام محرر نصوص ، أوصي حقًا بشيء مثل Notepad ++ يمكنه تنظيم كود XML ، وفتح res / القيم / arrays.xml
  3. الآن هنا حيث سنصبح تقنيًا حقًا. تحتاج إلى إضافة جميع الأسطر التي أعرضها بالخط العريض في القصاصات التالية من التعليمات البرمجية.
  4. اعثر و أضف ما لدي جريئة.

قوة
وضع البيانات
مطار
إعادة بدء
الإغلاق الكامل
تقرير الشوائب
المستخدمين
انتعاش تمهيد
وضع الطوارئ
الشاشة الفرعية
الشاشة



  • انتقل الآن إلى الدقة / القيم / 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 دقائق للقراءة