APK Tool Manager

Compila y descompila aplicaciones con ApkTool (Windows) Bien hoy les explicare como se usa apktool, para descompilar y c

Views 154 Downloads 11 File size 325KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Compila y descompila aplicaciones con ApkTool (Windows) Bien hoy les explicare como se usa apktool, para descompilar y compilar aplicaciones en windows. En el foro hay otro tutorial para compilar y descompilar, pero con ApkManager no con ApkTool. Yo coloque este, porque algunas aplicaciones no van con ApkManager y si con este, y viceversa.

Archivos necesarios: 

Android JDK: Descargar aquí!!



ApkTool: Descargar aquí!!



framework-res.apk: lo sacamos de la ROM



twframework-res.apk (en caso de tener un Samsung): lo sacamos de la ROM



Paciencia jaja

Aclaraciones: - Cuando descarguen el jdk, deben indicar para que sistema operativo es, ademas si es para 32bits o 64bits. - Cuando vallan a descargar el apktool, necesitan descargar dos archivos, el apktool propiamente dicho (actualmente es este: apktool1.5.2.tar.bz2) y las dependencias para windows (actualmente es este: apktool-install-windows-r05-ibot.tar.bz2).

Instalación de los archivos: ~ Ya una vez descargado e instalado el jdk, procedemos a descargar el apktool.. son dos archivos por descargar, los cuales encontramos 2 dentro de un .tar.gz y 1 dentro del otro .tar.gz, lo que tenemos que hacer es crear una carpeta llamada "apktool" (por ejemplo, yo la creo en C:\sdk/apktool ya que uso la sdk de android). Y descomprimimos los dos .tar.gz con cualquier compresor de archivos, dentro de esta otra carpeta. ~ Si ya tenemos todo lo anterior, entonces podemos seguir.

Como utilizar ApkTool: Descompilar APK: ~ Estos pasos son importantes, debes copiar las siguientes apks que estan en estas rutas:



framework-res.apk -> /system/framework/



apk a descompilar (Por lo general esta aquí) /system/app, pero cualquiera vale.



Si tienes un samsung tambien necesitaras twframework-res.apk que esta en /system/framework

~ Presionamos la tecla Windows o simple vamos a Inicio y escribimos: cmd

Y le damos enter. Esto nos abrira una consola como esta:

~ Ya ahora tenemos que acceder a la carpeta donde esta el ApkTool, asi: cd C:\sdk/apktool

~ Ahora el codigo para descompilar: ~ Primero necesitamos instalar el framework-res.apk, así: apktool if framework-res.apk

En caso de tener Samsung, abre el "spoiler": apktool d nombre_de_la_aplicacion.apk

Cosas a tener en cuenta con este codigo: 

La aplicacion no puede contener espacios en su nombre



si por error se olvidan del poner el ".apk" les saldra error

~ Ya esto nos creara una carpeta con el mismo nombre de la apk en el mismo directorio, en el caso del codigo anterior, me creara dentro de la carpeta apktool una carpeta con el nombre de nombre_de_la_aplicacion. Bien, dentro encontraran todas las carpetas de la apk, quizás en otro tutorial, expliquemos que función cumple cada una de ellas.

Compilar APK: El proceso de compilado es mas corto, así que relájate XD ~ Ya supongo que has modificado todo lo que necesitabas, bien ahora es momento de compilar: ~ Colocamos este codigo: apktool b nombre_de_la_aplicacion

Cosas a tener en cuenta con este codigo: 

El nombre es el nombre de la carpeta que nos creo al descompilarla



Si por error ponen la extension ".apk" les saldra error, la carpeta no tiene extensión, no deben ponerle.

