APK Multi-Tool 1.0.11: Come decompilare/compilare un APK
Cosa impareremo da questa guida:
Questa guida nasce per aiutare coloro che vogliono entrare attivamente nel mondo del modding ma sono scoraggiati dalla sua immensità come fu per il mio esordio, per questo vi accompagnerò per mano alla porta principale (proprio come farebbe una mamma con il suo piccolo) presentandovi il primo straordinario e fondamentale strumento
APK Multi-Tool 1.0.11 con il quale cominceremo a gettare i primi passi.
Prima di iniziare però voglio precisare che quello che fate è a vostro rischio e pericolo e siete responsabili per eventuali problemi che potreste causare al vostro Nexus.
Cosa ci serve per poter iniziare:
1) Prima di tutto avremo bisogno di configurare l'ambiente di lavoro Windows (
JDK,
Android SDK, driver ecc.) e per questo vi rimando (temporaneamente finchè non trovo un pò di tempo, perdonatemi per questo) alla guida sullo
Sblocco Manuale del Nexus dato che è già stato spiegato li.
2) 7-Zip per aprire i file .zip e scaricabile da
qui.
3) Il nostro
APK Multi-Tool 1.0.11 che potete scaricare da
qui oppure da
qui.
4) Notepad++ che potete scaricare da
qui.
5) Il file
framework-res.apk della ROM che avete installata o per la quale volete realizzare la Mod che trovate al percorso rom.zip\system\framework\.
6) Il
file.apk che volete decompilare/compilare per apportare le modifiche volute.
Installiamo APK Multi-Tool 1.0.11:
Estraiamo il contenuto del file
APK-Multi-Toolv1.0.11.zip in una cartella qualsiasi purchè sia nel percorso completo che nel nome della cartella stessa non ci siano spazi cioè
C:\ANDROID\APK-Multi-Tool-1.0.11\APK-Multi-Tool\ va bene invece
C:\ANDROID\APK Multi-Tool 1.0.11\APK-Multi-Tool\ non va bene.
A questo punto dovreste trovarvi il seguente albero dei file come da screenshot:
Fate partire il file
Setup.bat e vi troverete la seguente schermata.
A questo punto solo la prima volta bisogna creare le cartelle tramite l'opzione
3. Setup Directories poi digitare
00 Quit e invio per uscire, il tool ha creato delle altre cartelle di cui parleremo più sotto quando ci serviranno.
Abbiamo finito di predisporre tutto l'ambiente di sviluppo ed ora possiamo procedere alla decompilazione del nostro primo
file.apk.
Decompiliamo il nostro primo file.apk:
Prendiamo come esempio proprio il file
framework-res.apk che estrarremo dalla nostra ROM, questo file è
"speciale" perchè oltre ad essere per noi un qualsiasi file APK da modificare è anche il file da cui attingono anzi
dipendono tutti gli altri APK
"non speciali" .
Proprio per questo suo essere speciale il file
framework-res.apk della ROM va copiato in 2 diverse cartelle cioè
place-apk-here-for-modding ed in
other, in genere invece i vari file.apk vanno copiati solo in
place-apk-here-for-modding ed è qui che li ritroveremo anche dopo la ricompilazione.
A questo punto bisogna installare il
framework-res.apk, lanciamo allora
Setup.bat digitiamo
2. Installing Framework-Res poi digitare
1. Install framework-res.apk infine digitare
00 Quit e invio per uscire, la stessa procedura sarà effettuata ad ogni cambio di ROM, anche nel cambio di nightly nel caso della CM.
Una volta installato il
framework-res.apk possiamo decompilarlo e darci un'occhiata dentro ... tanto per sbirciare un pò ;), per decompilare qualsiasi file.apk dobbiamo seguire questa procedura:
1) Mettere il file.apk da decompilare nella cartella
place-apk-here-for-modding (lo abbiamo già fatto prima per il file di esempio
framework-res.apk).
2) Lanciamo il file
Script.bat dalla cartella di APK Multi-Tool e dopo un Invio ci ritroviamo la seguente schermata (screenshot valido solo per la versione 1.0.11 di APK Multi-Tool usato in questa guida).
3) Digitiamo
24 Set current project per scegliere il file da decompilare (nel nostro esempio scegliamo
framework-res.apk) e diamo Invio .
4) Decompiliamo il
framework-res.apk digitando
9 Decompile apk e dando Invio come sempre per confermare la scelta.
A questo punto il tool procederà alla decompilazione del
framework-res.apk all'interno della cartella
projects/framework-res.apk/ e potremo procedere alle varie modifiche.
Facciamo ora un esempio concreto di modifica al
framework-res.apk per mettere in pratica quello che abbiamo appena imparato.
Ricompiliamo il nostro primo file.apk:
Dopo aver apportato le modifiche volute ad immagini, file .xml e file .smali siamo giunti alla fase della ricompilazione e non vediamo l'ora di buttare il nuovo file.apk moddato dentro il nostro caro Nexus per goderci il nostro primo capolavoro ;)
A questo punto però si aprono 2 strade a seconda che abbiamo moddato un file di sistema (appartenente alla nostra rom) oppure un file non di sistema quale potrebbe essere un tema.apk, percorriamo allora le 2 strade:
1) Ricompilazione APK di sistema (no signed) opz. 11
Ricompiliamo il nostro
framework-res.apk appena modificato procedendo con i vari passi:
- Digitiamo
11 Compile System APK files e diamo invio, dopo qualche secondo ci apparirà il seguente messaggio
codice:
Aside from the signatures, would you like to copy
over any additional files that you didn't modify
from the original apk in order to ensure least
# of errors (y/n)
Type input:
- Digitiamo
y e dopo aver premuto Invio il tool creerà una cartella chiamata
keep e ci verrà restituito il seguente messaggio
codice:
In the APK Multi-Tools folder u'll find
a keep folder. Within it, delete
everything you have modified and leave
files that you haven't. IF you have modified
any xml, then delete resources.arsc from that
folder as well. Once done then press enter
on this script.
Premere un tasto per continuare ...
Prima di premere un tasto per andare avanti, dobbiamo cancellare dalla cartella
keep tutti i file modificati (.xml e/o .png), inoltre se abbiamo apportato modifiche ai file .smali va cancellato il file
classes.dex e se è stato modificato anche 1 solo file .xml va cancellato anche il file
resources.arsc, ritorniamo nella schermata del tool e premiamo un tasto per completare la mod.
- A questo punto abbiamo finito nella cartella
place-apk-here-for-modding troviamo il nostro file moddato
unsignedframework-res.apk che deve essere rinominato in
framework-res.apk.
(Per applicare la mod bisogna poi realizzare uno zip flashabile oppure sostituire nel Nexus il
framework-res.apk dando i permessi rw r r e riavviando il dispositivo.)
2) Ricompilazione APK non di sistema (signed) opz. 15 (All in one)
In questo caso la procedura è molto più semplice:
- Attivare il
debug usb sul nexus e collegarlo al PC (se non lo attivate poco male, vi ritrovate comunque il file nella cartella
place-apk-here-for-modding e potrete installarlo manualmente ;)
- Digitare
15 Compile apk / Sign apk / Install apk (Non-System Apps Only) e premere invio, in un colpo solo il file sarà ricompilato, signato ed installato sul nexus ... figo no ?
- Anche in questo caso abbiamo finito e come nel caso precedente vi ritrovate il nuovo APK modificato e signato nella cartella
place-apk-here-for-modding con il nome
signedNomeOriginale.apk che potete mettere in archivio o in SD per eventuale uso futuro.
Piccola video guida:
Spero con questa guida di aver fatto cosa gradita e che apprezziate l'impegno e lo sforzo non indifferente.
Saluti,
Paola.