Kako dodati gumb za ponovno pokretanje u izbornik Power S7 Edge Galaxy

adb pull /system/framework/services.jar



Promijenite mapu po vašem izboru.

  1. Sada otvorite APK Easy Tool i odaberite Odaberi pored ' APK datoteka za rad '. Odaberite framework-res.apk koji ste izvukli sa svog Galaxyja S7. Sada kliknite gumb Decompile.



  1. Sada idite u direktorij dekompilirane datoteke .APK i zalijepite datoteke iz .zip datoteke framework-res. dekompilirana mapa vašeg okvira-res.apk.
  2. Sada, koristeći uređivač teksta, stvarno preporučujem nešto poput Notepad ++-a koji može organizirati XML kôd, otvoriti res / values ​​/ arrays.xml
  3. Sada ćemo ovdje postati stvarno tehnički. Morate dodati sve retke u kojima se prikazuje podebljano u sljedećim isječcima koda.
  4. Pronađi i dodati što sam podebljano.

vlast
datamode
zrakoplov
ponovno pokretanje
izolacija
bugreport
korisnika
rebootrecovery
hitni način
podzaslon
screenrec



  • Sada idite na res / values ​​/ strings.xml i dodati podebljano .

Punjenje povezanog uređaja putem USB-a ...
10,32,768,10,60
Ponovo pokrenite oporavak



  • U redu, završili smo s framework-res.apk. Sada ga možete ponovno sastaviti u APK Easy Tool.
  • Sada ćemo raditi na Services.jar, pa dekompilirajte Services.jar pomoću APK Easy Tool-a i kopirajte datoteke iz .zip datoteke jar jar-a usluge koju sam gore naveo u novo dekompiliranu mapu Services.jar.
  • Sada pomoću uređivača teksta otvorite smali / com / android / server / policy / GlobalActions.smali i opet ćete dodati podebljano redak u poljima # instance

.polje mEmergencyStringId: I
.polje privatno mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction;

  • Sada pronađite “ .metoda 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 / politika / GlobalActions $ SinglePressAction; nova instanca v4, Lcom / android / server / policy / GlobalActions $ 47; move-object / from16 v0, p0 iget-object v0, v0, Lcom / android / server / policy / GlobalActions; -> mContext: Landroid / content / Context; invoke-virtual {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;) Premještam-rezultat v5 move-object / from16 v0, p0 iget-object v0, v0, Lcom / android / server / policy / GlobalActions; -> mContext: Landroid / content / Context; invoke-virtual {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 invoke-direct {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; invoke-static {}, Lcom / samsung / android / feature / SemCscFeature; -> getInstance () Lcom / samsung / android / feature / SemCscFeature; move-result-object v4 const-string / jumbo v5, 'CscFeature_Common_ConfigBikeMode'
  • Sljedeći je dio lukav, trebate dodajte podebljane crte i modificirati podcrtano.
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 / policy / GlobalActions $ Action; Ljava / util / ArrayList; Z) Z nova instanca v4, Lcom / android / server / policy / 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; -> 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 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 # prije je bilo 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) Z
  • Sada potražite const-string / jumbo v4 , 'Tiho' i dodajte ove retke iznad njega. Dvije podebljane linije moraju se podudarati.
const-string / jumbo v4, 'hitni način' invoke-virtual {v4, v11}, Ljava / lang / String; -> jednako (Ljava / lang / Object;) Z potez-rezultat v4 if-eqz v4,: cond_15 move- objekt / od16 v0, p0 iget-objekt 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; -> mEmergency: Lcom / android / server / policy / GlobalActions $ ToggleAction; invoke-virtual {v4, v5}, Ljava / util / ArrayList; -> dodaj (Ljava / lang / Object;) Z goto / 16: goto_7 : cond_15 const-string / jumbo v4, 'rebootrecovery' invoke-virtual {v4, v11}, Ljava / lang / String; -> jednako (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; invoke-virtual {v4, v5}, Ljava / util / ArrayList; -> dodaj (Ljava / lang / Object;) Z goto / 16: goto_7 : cond_asc1 const-string / jumbo v4, 'tiho'

Dalje trebamo dodati dio Android 7 services.jar koji nedostaje, pa ćemo ga ponovno dodati kako bi ovaj mod radio.
Pronađite liniju za .method private addCustomDialogItems (Landroid / graphics / drawable / BitmapDrawable; Ljava / lang / String; Landroid / content / Intent; ILjava / util / ArrayList;) Z

I dodajte ovu gornju metodu:



.metoda statički sintetički pristup 500 USD (Lcom / android / server / policy / GlobalActions;) Landroid / content / Context; .locals 1 iget-object v0, p0, Lcom / android / server / policy / GlobalActions; -> mContext: Landroid / content / Context; return-object v0 .end metoda

To je to, sada prekompajlirajte services.jar i možete ponovno prekompajlirati framework-res.apk i services.jar na svoj telefon, bilo s adb push naredbu ili s APK jednostavnim alatom 'Instaliraj na telefon'.

Ako dobijete petlju pokretanja nakon pritiska na telefon, pokrenite se u prilagođeni oporavak i obrišite Dalvik + predmemorija.

3 minute čitanja