Paano magdagdag ng pindutan ng Reboot Recovery sa Galaxy S7 Edge Power Menu

adb pull /system/framework/services.jar



Baguhin ang sa isang folder na iyong pinili.

  1. Ngayon buksan ang Easy Easy Tool, at piliin ang Piliin sa tabi ng “ APK file upang gumana sa '. Piliin ang framework-res.apk na iyong nakuha mula sa iyong Galaxy S7. Ngayon i-click ang decompile button.



  1. Pumunta ngayon sa direktoryo ng decompiled .APK file, at i-paste ang mga file mula sa framework-res .zip file na ibinigay ko sa decompiled folder ng iyong framework-res.apk.
  2. Ngayon gamit ang isang text editor, inirerekumenda ko talaga ang isang bagay tulad ng Notepad ++ na maaaring ayusin ang XML code, buksan ang res / mga halaga / arrays.xml
  3. Ngayon narito kung saan makakakuha tayo ng talagang panteknikal. Kailangan mong idagdag ang lahat ng mga linya na ipinapakita ko matapang sa mga sumusunod na snips ng code.
  4. Hanapin at idagdag kung ano ang mayroon ako naka-bold.

kapangyarihan
datamode
eroplano
i-restart
lockdown
bugreport
mga gumagamit
muling pag-reboot
emergencymode
subscreen
screenrec



  • Pumunta ngayon sa res / halaga / strings.xml at idagdag ang matapang .

Pagsingil ng konektadong aparato sa pamamagitan ng USB…
10,32,768,10,60
I-reboot ang Pag-recover



  • Okay, tapos na kami sa framework-res.apk. Maaari mo na itong muling magkumpuni sa APK Easy Tool.
  • Ngayon ay gagana kami sa Services.jar, kaya mabubuong-buo ang Services.jar sa APK Easy Tool, at kopyahin ang mga file mula sa jar ng .zip file na ibinigay ko sa itaas sa bagong decompiled na folder ng Services.jar.
  • Gumagamit na ngayon ng isang text editor, buksan ang smali / com / android / server / patakaran / GlobalActions.smali, at muli mong idaragdag ang naka-bold linya sa mga patlang na # instance

.field mEmergencyStringId: I
.field pribadong mRebootRec Recovery: Lcom / android / server / patakaran / GlobalActions $ SinglePressAction;

  • Hanapin ngayon .method pribadong createDialog () Lcom / android / server / patakaran / 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 / patakaran / GlobalActions; II) V ilipat-object / from16 v0, p0 iput-object v5, v0, Lcom / android / server / patakaran / GlobalActions; -> mRestart: Lcom / android / server / patakaran / GlobalActions $ SinglePressAction; bagong-halimbawa v4, Lcom / android / server / patakaran / GlobalActions $ 47; ilipat-object / mula sa16 v0, p0 iget-object v0, v0, Lcom / android / server / patakaran / GlobalActions; -> mContext: Landroid / nilalaman / Context; invoke-virtual {v0}, Landroid / content / Context; -> getResource () Landroid / content / res / Mga mapagkukunan; ilipat-resulta-object v0 const-string v1, 'tw_ic_do_rebootrec Recovery' 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;) Lumilipat ako-resulta v5 ilipat-object / mula sa16 v0, p0 iget-object v0, v0, Lcom / android / server / patakaran / GlobalActions; -> mContext: Landroid / nilalaman / Context; invoke-virtual {v0}, Landroid / content / Context; -> getResource () Landroid / content / res / Mga mapagkukunan; ilipat-resulta-object v0 const-string v1, 'tw_ic_do_rebootrec Recovery' 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;) Inililipat ko-resulta v6 move-object / from16 v0, p0 invoke-direct {v4, v0, v5, v6}, Lcom / android / server / patakaran / GlobalActions $ 47; -> (Lcom / android / server / patakaran / GlobalActions; II) V ilipat-object / mula sa16 v0, p0 iput-object v4, v0, Lcom / android / server / patakaran / GlobalActions; -> mRebootRec Recovery: Lcom / android / server / patakaran / GlobalActions $ SinglePressAction; invoke-static {}, Lcom / samsung / android / tampok / SemCscFeature; -> getInstance () Lcom / samsung / android / tampok / SemCscFeature; ilipat-resulta-object v4 const-string / jumbo v5, 'CscFeature_Common_ConfigBikeMode'
  • Ang susunod na bahagi ay nakakalito, kailangan mo idagdag ang mga naka-bold na linya at baguhin ang salungguhit.
