PDA

Ver la Versión Completa : [ CONSULTA ] Decompilar-Compilar correctamente un .apk


CrashOverride93
21/05/13, 12:29:10
Nome daba cuenta pero resulta que al decompilar por ejemplo (framwork-res o SystemUI) con ayuda de linea de comandos en windows, me aparecian varios de mensajes de que a la hora de decompilar no lograba encontrar archivos con extención "png" y al parecer cuando volvía a compilar para cerrar el archivo apk, ya no estaban allí.
Es decir, que el archivo una vez decompilado y compilado nuevamente carecerá de archivos de los que antes tenía.

Hay alguna solución a eso?, tambien he intentado probar APK Manager (ultima version) y en éste ni siquiera puedo empezar la decompilación, no sé que estoy haciendo mal en éste.

A continuación unas capturas de la decompilacion del archivo SystemUI.apk:

http://www.htcmania.com/attachment.php?attachmentid=300696&stc=1&d=1369120043

CrashOverride93
21/05/13, 12:29:41
Aqui he encontrado algo de info acer del tema:
http://forum.xda-developers.com/showthread.php?t=816412

Podrían ayudarme...?

stifmaster
21/05/13, 13:12:15
Nome daba cuenta pero resulta que al decompilar por ejemplo (framwork-res o SystemUI) con ayuda de linea de comandos en windows, me aparecian varios de mensajes de que a la hora de decompilar no lograba encontrar archivos con extención "png" y al parecer cuando volvía a compilar para cerrar el archivo apk, ya no estaban allí.
Es decir, que el archivo una vez decompilado y compilado nuevamente carecerá de archivos de los que antes tenía.

Hay alguna solución a eso?, tambien he intentado probar APK Manager (ultima version) y en éste ni siquiera puedo empezar la decompilación, no sé que estoy haciendo mal en éste.

A continuación unas capturas de la decompilacion del archivo SystemUI.apk:

http://www.htcmania.com/attachment.php?attachmentid=300696&stc=1&d=1369120043

Ami m daba esos errores y muxos mas . . Ncesitams un tutorial cmpletisimo pa todo esto

CrashOverride93
21/05/13, 15:06:11
Si, estoy contigo. Es verdad...
Que tonto fuí al no fijarme en estos errores, voy a ver si encuentro la forma de hacerlo ahora mismo para luego solucionarlo y os comento a la brevedad.

pesp2020
21/05/13, 15:30:10
Exacto lo que pasa es que los archivos que contiene
tu apk que requieres descompilar están mal, es decir son simplemente
png renombradas a 9.png y pero sólo de nombre, el verdadero archivo debe ser
patcheado con el draw9patch.bat ubicado en C:\Program Files (x86)\Android\sdk\tools para fijar los márgenes de los pixeles.

Una imagen de con extensión .9.png es una imagen que de acuerdo a los márgenes
marcados con la herramienta mencionada puede "estirarse", por ejemplo
si mide de 1x1 y esta patcheado se puede hacer la imagen de 10x10 por así decirlo.

Un ejemplo que les puedo compartir es la barrita del brillo esa es de 1x1 y cuando
suben el brillo se expande.

Y el error que les marca es que en la descompilación el que anteriormente modificó el
apk únicamente pasó las png's sin patchearlas simplemente arrastrando con 7zip que es el que comúnmente se usa.
y como no encuentra que verdaderamente tienen la propiedad (la de expandirse/estirarse) de una
imagen .9.png las "renombra" a sólo png.

Que es el error que les marca:

Cant find 9patch chunk in file:"Nombre de la imagen".
Renaming it do *png.

Las patcheadas deben ser por lo mínimo 2px más grande por cada lado.

Les comparto unas capturas para que logren comprenderme mejor.

(Capturas propias y redacción propia)


1

http://db.tt/dUfs8yvT

2


http://db.tt/bDttay44

3


http://db.tt/Y90doUYB




Saludos :ok:

pesp2020
21/05/13, 15:37:28
Espero haberme explicado. :-)

CrashOverride93
21/05/13, 15:43:00
Ya he encontrado (creo, he???), la solución en cuanto a la re-compilación corrupa de los archivos que nos da error de busqueda al decompilar.
A continuación los pasos que he seguido (personalmente), hasta resolver el problema