Bien, cuando ya compile y revisando de no tener errores, entonces encontraremos la aplicación compilada dentro de: nombre_de_la_aplicacion/dist y dentro de nombre_de_la_aplicacion/build encontraran la apk pero sin empaquetarse como .apk, o sea, es lo mismo que contiene la apk pero "desempaquetado". Hablando mal y pronto seria como abrir la apk con "winrar" o algún otro compresor y darle a extraer. Bien, ya tenemos la apk, descompilada, modificada y compilada. Ahora tenemos que firmarlas, para esto hay varios metodos, los explicare en el segundo comentario luego, que me va a llevar un buen tiempo jeje

Qué es el Apk Manager? Se podría denominar como un compendio de programas unificados en una única herramienta para facilitar la labor de gestión, edición, modificación, firmado e instalación de apk. Esta versión de Apk Manager usa como base los siguinetes programas: Apktool v1.3.2, 7za v4.6.5, Ropting v0.6.3, Sox v14.3.1 y Android Asset Packaging Tool v0.2 Si habéis probado el manual que pusimos en el post donde os ensenábamos a incluir un idioma extra a una apk, habréis comprobado vosotros mismos cuan tediosa puede llegar a ser la labor de decompilado y compilado de una aplicación sin ni siquiera tener que modificar las png, comprimir sus ogg o simplemente firmarla. Apk Manager nos ofrece la posibilidad de compilar, firmar e instalar una apk en tan solo un único paso. Características Estas son alguna de las características más relevantes de la aplicación: 

Extracción o decompilado de una Apk o un Zip.



Optimización de imágenes png para aligerar su peso.



Firma de Apks.



Optimización por paquete de Zip, png y/o ambas.



Optimización de audio Ogg.



Posibilidad de selección del nivel de compresión.



Instalación automática por comandos de apks.



Creación automática del fichero log.txt donde quedan registradas las actividades y los posibles errores.



Añadida la posibilidad de indexar otros “framework-res” para soporte de Custom ROM y sus dependencias con librerías.

Modo de uso Antes de nada, voy a explicaros el uso que tienen las carpetas que nos encontramos dentro de la aplicación: 

other: aquí se encuentran los programas que ejecutan las diferentes opciones.



place-apk-here-for-modding: aquí colocamos las apks que queremos modificar.



place-apk-here-for-signing: aquí colocamos las apks que queremos firmar.



place-apk-here-for-optimize: aquí colocamos las apks que queremos optimizar sus pngs.



place-ogg-here: aquí colocamos los ogg que queremos optimizar.



projects: aquí se pondrán automáticamente las apks modificadas.



log.txt: archivo de texto que irá guardando los registros y errores de las actividades.



Script.bat: archivo por lotes encargado de ejecutar la aplicación

Lo primero que veremos cuando ejecutemos el archivo “Script.bat” es una pantalla donde se muestran las 24 opciones de que consta la aplicación y que paso a detallar a continuación: 

0 Adb pull: Esta opción extrae una apk de un zip para poder modificarla.



1 Extract apk: Esta opción descomprime una apk para poder editar, por ejemplo, sus png.



2 Optimize images inside: Mediante esta opción podremos reducir el peso notablemente de las imágenes png que hayamos modificado.



3 Zip apk: Opción mediante la cual monta una apk, tanto de sistema como normal.



4 Sign apk (Dont do this if its a system apk): Para poder instalar una apk ha de estar firmada, con esta opción hacemos esto mismo, validar su instalación.



5 Zipalign apk (Do once apk is created/signed): Esta opción mejora el uso de memoria utilizado por el terminal para ejecutar la apk.



6 Install apk (Dont do this if system apk, do adb push): Su uso es simplemente para instalar la apk en el terminal que se tenga conectado al PC.



7 Zip / Sign / Install apk (All in one step): Comprime, Firma e Instala una apk mediante una única opción seleccionada.



8 Adb push (Only for system apk): Gracias a esta opción podremos copiar una apk de sistema directamente en el terminal.



9 Decompile apk: Esta opción es la que nos posibilita ver todos los idiomas que contiene la apk para poder modificarlos, editarlos, eliminar o incluir uno deseado. Además hace visibles las marcas que tienen los *.9.png de modo que

