[TUTORIAL] Descompilar - Modificar - Recompilar una APK

hammy

Diamante
Diamante en bruto
Mensajes
1.515
Puntos
2.283
Móvil
HD7+
Vamos a explicar de forma sencilla como modificar una aplicación de android en Windows y no morir en el intento. @telo, que ya hace mucho que no aparece por aquí dejó esto mismo escrito en un hilo que cayó en el olvido, de forma mas escueta. Yo os lo detallo un poco más. Gracias a @breakk que me recomendó este tema para descompilar aplicaciones. De esta única forma he podido hacer todo el proceso sin que las aplicaciones den error en algún momento.

Modificar .png's es muy sencillo y solo es sustituir unos por otros en al .apk directamente. Sin embargo, modificar un .xml entraña un mayor trabajo, pues los .xml vienen compilados en la .apk y si intentamos extraerlos y abrirlos sin más nos encontraremos con una sucesión de caracteres que es imposible de leer. Por ello necesitamos "traducir" ese lenguaje codificado. Y para ello necesitamos "descompilar" la aplicación correspondiente. En concreto solo lo vamos a hacer con aplicaciones de sistema, que no necesitan ser firmadas despues de recompilar. Además solo para el caso de que las aplicaciones no dependan de otras apks, como el caso de algunas aplicaciones de htc con sense.

Vamos a necesitar:
- Aplicación "APK Manager 5.0.2". La podemos descargar de aqui.
- Editor de texto "Notepad++". Lo obtenemos aqui.


Una vez que se tiene el apkmanager podremos observar lo que contiene.

other -> son dependencias, librerias... el núcleo de la aplicación.
place-apk-here-for-modding -> aqui van los .apk que queremos decompilar para modificarlos.
place-apk-here-for-signing -> aqui van los .apk que queremos firmar, solo en aplicaciones que no sean del sistema, las de sistema no se firman.
projects -> aqui se crea el .apk decompilado que esta en place-apk-here-for-modding
Script.bat -> interfaz visual del programa.


Los pasos a seguir serían los siguientes:

Primero:
Copiamos el archivo .apk correspondiente a la carpeta "place-apk-here-for-moding".

Segundo:
Hacemos doble click en "Script.bat" y se nos abrirá una ventana de símbolo de sistema con el menu principal de la aplicacion.

Tercero:
Escribir 22 y pulsamos enter, ahí nos saldra la lista de .apks de la carpeta place-apk-here-for-modding, elegimos la que queramos con numeros.

Cuarto:
Elegimos la opción 9 (Descompilar).

Quinto:
Cuando se descompile, vamos a la carpeta "projects" y a la carpeta de la .apk descompilada, y vamos abriendo y modificando con Notepad++ los .xml necesarios.

Sexto:
Una vez modificado todo, regresamos al Símbolo del Sistema, elegimos la opcion 11 (Compilar). Si lo que tocamos lo hicimos bien, nos preguntara si es una aplicacion del sistema. Escribimos "y" y pulsamos enter. Luego nos preguntara si queremos hacer una carpeta temporal con los archivos originales. Le decimos que si ("y") y comenzara a descomprimir los archivos originales en la carpeta "keep" que creara solo el programa, llegara un momento que te pedira que pulses un boton para continuar. NO PULSAMOS NADA!

Septimo:
Vamos a la carpeta "keep" y eliminamos todo lo que hemos modificado.

* Si hemos modificado traducciones o la carpeta "values" borramos el resources.arsc.
* Si modificamos imagenes o xml simples pues borramos la carpeta entera donde se encuentre la imagen o el .xml modificado. Por ejemplo si modificamos los porcentajes de la bateria pues borramos la carpeta drawable entera

Octavo:
Volvemos a la interfaz grafica y ahora si pulsamos enter. Ahora esperamos que termine y vamos a la carpeta "place-apk-here-for-modding" hay tendremos la aplicacion recreada con el nombre unsignedaplicacion.apk. Si es aplicacion del sistema simplemente la renombramos (le quitamos el unsigned).

Si no fuera aplicacion del sistema la tendriamos que firmar.


Y esto es todo, si no hemos metido la pata en algún .xml todo habrá salido correctamente. Metemos la apk en un parche y flasheamos desde recovery.


Saludos, hammy.
 
Última edición por un moderador:
@hammy, muy buen tutorial.

Te has adelantado. Tenia pensado hacerlo, despues de la indirecta de los amigos @samarkanda y @eduardomo, je,je,je.

Lo cierto es que ando muy liado, entre ordenar el foro de marcas, la rom puzzle, las tareas de casa, mi madre..........uffff no doy abasto.

Venga saludos y lo dicho, muy buen trabajo.
 
Última edición por un moderador:
Hola @hammy,
Primero de todo, gracias por este tutorial.
Estoy traduciendo una ROM para un teléfono Lenovo S890, será la primera que haga, ya que después voy a hacer las mismas traducciones a todo el sistema para el modelo K860i. Tengo traducidas casi todas las aplicaciones del sistema, pero quiero probarlas de una en una. Ahora mismo me gustaría comenzar por settings.apk. ¿Podrías explicar el proceso de parchear y flashear desde el Recovery?, ¿es necesario realizar un script que elimine la aplicación antigua e instale la ya traducida para que Recovery lo ejecute?
Ejemplo: delete SYSTEM:app/Settings.apk (dentro del archivo update-script)

Un saludo de antemano.

Huanhuan.
 
Última edición:
Hola muy buenas tardes estimados,
La herramienta apk manager es excelente, sin embargo no logro encontrar la pagina web del autor por mayor informacion
Si es posible alguno de ustedes puede decirme la licencia de esta herramienta para utilizarla en una empresa
gracia a todos
 

Del blog

Es tendencia

¿Ha terminado la locura de añadir tantas cámaras a los móviles?

  • Si

  • No

  • No lo se

  • Ya me gustaría...

  • Ya te gustaría...


Los resultados solo son visibles tras votar.
Atrás
Arriba