כיצד להוסיף כפתור שחזור אתחול מחדש לתפריט ההפעלה של Galaxy S7 Edge

משיכת adb /system/framework/services.jar



שנה את התיקייה שתבחר.

  1. עכשיו פתח את APK Easy Tool ובחר בחר לצד ' קובץ APK לעבוד עליו ”. בחר את ה- frame-res.apk ששלפת מהגלקסי S7 שלך. כעת לחץ על כפתור ה- Decompile.



  1. עכשיו נכנס לספרייה של קובץ ה- APK המפורק, והדבק את הקבצים מקובץ ה- ZIP. תיקיה מפורקת של מסגרת-res.apk שלך.
  2. עכשיו אני משתמש בעורך טקסט, אני ממש ממליץ על משהו כמו Notepad ++ שיכול לארגן קוד XML, לפתוח את res / values ​​/ arrays.xml
  3. עכשיו הנה המקום בו נהיה טכניות באמת. עליכם להוסיף את כל השורות בהן אני מציג נוֹעָז בקטעי הקוד הבאים.
  4. מצא ו לְהוֹסִיף מה שיש לי מודגש.

כּוֹחַ
datamode
מטוס
אתחול
סגר
דוח שגיאות
משתמשים
שחזור מחדש
מצב חירום
מסך משנה
מסך מסך



  • כעת עבור אל res / values ​​/ strings.xml ו- לְהוֹסִיף ה נוֹעָז .

טוען מכשיר מחובר באמצעות USB ...
10,32,768,10,60
אתחול מחדש



  • אוקיי, סיימנו עם מסגרת- res.apk. כעת אתה יכול לקמפל אותו מחדש בכלי APK קל.
  • כעת אנו נעבוד על Services.jar, לכן פירוט של Services.jar באמצעות APK Easy Tool ונעתיק את הקבצים מקובץ ה- zip של הצנצנת Services שסיפקתי לעיל לתיקיית Services.jar שהתפרקה לאחרונה.
  • כעת באמצעות עורך טקסט, פתח את smali / com / android / server / policy / GlobalActions.smali, ושוב אתה הולך להוסיף את מודגש שורה בשדות מופע #

. field mEmergencyStringId: אני
. שדה פרטי mRebootRecovery: Lcom / אנדרואיד / שרת / מדיניות / GlobalActions $ SinglePressAction;

  • עכשיו מצא “ .metode פרטי createDialog () Lcom / אנדרואיד / שרת / מדיניות / GlobalActions $ GlobalActionsDialog; '
if-eqz v4,: cond_8 const v4, 0x10809f4: goto_4 const v6, 0x10406e2 move-object / from16 v0, p0 הפעל-ישיר {v5, v0, v4, v6}, Lcom / אנדרואיד / שרת / מדיניות / GlobalAtions 20 $; - > (Lcom / אנדרואיד / שרת / מדיניות / GlobalActions; II) V העברת אובייקט / from16 v0, p0 iput-object v5, v0, Lcom / android / server / policy / GlobalActions; -> mRestart: Lcom / android / server / מדיניות / GlobalAtions $ SinglePressAction; מופע חדש v4, Lcom / אנדרואיד / שרת / מדיניות / GlobalActions 47 $; move-object / 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' call-virtual {v0, v1, v2, v3}, Landroid / content / res / Resources ; -> getIdentifier (Ljava / lang / String; Ljava / lang / String; Ljava / lang / String;) I move-result 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 call-direct {v4, v0, v5, v6}, Lcom / אנדרואיד / שרת / מדיניות / GlobalActions $ 47; -> (Lcom / אנדרואיד / שרת / מדיניות / GlobalActions; II) V העברת אובייקט / from16 v0, p0 iput-object v4, v0, Lcom / android / server / policy / GlobalActions; -> mRebootRecovery: Lcom / אנדרואיד / שרת / מדיניות / GlobalActions $ SinglePressAction; הפעל-סטטי {}, Lcom / samsung / android / feature / SemCscFeature; -> getInstance () Lcom / samsung / android / feature / SemCscFeature; move-result-object 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 / אנדרואיד / שרת / מדיניות / GlobalActions $ פעולה; Ljava / util / ArrayList; Z) Z מופע חדש v4, Lcom / android / server / policy / GlobalAtions $ BugReportAction; move-object / from16 v0, p0 call-direct {v4, v0}, Lcom / android / server / policy / GlobalAtions $ 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 object-move / from16 v0, p0 להפעיל ישיר {v0, v6, v4, v5, v7}, Lcom / android / server / policy / GlobalActions; -> addDialogItemsIfEnabled (ILcom / android / server / policy / GlobalAtions $ Action; Ljava / util / ArrayList; Z) Z const / 16 v6, 0x200 # לפני היה 0x100 const / 4 v7, 0x1 move-object / from16 v0, p0 הפעל-ישיר {v0, v6, v4, v5, v7}, Lcom / אנדרואיד / שרת / מדיניות / GlobalActions; -> addDialogItemsIfEnabled (ILcom / android / server / policy / GlobalAtions $ Action; Ljava / util / ArrayList; Z) Z
  • עכשיו חפש const-string / jumbo v4 , 'שקט' והוסף שורות אלה מעליו. שני הקווים המודגשים חייבים להתאים.
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; -> m Emergency: Lcom / android / server / policy / GlobalAtions $ ToggleAction; הפעל-וירטואלי {v4, v5}, Ljava / util / ArrayList; -> add (Ljava / lang / Object;) Z goto / 16: goto_7 : cond_15 const-string / jumbo v4, 'rebootrecovery' להפעיל-וירטואלי {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: goto_7 : cond_asc1 const-string / jumbo v4, 'silent'

בשלב הבא עלינו להוסיף חלק חסר ב- Android 7 services.jar, לכן אנו נוסיף אותו מחדש כדי שהמודול הזה יעבוד.
מצא את השורה עבור .method פרטי addCustomDialogItems (Landroid / graphics / drawable / BitmapDrawable; Ljava / lang / String; Landroid / content / Intent; ILjava / util / ArrayList;) Z

והוסף שיטה זו לעיל:



. גישה גישה סינתטית סטטית 500 $ (Lcom / אנדרואיד / שרת / מדיניות / GlobalActions;) Landroid / content / Context; .locals 1 iget-object v0, p0, Lcom / android / server / policy / GlobalActions; -> mContext: Landroid / content / Context; return-object v0. שיטת end

זהו זה, עכשיו הידור מחדש את services.jar, ותוכל לדחוף חזרה לטלפון שלך גם את ה- frame-res.apk וגם את services.jar לטלפון שלך, או עם ADB לדחוף פקודה או באמצעות כפתור APK Easy Tool 'התקן לטלפון'.

אם אתה מקבל לולאת אתחול לאחר לחיצה לטלפון, אתחל לשחזור מותאם אישית ומחק Dalvik + מטמון.

3 דקות קריאה