podremos editarlas sin temor a modificar dichas marcas y que nos de error al compilar. 

10 Decompile apk (with dependencies) (For propietary rom apks): Con esta opción tendremos la posibilidad de decompilar las aplicaciones propias de la compañía (por ejemplo HTC) que tienen dependencias con otras apk.



11 Compile apk: Esta opción la usaremos para volver a montar la apk correctamente y no tener problemas con las imágenes *.9.png



12 Sign apk: Gracias a esta opción firmaremos las apk que queramos instalar en nuestro terminal.



13 Install apk: Esta opción instalará nuestra apk seleccionada en el terminal que tengamos conectado al PC.



14 Compile apk / Sign apk / Install apk (Non System Apps Only): Compila, Firma e Instala una aplicación mediante una única opción seleccionada.



15 Batch Optimize Apk (inside place-apk-here-to-batch-optimize only): Esta opción Optimiza la memoria (zipalign), las imágenes o ambas de todas las apks que hayamos puesto la carpeta correspondiente.



16 Sign an apk(Batch support)(inside place-apk-here-for-signing folder only): Mediante esta opción podremos firmar todas las apk que tengamos metidas en la carpeta correspondiente.



17 Batch optimize ogg files (inside place-ogg-here only): Con esta opción podremos optimizar los archivos de audio con formato ogg



18 Clean Files/Folders: Esta opción nos permitirá borrar el contenido de cada una de las carpetas del programa (o todas) para tener limpio el programa para una nueva edición.



19 Select compression level for apk’s: Mediante esta opción seleccionaremos el nivel de compresión de las apk para aligerar el peso total de un zip o simplemente de la apk que queremos.



20 Set Max Memory Size (Only use if getting stuck at decompiling/compiling): Esta opción nos permite seleccionar el tamaño de memoria que la aplicación usará para decompilar una apk. Usar solo si el programa no decompila/compila. El valor ideal para ello se recomienda que sea un valor de 512.



21 Read Log: Esta opción nos muestra el registro que se ha ido generando y grabando en este fichero. Es una muy buena herramienta para corregir errores ya que nos indica exactamente que es lo que ha fallado.



22 Set current project: Esta opción nos mostará las apks que tenemos en la carpeta “place-apk-here-for-modding” para seleccionar cual queremos editar.



23 About / Tips / Debug Section: Opción que nos muestra información extra a tener en cuenta para el uso del programa.



24 Quit: Sirve para salir de la aplicación

Compila y descompila aplicaciones con ApkTool (Windows) Bien hoy les explicare como se usa apktool, para descompilar y compilar aplicaciones en windows. En el foro hay otro tutorial para compilar y descompilar, pero con ApkManager no con ApkTool. Yo coloque este, porque algunas aplicaciones no van con ApkManager y si con este, y viceversa.

Archivos necesarios: 

Android JDK: Descargar aquí!!



ApkTool: Descargar aquí!!



framework-res.apk: lo sacamos de la ROM



twframework-res.apk (en caso de tener un Samsung): lo sacamos de la ROM



Archivos para firmar: los he subido yo, lo pueden descargar aquí!!!



Paciencia jaja

Aclaraciones: - Cuando descarguen el jdk, deben indicar para que sistema operativo es, ademas si es para 32bits o 64bits. - Cuando vallan a descargar el apktool, necesitan descargar dos archivos, el apktool propiamente dicho (actualmente es este: apktool1.5.2.tar.bz2) y las dependencias para windows (actualmente es este: apktool-install-windows-r05-ibot.tar.bz2).

Instalación de los archivos: ~ Ya una vez descargado e instalado el jdk, procedemos a descargar el apktool.. son dos archivos por descargar, los cuales encontramos 2 dentro de un .tar.gz y 1 dentro del otro .tar.gz, lo que tenemos que hacer es crear una carpeta llamada "apktool" (por ejemplo, yo la creo en C:\sdk/apktool ya que uso la sdk de android). Y descomprimimos los dos .tar.gz con cualquier compresor de archivos, dentro de esta otra carpeta. ~ La firma la podemos descomprimir y copiar los archivos junto con el apktool o en una carpeta aparte, como quieran.

