Per editare le apk, dobbiamo, prima di tutto, avere sul nostro pc:
Dobbiamo installare i sorgenti e per farlo scriviamo da terminale: apktool if framework-res.apk
apktool if twframework-res.apk
Supponiamo ora che l'apk che vogliamo modificare sia launcher.apk. La prendiamo da /system/app nel Galaxy e la portiamo sul nostro pc. Ci portiamo con il terminale nella cartella che contiene launcher.apk e digitiamo:
apktool d launcher.apk
A questo punto, avremo una cartella denominata launcher. Ci spostiamo dentro ed effettuiamo le modifiche che desideriamo, nel caso volessimo cambiare l'icona del programma, dovremmo sostituire il file icon.png in /res/drawable e /res/drawable-hdpi con quella che desideriamo appaia sullo schermo del nostro Galaxy. Attenzione a mantenere inalterata la dimensione, controllate che i pixel siano gli stessi dell'icona originale!
A questo punto dobbiamo ricompilare la nostra apk in questo modo:
apktool b launcher
Nella cartella launcher troveremo un'altra directory che si chiama build, dentro la quale ci sarà la folder apk che contiene launcher.apk, l'applicazione da noi modificata.
Per terminare dobbiamo signare l'apk, altrimenti il sistema si rifiuterà di installarlo.
Grazie a
questo sito ho capito una volta per tutte come farlo.
Ecco cosa digitare nel terminale, prima per creare una nostra firma (vi verranno richieste delle informazioni, potete anche premere enter e lasciare tutto in bianco):
openssl genrsa -out key.pem 1024
openssl req -new -key key.pem -out request.pem
openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem
openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt
Nella directory in cui abbiamo digitato questi comandi, ci troveremo i file: key.pem, certificate.pem, request.pem e key.pk8. Estraiamo il contenuto di SignApk.zip e spostiamo SignApk.jar nella cartella coi file che abbiamo appena creato.
Nel terminale diamo il seguente comando:
java -jar signapk.jar certificate.pem key.pk8 launcher.apk launcher-signed.apk
Il pacchetto che verrà creato, launcher-signed.apk è la nostra applicazione pronta da essere messa in /system/app nel Galaxy S2. Grazie ad un gestore di file, impostiamo i comandi del pacchetto appena trasferito a 644, se non sapete cosa significhi, date un'occhiata ai permessi delle altre apk al percorso /system/app.
Se l'applicazione non fosse di sistema, come nel caso di Push Ups, per installarla basta trasferire l'apk che abbiamo creato noi, nella sdcard e selezionarla manualmente.
Per essere sicuri che tutto funzioni, vi consiglio di disinstallare l'applicazione originale, magari facendo precedentemente un backup di sicurezza, prima di installare quella creata da voi.