Const / 16 v6, 0x80 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 / patakaran / GlobalActions $ Pagkilos; Ljava / util / ArrayList; Z) Z bagong-halimbawa v4, Lcom / android / server / patakaran / GlobalActions $ BugReportAction; move-object / from16 v0, p0 invoke-direct {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; -> mRebootRec Recovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction; ilipat-object / mula sa16 v0, p0 iget-object v5, v0, Lcom / android / server / patakaran / GlobalActions; -> mItems: Ljava / util / ArrayList; 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) Z const / 16 v6, 0x200 # bago ay 0x100 const / 4 v7, 0x1 move-object / from16 v0, p0 invoke-direct {v0, v6, v4, v5, v7}, Lcom / android / server / patakaran / GlobalActions; -> addDialogItemsIfEnabled (ILcom / android / server / patakaran / GlobalActions $ Pagkilos; Ljava / util / ArrayList; Z) Z
  • Ngayon maghanap para sa Const-string / jumbo v4 , 'Tahimik' at idagdag ang mga linyang ito sa itaas nito. Dapat magkatugma ang dalawang naka-bold na linya.
Const-string / jumbo v4, 'emergencymode' invoke-virtual {v4, v11}, Ljava / lang / String; -> katumbas (Ljava / lang / Object;) Z ilipat-resulta v4 if-eqz v4,: cond_15 ilipat- object / from16 v0, p0 iget-object v4, v0, Lcom / android / server / policy / GlobalActions; -> mItems: Ljava / util / ArrayList; ilipat-object / mula sa16 v0, p0 iget-object v5, v0, Lcom / android / server / patakaran / GlobalActions; -> mEmergency: Lcom / android / server / patakaran / GlobalActions $ ToggleAction; invoke-virtual {v4, v5}, Ljava / util / ArrayList; -> idagdag (Ljava / lang / Object;) Z goto / 16: goto_7 : cond_15 const-string / jumbo v4, 'rebootrec Recovery' invoke-virtual {v4, v11}, Ljava / lang / String; -> katumbas (Ljava / lang / Object;) Z ilipat-resulta v4 if-eqz v4,: cond_asc1 ilipat-object / mula sa16 v0, p0 iget-object v4, v0, Lcom / android / server / patakaran / GlobalActions; -> mItems: Ljava / util / ArrayList; ilipat-object / mula sa16 v0, p0 iget-object v5, v0, Lcom / android / server / patakaran / GlobalActions; -> mRebootRec Recovery: Lcom / android / server / patakaran / GlobalActions $ SinglePressAction; invoke-virtual {v4, v5}, Ljava / util / ArrayList; -> idagdag (Ljava / lang / Object;) Z goto / 16: goto_7 : cond_asc1 const-string / jumbo v4, 'tahimik'

Susunod na kailangan namin magdagdag ng isang nawawalang bahagi ng Android. services.jar, kaya idaragdag namin ito muli upang gumana ang mod na ito.
Hanapin ang linya para sa .method pribadong addCustomDialogItems (Landroid / graphics / drawable / BitmapDrawable; Ljava / lang / String; Landroid / content / Intent; ILjava / util / ArrayList;) Z

At idagdag ang pamamaraang ito sa itaas:



.method static synthetic access $ 500 (Lcom / android / server / patakaran / GlobalActions;) Landroid / nilalaman / Context; .locals 1 iget-object v0, p0, Lcom / android / server / policy / GlobalActions; -> mContext: Landroid / content / Context; return-object v0 .end na pamamaraan

Iyon lang, muling kumpunahin ang services.jar, at maaari mong itulak ang parehong recompiled framework-res.apk at services.jar pabalik sa iyong telepono, alinman sa itulak ng adb utos o sa pindutan ng Easy Easy Tool na 'I-install sa Telepono'.

Kung nakakuha ka ng boot loop pagkatapos na itulak sa telepono, mag-boot sa pasadyang pagbawi at punasan Dalvik + Cache.

Basahin ang 3 minuto