ApkTool: Decompilare, modificare e ricompilare i file apk [Guida + Download]
Con questo articolo vi illustrerò come de-compilare un file apk per effettuare alcune operazioni, come per esempio tradurre i testi dell’applicazione in italiano o altra lingua nel caso questa non fosse prevista originariamente.
Per mettere in pratica questa operazione ci avvarremo di uno strumento chiamato APKTool realizzato dallo sviluppatore Brutt.all.
APKTool è in grado di effettuare il reverse engineering dei file binari delle applicazioni Android. Con esso è possibile de-compilare un apk ed ottenere i file che costituiscono l’apk.
Attenzione però che essendo java un linguaggio compilato in bytecode, eseguibile nel caso di Android dalla dalvik machine, non otterremo i file .class con il codice java leggibile in chiaro ma file .smali contenenti il codice assembly della virtual machine (assembler/disassmbler smali).
Più semplice sarà comprendere e modificare i file resources contenuti nella directory /res, solitamente si tratta di file xml e png di immagini che sarà possibile modificare per poi ricompilare l’apk
Per prima cosa è necessario scaricare APKtool per Windows che per comodità ho compresso insieme agli altri file necessari al corretto funzionamento del tool e caricato sul server di Androidlab.it.
[download id=”43357″]
- Scompattiamo l’archivio zip APKTool.zip appena scaricato e da prompt dei comandi/shell posizioniamoci all’interno della directory di APKtool
- eseguiamo il seguente comando:
apktool if framework-res.apk
dovremmo ottenere il sequente risultato
I: Framework installed to: C:\Users\nomeutente\apktool\framework\1.apk
- adesso copiamo nelle medesima cartella l’apk che desideriamo de-compilare ed impartiamo il seguente comando
apktool d nome-apk-da-de-compilare.apk |
al termine dell’esecuzione troveremo nella directory di APKtool una cartella avente lo stesso nome dell’app che abbiamo de-compilato.
Possiamo adesso andare a dare un occhiata ai file e modificare dove riteniamo opportuno.
- Per tradurre l’applicazione dovremmo modificare i file presenti in /res/values-it, se la cartella non è presente la dovremmo creare e copiare all’interno da un altra cartella values-xx i file arrays.xml e strings.xml e poi editarli traducendo i testi in italiano (*).
- dopo aver effettuato le modifiche dovremmo ricompilare il nostro apk con il seguente
apktool b nome-apk-da-compilare |
nella directory avente lo stesso nome dell’app che abbiamo de-compilato prece troveremo ora due nuove cartelle
- dist/
- build/
- nella cartella /dist troveremo il nostro apk, ricordate il file prodotto che è privo di signature, per firmare il paccheto ci possiamo avvalere di questo tool di cui abbiamo parlato qualche tempo fa
APKTool è disponibile anche per Linux e Mac, questa guida con qualche piccolo accorgimento potrà essere facilmente adattata all’utilizzo su entrambi sistemi.
Ho aperto un thread sul nostro forum per approfondire e discutere di eventuali problematiche relative a questo argomento.
Comment(1)