Modificando aplicaciones Android

En este apartado vamos a estudiar cómo podemos modificar una aplicación a partir de su fichero APK. Veremos que es posible modificar alguno de sus recursos o incluso su código y luego volver a generar un nuevo APK. Hay que recordar que el nuevo APK estará firmado por un certificado digital distinto al utilizado en la aplicación original. Este proceso puede ser algo laborioso. Afortunadamente, existen herramientas para automatizarlo. En este apartado utilizaremos APK Multi-Tools. Se trata de una herramienta que combina varias herramientas por medio de una interfaz de usuario muy sencilla de usar. Dentro de las herramientas que se integran, la piedra angular es apktool, que facilita el trabajo de ingeniería inversa sobre ficheros APK (http://code.google.com/p/android-apktool).


Modificando recursos binarios de una aplicación

La opción más sencilla para modificar una aplicación Android va a ser modificar alguno de sus recursos binarios. Vamos a poder reemplazar cualquier fichero de recurso de imágenes, audio, fuentes… siempre que respetemos el nombre de fichero y su formato.

Ejercicio paso a paso: Modificar recursos de una aplicación Android.

 

 

1.    Accede al sitio web http://apkmultitool.comy selecciona la opción Downlads. Descarga la última versión de APK Multi-Tool (disponible para Windows y Linux). En este tutorial hemos usado la versión 1.0.11 para Windows. En la siguiente página pulsa en «Saltar Publicidad»;se descargará el software.

2.     Descomprime el fichero comprimido dentro de la carpeta utilizada en el apartado anterior.

3.     Ejecuta el script Setup. Podrás elegir entre tres opciones:

                        APK MULTI-TOOL SETUP FILE

**************************************************************************

1. Check for update

   This Will Check if there is a update to the main program

   For  this option is not functional please visit

   http://apkmultitool.com for updates

**************************************************************************

2. Installing Framework-Res

   This Will install one of the Framwork-Res Files for 1.x/2.x/3.x/4.x

   This Feature also will install any of the other Dependencies needed

   In order to use this feature make sure to drop all of the needed files

   into the other Folder or else this script will not find them       

**************************************************************************

3. Setup Directories

   This will setup the appropate directories needed by Apk Multi-Tools

   (This script only needs to be ran for first time users do not use if your

   Just updating from previous Version)

 

La primera opción te permite chequear en la web si hay alguna actualización. La segunda te permite instalar los recursos del sistema necesarios cuando queremos modificar ROM del sistema. No es necesario ejecutarla, en esta unidad no vamos a modificar las aplicaciones del sistema. Selecciona la tercera opción para que se creen las carpetas necesarias para la aplicación. Ya puedes salir pulsando la opción 00.

4.     Observa que se habrá creado la carpeta place-apk-here-for-modding. Copia dentro de ella el fichero APK que quieras modificar. En nuestro caso Apalabrados.apk.

5.     Ejecuta el Script.bat. Aparecerá el menú principal de esta herramienta:

----------------------------------     -----------------------------------

Simple Tasks Such As Image Editing     Advanced Tasks Such As Code Editing

----------------------------------     -----------------------------------

0   Adb pull                           9   Decompile apk

1   Extract apk                        10  Decompile apk (with dependencies)

2   Optimize images inside                 (For proprietary rom apks)

3   Zip apk                            11  Compile System APK files

4   Sign apk (Dont do this IF its      12  Compile Non-System APK Files

    a system apk)                      13  Sign apk

5   Zipalign apk (Do once apk is       14  Install apk

    created/signed)                    15  Compile apk / Sign apk / Install

    Install apk (Dont do this IF           (Non-System Apps Only)

    system apk, do adb push)

7   Zip / Sign / Install apk

    (All in one step)

8   Adb push (Only for system apk)

 -----------

 tools Stuff

 -----------

17  Batch Optimize Apk (inside place-apk-here-to-batch-optimize only)

18  Sign an apk(Batch support)(inside place-apk-here-for-signing folder only)

19  Batch optimize ogg files (inside place-ogg-here only)

20  Clean Files/Folders

21  Select compression level for apk's

22  Set Max Memory Size (Only use IF getting stuck at decompiling/compiling)

23  Read Log

24  Set current project

25  About / Tips / Debug Section

26  Switch decompile mode (Allows you to pick to fully decompile the APK's

    or JAR's or to just decompile Sources or just the Resources or do a
    raw dump allowing you to just edit the normal images)

00  Quit

--------------------------------------------------------------------------

6.     Selecciona la opción 24 Set current Project. Se mostrará una lista con todos los ficheros APK situados en la carpeta place-apk-here-for-modding para que indiquemos el fichero con el que queremos trabajar. En nuestro caso Apalabrados.apk.

7.     Selecciona la opción 1 Extract apk. Se creará la carpeta projects/Apalabrados.apk y dentro se descomprimirán todos los ficheros de la aplicación:

8.     Entra en la carpeta res\drawable-hdpi y modifica alguno de los dos ficheros.

9.     PNG. Por ejemplo, haz doble clic sobre el fichero flag_es.png y modifícalo. También puedes modificar los iconos de la aplicación.

10.     Selecciona la opción 3 Zip apk y luego la opción 2 Regular apk. Dentro de la carpeta place-apk-here-for-modding se creará el fichero unsignedApalabrados.apk.

11.     Selecciona la opción 4 Sign apk. Dentro de la carpeta place-apk-here-for-modding se creará el fichero signedApalabrados.apk.

12.     Instala este fichero en un dispositivo móvil. Si ya tienes instalada la aplicación original en el dispositivo, aparecerá el siguiente error «Aplicación no instalada. Ya sea instalado un paquete con el mismo nombre con una firma en conflicto.»Dado que el nombre de paquete coincide, tratará de instalarla como una actualización. Sin embargo, la actualización dará error dado que la firma digital no coincide con la original. La solución en este caso consiste en desinstalar primero la aplicación original. Luego ya te permitirá instalar la nueva aplicación.

13.     Verifica los cambios realizados en los recursos gráficos:

14.     Selecciona la opción 00 Quit. Para salir de la herramienta.