~ Si ya tenemos todo lo anterior, entonces podemos seguir.

Como utilizar ApkTool: Descompilar APK: ~ Estos pasos son importantes, debes copiar las siguientes apks que estan en estas rutas:



framework-res.apk -> /system/framework/



apk a descompilar (Por lo general esta aquí) /system/app, pero cualquiera vale.



Si tienes un samsung tambien necesitaras twframework-res.apk que esta en /system/framework

~ Presionamos la tecla Windows o simple vamos a Inicio y escribimos:

Código: cmd Y le damos enter. Esto nos abrira una consola como esta:

Haz click aquí para ver la imagen a tamaño completo ~ Ya ahora tenemos que acceder a la carpeta donde esta el ApkTool, asi:

Código: cd C:\sdk/apktool

Haz click aquí para ver la imagen a tamaño completo ~ Ahora el codigo para descompilar: ~ Primero necesitamos instalar el framework-res.apk, así:

Código: apktool if framework-res.apk En caso de tener Samsung, abre el "spoiler": Spoiler : Código: apktool d nombre_de_la_aplicacion.apk Cosas a tener en cuenta con este codigo: 

La aplicacion no puede contener espacios en su nombre



si por error se olvidan del poner el ".apk" les saldra error

~ Ya esto nos creara una carpeta con el mismo nombre de la apk en el mismo directorio, en el caso del codigo anterior, me creara dentro de la carpeta apktool una carpeta con el nombre de nombre_de_la_aplicacion. Bien, dentro encontraran todas las carpetas de la apk, quizás en otro tutorial, expliquemos que función cumple cada una de ellas.

Compilar APK:

El proceso de compilado es mas corto, así que relájate XD ~ Ya supongo que has modificado todo lo que necesitabas, bien ahora es momento de compilar: ~ Colocamos este codigo:

Código: apktool b nombre_de_la_aplicacion Cosas a tener en cuenta con este codigo: 

El nombre es el nombre de la carpeta que nos creo al descompilarla



Si por error ponen la extension ".apk" les saldra error, la carpeta no tiene extensión, no deben ponerle.

Bien, cuando ya compile y revisando de no tener errores, entonces encontraremos la aplicación compilada dentro de: nombre_de_la_aplicacion/dist y dentro de nombre_de_la_aplicacion/build encontraran la apk pero sin empaquetarse como .apk, o sea, es lo mismo que contiene la apk pero "desempaquetado". Hablando mal y pronto seria como abrir la apk con "winrar" o algún otro compresor y darle a extraer. Bien, ya tenemos la apk, descompilada, modificada y compilada. Ahora tenemos que firmarlas, para esto hay varios metodos, explicare uno de ellos.

Firmar el apk: Suponiendo que copiaron los archivos de la firma en la misma carpeta del apktool entonces para firmar necesitamos hacer esto: Vamos a la carpeta que nos creo el apktool al descompilar la aplicación, por ejemplo si es Settings.apk vamos a la carpeta Settings, luego a dist y aquí encontraremos el apk editado pero sin firmar, lo copiamos y volvemos a la carpeta apktool y lo pegamos. Ahora si, volvemos a la consola y cargamos el siguiente código: Código: java -jar SignApk.jar testkey.x509.pem testkey.pk8 aplicacion.apk signed_aplicacion.apk

Este codigo nos toma la aplicacion.apk (sin firmar), la firma y la guarda con el nombre de signed_aplicacion.apk en la misma ruta. Eso es todo, ya tendremos la aplicación para poder instalar en nuestro terminal pero si se quiere mejor rendimiento entonces seguir con el paso siguiente.