--Decompilación--
Básicamente seguir los pasos del post (http://www.htcmania.com/showthread.php?t=566969).
Y aquí, cuando recien escribamos el comando (apktool d xxxxxxx.apk), es cuando veremos el momento en el que pueden o no aparecer los errores (es decir, aqui es donde los errores aparecerán, salvo que tengas suerte y el archivo que comiences a decompilar no produzca errores de lectura durante la decompilacion).

Entonces mi solución al rudimentaria, pero parece que efectiva al 100%100% es hacer lo siguiente:
Tomes como ejemplo la decompilacion del "SystemUI.apk", previamente con los archivos framwork-res/twframework-res cargados para poder leer los demás directorios y archivos.

Por lo menos a mí, cuando decompilo dicho archivo me aparecen los errores de busqueda de los archivos:
tw_quick_panel_off
tw_quick_panel_on
tw_quick_panel_list_bg_f
tw_quick_panel_list_bg_n
tw_quick_panel_list_bg
tw_quick_panel_notification_panel_divider_1
tw_quick_panel_notification_panel_bg
tw_quick_panel_quick_setting_button_bg_normal

El resto lo decompila sin problemas.
Pues bien, para solucionar esto lo que hice fue (bueno, despues de modificar lo que desee dentro del archivo, por ejemplo los .xml), pues volví a compilar (sin hacer cambios en los png erroneos, solo los .xml), y listo.
Luego abrir con ayuda del WinRAR u otro descompresor el SystemUI.apk original y por otra parte abrir en otra ventana el SystemUI.apk recien decompilado y compilado con las modificaciones .xml y los errores de busqueda y que por lo tanto se guardaron corruptos los PNGs.
Me situé en la ventana de SystemUI.apk (WinRAR) recien compilado y empezé a buscar y eliminar los archivos que hacía referencia en los resultados que me arrojó MS-DOS durante la decompilación. Después, una vez he borrado todos los archivos que no logró encontrar según linea de comandos y que se guardaron erroneamente (esto puedes comprobarlo con tan solo verificar el peso de los PNGs originales con los del SystemUI re-compilado), y seleccioné los mismos pero esta vez en el SystemUI.apk original y los arrastre de esta ventana del WinRAR a la otra del SystemUI compilado y los añadi y volvi a comprimir en modo normal el paquete SystemUI compilado. Y listo.

Con esto, quedó el archivo reparado.


Espero que se me haya entendido, ya que lo espliqué muy rápido y sin tener orden jajaja.

CrashOverride93
21/05/13, 15:46:26
Había leido hace un rato sobre tu tema parecido en otro sitio y había visto nombrar tambien las herramientas que mencionas para parchear las imagenes.
Pero desearía que me confirmaras si mi método es igual de efectivo, ya que lo he probado y me va perfectamente.

Espero haberme explicado. :-)

pesp2020
21/05/13, 15:49:48
Había leido hace un rato sobre tu tema parecido en otro sitio y había visto nombrar tambien las herramientas que mencionas para parchear las imagenes.
Pero desearía que me confirmaras si mi método es igual de efectivo, ya que lo he probado y me va perfectamente.

Pues no se aqué le llames efectividad.
Yo prefiero hacer las cosas bien, por eso
les expliqué a grandes rasgos el proceso
que se debe seguir.

Pero cada quién. Eso no cabe duda.

CrashOverride93
21/05/13, 15:57:44
A ok, pues no sé entonces...
Parece que con mi método tambien se arregla, asique cada quien (como dices tú), será quien decida como hacerlo.

Pero muchas gracias por compartirnos tus conocimientos acerca del tema!!!
Y podrias decirme donde conseguir esas herramientas que mencionas para parchear dichos archivos?


Pues no se aqué le llames efectividad.
Yo prefiero hacer las cosas bien, por eso
les expliqué a grandes rasgos el proceso
que se debe seguir.

Pero cada quién. Eso no cabe duda.

musgoya
21/05/13, 19:47:34
Un poco de luz en el tema, por si os ayuda.

http://forum.xda-developers.com/showthread.php?p=9526315
https://sites.google.com/site/androidbyyorzua/create-your-9-png
http://www.droidforums.net/forum/droid-faq/51442-how-edit-9-png-s.html
http://code.google.com/p/android-customization-autotool/

Saludos.

stifmaster
22/05/13, 01:27:51
Ya he encontrado (creo, he???), la solución en cuanto a la re-compilación corrupa de los archivos que nos da error de busqueda al decompilar.
A continuación los pasos que he seguido (personalmente), hasta resolver el problema

