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.
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. 1. Accede al sitio web
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 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.