ZipAlign apk: Esto es para optimizar el funcionamiento de la aplicación, siempre es recomendable hacerlo, aumenta el rendimiento de la aplicación evitando consumir mas RAM o recursos del sistema. Si tienen instalado el SDK de android pueden encontrarlo en sdk/tools/ si no lo tienen instalado aquí les dejo el archivo necesario para llevar a cabo el zipalign: Descargar aquí!! Descompriman la carpeta y si quieren pueden copiarlo dentro de la carpeta apktool también, así tenemos todo en un mismo lugar. Para aplicar el zipalign solo basta con colocar este código: Código: zipalign -v 4 signed_aplicacion.apk zipalign_aplicacion.apk Es decir: signed_aplicacion.apk es la apk firmada. zipalign_aplicacion.apk es el nombre que le daremos a la aplicación definitiva. Bien si nos dice Verification Succesful quiere decir que salio todo bien. Ahora para comprobarlo lo hacemos con este código: Código: zipalign -c -v 4 zipalign_aplicacion.apk Bien si nos dice Verification Succesful quiere decir que salio todo bien. Ahora si, tenemos nuestra aplicación, editada, compilada, firmada y con zipalign. Ya esta completa.

Hola amigos este es mi primer post,espero que les guste y se aceptan criticas constructivas Bueno ahora con todo esto de compilar, decompilar,firmar en el mundo de android, en algunos casos se tornaba dificil entonces queria traerles un pequeño tutorial sobre la compilacion y decompilacion de aplicaciones de android(apk´s) en realidad es algo muy sencillo y estas son las herramientas que necesitamos. Herramientas 1) Una computadora 2) El JDK de java 3) Apktool (adjunto zip) 4) El framework-res.apk de la room que queramos editar sus apps 5) 7-zip Empecemos! primero debemos extraer el zip en una carpeta de preferencia en mi caso yo utilizare C:/android/apktool

Una vez extraido en la carpeta escogida presionamos shif+click derecho y nos aparecera una opcion llamada "abrir ventana de comandos aqui"

luego prodeceremos a instalar el framework-res.apk de nuestra room, para eso escribimos en la ventana de comandos apktool if framework-res.apk

y nos saldra esto

Nota: si tenemos una room sense(dispositivos HTC) o una touchwiz(dispositivos Samsung) debemos instalar su framework personalizado para eso escribimos en la ventana lo siguiente(despues de haber instalado el framework-res.apk) HTC apktool if com.htc.resources.apk

y nos saldra un texto parecido al anterior Framework installed to: C:/Users/Vega/apktool/framework/2.apk

Samsung apktool if twframework-res.apk

y nos saldra un texto parecido al anterior Framework installed to: C:/Users/Vega/apktool/framework/2.apk

listo ahora a decompilar! para eso escribimos apktool d NombreDelaApp.apk

y nos creara una carpeta, cuando terminemos de editar lo que queramos debemos compilarla y para eso escribimos en la ventana de comandos apktool b NombreDelaApp NombreDelaApp-new.apk

listo ya tenemos nuestra apk, si por alguna razon tuvimos algun error mientras la editamos(la app), ya sea un error en los XML´s o cualquier otro la herramienta nos dira y nos mostrara donde esta situado el error. por ejemplo digamos que me equivoque colocando un "Id" en el public.xml entonces me aparecera esto

me dice que tengo un error en C:/android/apktool/identi/res/values/public.xml:5698: error: Given 'id' attribute is not an integer: 0037c

eso se traduce a que dentro de la carpeta "res" en la carpeta "values" el archivo "public.xml" en la linea 5698 tiene un error. no se le asigno un "id" correcto. ya compilado correctamente nuestra apk la renombraremos y vamos a firmarla porque si no la app no funcionaria correctamente, para eso necesitaremos nuestra app original. con el 7-zip abrimos nuestra apk original y arrastraremos la carpeta "Meta-inf" a la apk editada

y listo ya tenemos lista nuestra apk. - See more at: http://www.identi.li/index.php? topic=208895#sthash.uIfm8kto.dpuf