Cómo utilizar apkTool en Ice Cream Sandwitch
Los cocineros de ROMs, o aquellos que alguna vez se han visto en la necesidad de decompilar una aplicación Android para modificar alguno de sus componentes, seguramente sabrán para qué sirve y cómo se utiliza la aplicación apkTool.
El proyecto apkTool, iniciado por Brut.all, desarrollador reconocido del foro XDA-Developers, y conocido entre otros temas por ser el desarrollador de un hack que permitía obtener instrucciones de voz en Google Maps cuando éstas no eran soportadas oficialmente por la empresa californiana en muchos lugares, permite la decompilación y recompilación de aplicaciones Android, lo que permite no sólo modificar los iconos y layouts (distribución de los elementos de las pantallas) sino también el código fuente de las mismas.
No obstante, esta aplicación, que había funcionado más que correctamente hasta hasta Gingerbread, ocasiona algunos quebraderos de cabeza cuando se utiliza sobre Andorid 4 ICS (Ice Cream Sandwitch), produciendo errores al tratar de decompilar o recompilar determinadas aplicaciones.

Consciente de este problema, el usuario evol4g, miembro senior del foro de desarrollo, ha publicado una guía que parece desterrar definitivamente estos problemas permitiendo, ahora sí, la modificación sencilla de aplicaciones para ICS.
Puedes encontrar el tutorial completo en XDA-Developers, pero el resumen del mismo es el siguiente:
- Descarga las aplicaciones necesarias (aquí encontrarás las versiones para Windows),
- Descomprime el archivo zip descargado en c:\apktools,
- Copia el fichero /system/framework/framework-res.apk de la ROM para la que quieres desarrollar en el mismo directorio,
- Instálala usando apktool.jar.1.4.2usando el siguiente comando
java -jar apktool.jar.1.4.2 if framework-res.apkSi la ROM incluye una capa de fabricante (Sense, Touchwiz, etc), deberás instalar los archivos complementarios, tales como /system/app/SystemUI.apk y/o /system/framework/twframework-res.apk.
Una vez instaladas las aplicaciones necesarias, es posible iniciar la tarea de decompilar, modificar y recompilar los diversos programas, para lo que deberás tener en cuenta que debe utilizarse siempre la versión 1.4.3 de apktool.jar, excepto en las raras ocasiones en que ésta falle, en las que deberás usar la versión 1.4.2 para aquella operación (normalmente la decompilación) que ocasione problemas.
Comando para decompilar
java -jar apktool.jar.1.4.x d nombre-app.apk
Comando para recompilar
java -jar apktool.jar.1.4.x b nombre-app
Comando para instalar archivos de recursos
java -jar apktool.jar.1.4.x if nombre-archivo-recursos.apk







En Android el framework–res.apk siempre está en /system/framework
A eso
app = framework, pequeño error
Cuando llegue a casa lo corrijo.
¡Gracias por avisar!
Estoy intentando hacer el proceso de decompilar ICS pero de una Rom de Htc.
Como lleva la capa de Sense, entiendo que debería de instalar tambien el archivo framework-htc-res.apk
a paretd el framework-res.apk y SystemUI.apk
Estos quedán instalados como 1.apk, 2.apk, 124.apk respectivamente en C:\Users\YO##\apktool\framework. Si esto es cierto, tengo todo lo necesario inatalado, ok???
Pues bien, mientras que la Versión de android sea 4.0.3 si me decompila y compila correctamente, si no, me dá fallos. Sobre todo al decompliar SystemUI.apk.
Ah!! Y una cosa que se me olvidaba….he podido decompilar 4.0.3 sin ningún problema con una app que se llama Apk Manager, pero no con apktool.
Es decir, utilizando esta app no decompilo ni 4.0.3 ni 4.0.4 por supuesto.
Mmmmm!! No me aclaro con esto, la verdad. Y el caso es que necesito decompilar estas apks para desarrollar una aplicacion en el PC, para Rom basadas en ICS de Htc.
Si me pudieras orientar en algo, o ves que me he equivocao en algo, por favor….estaría agradecido.
Mi SO es Windows 7 Pro, por si aclara algo más
Un saludo.
C:\Users\Wel>apktool d C:\SystemUI.apk C:\SystemUI
I: Baksmaling…
Exception in thread “main” java.lang.RuntimeException: bad magic value: 64 65 78
0a 30 33 35 00
at org.jf.dexlib.DexFile.(DexFile.java:377)
at org.jf.dexlib.DexFile.(DexFile.java:274)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:44)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:33)
at brut.androlib.Androlib.decodeSourcesSmali(Androlib.java:68)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:85)
at brut.apktool.Main.cmdDecode(Main.java:128)
at brut.apktool.Main.main(Main.java:65)
C:\Users\Wel>
Mira las respuestas 2, 3, 4 y 5 de este hilo: http://forum.xda-developers.com/showthread.php?t=1558171
Lo que pasa es que si sigues leyendo, en el post #8 dice que todavía le sigue yendo mal….
“too bad… stil got same error… I’m really confused….”
De todas formas, Muchas Gracias por la ayuda ofrecida, De Corazón!!
Si doy solución te lo comentaré, ok???
Un saludo.
Lo he conseguido, pero unos post más adelante, sobre el #14 #15….
La aplicacion de Wanam, si le quitas el clases.dex, ya la decompila y la compila con normalidad y fuera de errores. Esto el SystemUI….
El Framework, no lleva este archivo por lo cual no hay ningún problema y trabaja de gloría!!!
Muchas Gracias y un saludo.!!