Modificare un'app Android e alterarne il comportamento

Spieghiamo brevemente com'è possibile modificare i principi di funzionamenti di un'applicazione Android rendendola compatibile con il proprio dispositivo e interoperabile con altri software. Come superare il controllo circa l'avvenuto rooting del dispositivo mobile.
Modificare un'app Android e alterarne il comportamento

Esiste una procedura tutto sommato non troppo intricata, soprattutto per chi è avvezzo a pestare i tasti da un bel po’ di anni, che permette di modificare il comportamento di un’app Android provvedendo a decompilare i file APK e a creare una nuova versione dell’applicazione.

La procedura che vi presentiamo non è di per sé proibita: le normative vigenti autorizzano l’utente a intervenire sul codice delle applicazioni nel caso in cui ciò risultasse necessario per rendere alcuni programmi interoperabili con altri, superando le incompatibilità introdotte dallo sviluppatore (vedere la Direttiva 2009/24/CE del Parlamento europeo e del Consiglio, del 23 aprile 2009 , relativa alla tutela giuridica dei programmi per elaboratore all’articolo 15).

Così, con un po’ di impegno, è possibile fare in modo che un’applicazione Android funzioni ad esempio su un dispositivo sottoposto a rooting e/o con la funzionalità Debug USB attivata nelle Opzioni per gli sviluppatori.

Sul forum di XDA-Developers è stata da poco pubblicata l’applicazione gratuita APK Easy Tool, un programma per Windows che consente di “smontare” file APK di qualunque applicazione Android e modificarne il comportamento.
Al termine delle modifiche, APK Easy Tool consente di generare un nuovo APK compilandone i file componenti con la possibilità di applicare una firma digitale.

Per usare il software sono necessari alcuni requisiti:

1) Utilizzare Windows 7 o versioni successive
2) Scaricare e installare il pacchetto .NET Framework 4.6.2 o versioni successive
3) Scaricare e installare il pacchetto Jave SE/JDK da questa pagina
4) Il file APK dell’applicazione sulla quale si desidera intervenire. È ottenibile in diversi modi: a tal proposito vedere anche l’articolo Decompilare APK e scoprire come funziona un’app Android. Si possono usare anche siti come APKMirror e APKMonk.

Prima di avviare APK Easy Tool bisognerà assolvere i precedenti punti 2) e 3) altrimenti la procedura d’installazione si interromperà prematuramente senza fornire indicazioni precise.

Una volta fatto tutto, suggeriamo di riavviare Windows, portarsi al prompt dei comandi e digitare java.
Se il sistema operativo restituisse il messaggio d’errore “java non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch suggeriamo di premere la combinazione di tasti Windows+R, digitare sysdm.cpl ,3, fare clic su Variabili d’ambiente, selezionare PATH nel riquadro Variabili di sistema, selezionare Modifica quindi portarsi in fondo alla stringa visualizzata aggiungendo il simbolo ; seguito dal percorso completo in cui è installato Java.

Come ultimo passo bisognerà riavviare il sistema operativo affinché la modifica abbia effetto.

Dopo aver avviato APK Easy Tool, basterà selezionare il file APK da esaminare quindi cliccare sul pulsante Decompile.
Con un clic sul pulsante Decompiled APK directory si può accedere al contenuto della cartella contenente la versione decompilata dell’applicazione.
Effettuando una ricerca per individuare la stringa restituita dall’applicazione Android in caso di errore, si otterrà la lista delle occorrenze all’interno dei file componenti l’app. Allo scopo si può usare una pratica utilità gratuita come SearchMyFiles (è scaricabile digitando SearchMyFiles nirsoft nella casella di ricerca di Google).

Esaminando i file in formato Smali e andando a ritroso analizzando i metodi che vengono richiamati generalmente si riesce a risalire al controllo condizionale if che, per esempio, controlla l’eventuale rooting del dispositivo.
Di solito si ha a che fare con un if-nez (non effettua il salto se la condizione non restituisce 0) ma è possibile trovarsi dinanzi ad altre varianti (vedere questa pagina).

Con la rimozione dei blocchi if-nez corretti e dei vari salti imposti nel caso in cui si verificasse una precisa condizione, è possibile modificare il comportamento dell’app Android rendendola compatibile e interoperabile con il proprio dispositivo mobile.

Infine, con un clic sul pulsante Compile, si otterrà una nuova versione del file APK automaticamente firmato da APK Easy Tool e pronto per essere utilizzato su qualunque dispositivo mobile Android (fare riferimento al pulsante Compiled APK directory).

Suggeriamo di effettuare tutte le operazioni da una macchina virtuale o un sistema di test in modo da non mantenere Java costantemente installato.

Ti consigliamo anche

Link copiato negli appunti