Estensione Menu Riavvia
(4-way Reboot)
Premetto che non dispongo di un Galaxy S4, per questo ringrazio la mitica malo2000 per l'aiuto a integrare e testare questa Mod
Necessario per integrare la Mods
- Consigliatissimo il programma per PC Notepad++
- Avete bisogno del programma Backsmali/Smali
- il file android.policy.jar che trovate in system/framework
- Scaricate questi 3 smali da inserire appundo nell'android.policy.jar
- il file framework-res.apk che trovate in system/framework per fare un confronto con dei valori negli smali
- Prima di tutto bisogna decompilare tramite Backsmali/Smali il file android.policy.jar
- Andate nella cartella \com\android\internal\policy\impl e qui dentro estraete i 3 smali scaricati prima
- Ora aprite il file GlobalActions.smali e dovete cambiare 2 valori da GlobalActions$5 a GlobalActions$99
PRIMA
codice:
.line 566
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions$5;
const v1, 0x108097f
const v2, 0x1040199
invoke-direct {v0, p0, v1, v2}, Lcom/android/internal/policy/impl/GlobalActions$5;->(Lcom/android/internal/policy/impl/GlobalActions;II)V
iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
DOPO
codice:
.line 566
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions$99;
const v1, 0x108097f
const v2, 0x1040199
invoke-direct {v0, p0, v1, v2}, Lcom/android/internal/policy/impl/GlobalActions$99;->(Lcom/android/internal/policy/impl/GlobalActions;II)V
iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
-Salvate lo smali
-Ora aprite il GlobalActions$SinglePressAction.smali e cercate la stringa # instance fields e prima inserite la parte in verde
codice:
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/android/internal/policy/impl/GlobalActions;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x40a
name = "SinglePressAction"
.end annotation
# static fields
.field protected static rebootMode:I
.field protected static final rebootOptions:[Ljava/lang/String;
# instance fields
.field private final mIcon:Landroid/graphics/drawable/Drawable;
.field private final mIconResId:I
.field private final mMessage:Ljava/lang/CharSequence;
.field private final mMessageResId:I
- Ora cercate # direct methods e subito dopo incollate il metodo in verde
codice:
# direct methods
.method static constructor ()V
.registers 3
const/4 v0, 0x4
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "Riavvia"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "Riavvio Veloce"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "Download"
aput-object v2, v0, v1
const/4 v1, 0x3
const-string v2, "Recovery"
aput-object v2, v0, v1
sput-object v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
return-void
.end method
.method protected constructor (II)V
- Salvate lo smali
- Ora non resta che confrontare i 2 ID con il framework-res.apk (al 99% saranno giusti, ma controllare fa togliere ogni dubbio)
- Intanto aprite il GlobalActions$99.smali e cercate questi 2 ID:
0x104000a e 0x104 (rispettivamente nella riga 68 e 78)
- Ora decompilate il framework-res.apk e aprite il file public.xml che trovate in res/values/
- Bisogna confrontare l'id del "string" name="ok" con 0x104000a
- E l'id del "string" name="cancel" con 0x104
quindi:
smali 0x104000a = 0x0104000a "string" name="ok"
smali 0x104 = 0x01040000 "string" name="cancel"
- ovviamente se nel public.xml sono diversi bisogna modificare lo smali con il valore dell'xml
Opzionale:
Se volete cambiare il testo in alto "Menu riavvio" con quello che preferite
- aprite lo smali GlobalActions$99.smali
- cercate questa stringa e modificate la parte in verde con quello che preferite
codice:
const-string v2, "Menu riavvio"
NE IO NE ANDROIDIANI CI ASSUMIAMO RESPONSABILITA'.. SIAMO TUTTI MAGGIORENNI