--Decompilación--
Básicamente seguir los pasos del post (http://www.htcmania.com/showthread.php?t=566969).
Y aquí, cuando recien escribamos el comando (apktool d xxxxxxx.apk), es cuando veremos el momento en el que pueden o no aparecer los errores (es decir, aqui es donde los errores aparecerán, salvo que tengas suerte y el archivo que comiences a decompilar no produzca errores de lectura durante la decompilacion).

Entonces mi solución al rudimentaria, pero parece que efectiva al 100%100% es hacer lo siguiente:
Tomes como ejemplo la decompilacion del "SystemUI.apk", previamente con los archivos framwork-res/twframework-res cargados para poder leer los demás directorios y archivos.

Por lo menos a mí, cuando decompilo dicho archivo me aparecen los errores de busqueda de los archivos:
tw_quick_panel_off
tw_quick_panel_on
tw_quick_panel_list_bg_f
tw_quick_panel_list_bg_n
tw_quick_panel_list_bg
tw_quick_panel_notification_panel_divider_1
tw_quick_panel_notification_panel_bg
tw_quick_panel_quick_setting_button_bg_normal

El resto lo decompila sin problemas.
Pues bien, para solucionar esto lo que hice fue (bueno, despues de modificar lo que desee dentro del archivo, por ejemplo los .xml), pues volví a compilar (sin hacer cambios en los png erroneos, solo los .xml), y listo.
Luego abrir con ayuda del WinRAR u otro descompresor el SystemUI.apk original y por otra parte abrir en otra ventana el SystemUI.apk recien decompilado y compilado con las modificaciones .xml y los errores de busqueda y que por lo tanto se guardaron corruptos los PNGs.
Me situé en la ventana de SystemUI.apk (WinRAR) recien compilado y empezé a buscar y eliminar los archivos que hacía referencia en los resultados que me arrojó MS-DOS durante la decompilación. Después, una vez he borrado todos los archivos que no logró encontrar según linea de comandos y que se guardaron erroneamente (esto puedes comprobarlo con tan solo verificar el peso de los PNGs originales con los del SystemUI re-compilado), y seleccioné los mismos pero esta vez en el SystemUI.apk original y los arrastre de esta ventana del WinRAR a la otra del SystemUI compilado y los añadi y volvi a comprimir en modo normal el paquete SystemUI compilado. Y listo.

Con esto, quedó el archivo reparado.


Espero que se me haya entendido, ya que lo espliqué muy rápido y sin tener orden jajaja.

Menudo lio pa dscmpilar y cmpilar . .

martinauta
22/05/13, 10:28:37
Para compilar y descompilar apks hay que tener cuidado con la versión del apktool y aapt.exe que se utilicen, lo mejor es utilizar siempre las últimas versiones. Hay buenos tutoriales para descompilar, compilar y tratar los archivos 9.png en la página de miui.es (aunque sean tutoriales para miui, también valen para el resto). Al principio puede parecer un poco complicado, pero hay que practicar...

CrashOverride93
24/05/13, 20:41:33
Si bueno, tw has esplicado pero te has saltado todo proceso de realizar la edicion!!!

Espero haberme explicado. :-)

pesp2020
24/05/13, 20:44:26
Si bueno, tw has esplicado pero te has saltado todo proceso de realizar la edicion!!!

¿También con exigencias? no me parece. buen viaje. :cucu:

Por cierto, ¿no que tu método era igual de efectivo? ¿Qué salió mal? :oh:

mi método es igual de efectivo, ya que lo he probado y me va perfectamente.

CrashOverride93
25/05/13, 09:21:08
Se te olvidó mencionar que hay que renombrar los iconos a modificar, eliminandoles el ".9" de su extención final para que te queden esos espacios exteriores libres.

Exacto lo que pasa es que los archivos que contiene
tu apk que requieres descompilar están mal, es decir son simplemente
png renombradas a 9.png y pero sólo de nombre, el verdadero archivo debe ser
patcheado con el draw9patch.bat ubicado en C:\Program Files (x86)\Android\sdk\tools para fijar los márgenes de los pixeles.

Una imagen de con extensión .9.png es una imagen que de acuerdo a los márgenes
marcados con la herramienta mencionada puede "estirarse", por ejemplo
si mide de 1x1 y esta patcheado se puede hacer la imagen de 10x10 por así decirlo.

Un ejemplo que les puedo compartir es la barrita del brillo esa es de 1x1 y cuando
suben el brillo se expande.

Y el error que les marca es que en la descompilación el que anteriormente modificó el
apk únicamente pasó las png's sin patchearlas simplemente arrastrando con 7zip que es el que comúnmente se usa.
y como no encuentra que verdaderamente tienen la propiedad (la de expandirse/estirarse) de una
imagen .9.png las "renombra" a sólo png.

Que es el error que les marca:

Cant find 9patch chunk in file:"Nombre de la imagen".
Renaming it do *png.

Las patcheadas deben ser por lo mínimo 2px más grande por cada lado.

Les comparto unas capturas para que logren comprenderme mejor.

(Capturas propias y redacción propia)


1

http://db.tt/dUfs8yvT

2


http://db.tt/bDttay44

3


http://db.tt/Y90doUYB




Saludos :ok:

pesp2020
25/05/13, 17:22:05
Si esto era para explicarles por que pasaba el error ya tengo todo para un tutorial de esto y otro de compilar y descompilar lo hare por vídeo

CrashOverride93
25/05/13, 17:33:26
Ok, muy bien. :gracias:

Si esto era para explicarles por que pasaba el error ya tengo todo para un tutorial de esto y otro de compilar y descompilar lo hare por vídeo