AndroidLab

Il Laboratorio Italiano Android e Google Chrome

apktool

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.

Nome: Apk Tool
Dimensione: 7.26 MB
Download: 15897
QR Code
  1. Scompattiamo l’archivio zip APKTool.zip appena scaricato e da prompt dei comandi/shell posizioniamoci all’interno della directory di APKtool
  2. 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
  3. 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

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.

Michele Dipace

Admin di Androidlab e "Computer Addicted", ha cominciato la sua"carriera" nella metà degli anni 80 sui computer 8 bit Commodore e Sinclair passando poi al 16 bit Amiga, diventandone grande appassionato. Oggi Linux user, crede che Android sia il sistema operativo destinato ad emergere nel mercato della telefonia mobile.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInPinterestGoogle PlusYouTube

Forum Android
Diventa un blogger, scrivi un articolo