Questo è il modo in cui ho integrato l'easter egg Kitkat nella Rom 4.3 di un mio amico della sezione Nexus-xda
In questo modo verrà rimpiazzato il metodo che richiama l'activity Platlogo dal framework.jar, quella di Jellybean, con l'activity di una App contenente le risorse dell'Easter Egg KK originale...
1) Decompilare i Settings.apk
2) Aprire \Settings\smali\com\android\settings\DeviceInfoSettings.smali
3) Cercare "Plat"
In questo modo si trova il metodo relativo all'Easter Egg Jellybean.
Attenzione a fermarsi al primo che si trova, perché se fosse una Rom custom il secondo metodo che troverete sarà quello ad es. di Cyanogenmod relativo al suo Easter, o quello della PA e cosi via...
In questo es. ho modificato una Stock.
Cancellare la parte rossa di codice
codice:
.line 167
new-instance v0, Landroid/content/Intent;
const-string v1, "android.intent.action.MAIN"
invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 168
const-string v1, "android"
const-class v2, Lcom/android/internal/app/PlatLogoActivity;
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 171
:try_start_0
invoke-virtual {p0, v0}, Lcom/android/settings/DeviceInfoSettings;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
e mettere al suo posto questa parte blu di codice:
codice:
.line 167
new-instance v0, Landroid/content/Intent;
const-string v1, "android.intent.action.MAIN"
invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 168
new-instance v1, Landroid/content/Intent;
const-string v2, "android.intent.action.MAIN"
invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 169
.local v1, intent:Landroid/content/Intent;
new-instance v2, Landroid/content/ComponentName;
const-string v3, "com.adhi.kitkat.easteregg"
const-string v4, "com.adhi.kitkat.easteregg.PlatLogoActivity"
invoke-direct {v2, v3, v4}, Landroid/content/ComponentName;-><init>(Ljava/lang/String;Ljava/lang/String;)V
invoke-virtual {v1, v2}, Landroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;
.line 171
:try_start_0
invoke-virtual {p0, v0}, Lcom/android/settings/DeviceInfoSettings;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
Ovviamente il numero della linea che si aggiunge dipende dalla Rom, basta seguire la semplice regoletta... linea nuova= linea precedente + 1
;-)
4) Recompilare
5) Installare questa App (modificata e compilata da codice sorgente per risultare nascosta dal launcher) come un normale apk
Kitkat-EasterEgg.apk
Qui trovate il primo creatore dell'app (jetx2x)
http://forum.xda-developers.com/show....php?t=2511147
e qui il repository che ho usato per compilare l'app della guida
https://github.com/adhi1419/Kitkat-EasterEgg
in caso non sappiate fare questo mod, in questo thread trovate anche l'app con il .launcher compilata da adhi sul sorgente di jetx2x
http://forum.xda-developers.com/show....php?t=2544030