PDA

Ver la Versión Completa : KITCHEN ROM ¿Como se utiliza Apktool, Apk Manager y demas?, el JAVA me tiene loco...


ErManu86
22/01/15, 18:53:37
Buenas!

Pues he visto que el mod Battery 3 Minit es compatible con Lollipop, es una app que se instala y seguido, tienes que descompilar el SystemUI, añadir unas lineas y volver a compilar...

Aqui para interesados:

http://forum.xda-developers.com/showthread.php?t=2799958

Bien, a mucho leer tutoriales, configurar y configurar, tengo instintos asesinos hacia el creador de JAVA o a los chicos del APK Tool y cia...

Hay que tener JAVA instalado, existen el JRE y el JDK, yo creo que se instalan los dos juntos, en la carpeta aparecen los dos en Archivos de programa... en fin y existen la version 7 y 8 del JDK y en versiones x64 y x86...

Una vez instalado, hay que configurar las PATH...

Segui este tutorial y muchos mas:

http://www.aprenderaprogramar.com/index.php?option=com_content&id=389:configurar-java-en-windows-variables-de-entorno-javahome-y-path-cu00610b&Itemid=188

Voi a la MS-DOS y escribo java -version y me confirma que esta ahi... que lo he hecho "supuestamente" bien...

Ahora vamos a por la herramienta APKTool o APK Manager...

Consisten practicamente en lo mismo, un script que abre una MS-DOS con letras verdes e instrucciones faciles de seguir, meter el .apk en la carpeta apk a modificar y teclear 21 que es la opcion de descompilar y eeeeeeeeeeeerrrrroooooooorrrrrrrrrrrr:ok:X-D

Clearing Projects\SystemUI.apk . . . DONE!

I: Using Apktool 2.0.0-Beta9 on SystemUI.apk
I: Loading resource table...
Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCD ecoder.java:54)
at brut.androlib.res.AndrolibResources.getResPackages FromApk(AndrolibResources.java:604)
at brut.androlib.res.AndrolibResources.loadMainPkg(An drolibResources.java:74)
at brut.androlib.res.AndrolibResources.getResTable(An drolibResources.java:66)
at brut.androlib.Androlib.getResTable(Androlib.java:4 9)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:93 )
at brut.apktool.Main.cmdDecode(Main.java:169)
at brut.apktool.Main.main(Main.java:85)
Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000
at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.j ava:48)
at brut.androlib.res.decoder.StringBlock.read(StringB lock.java:43)
at brut.androlib.res.decoder.ARSCDecoder.readPackage( ARSCDecoder.java:95)
at brut.androlib.res.decoder.ARSCDecoder.readTable(AR SCDecoder.java:81)
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCD ecoder.java:49)
... 7 more

Esa serie de fallos son las que me indica... soy el "chico bruto de la exepcion":sisi1: por tomarmelo a risa, porque llevo toda la tarde liado y nada... solo una vez en mi vida consegui hacerlo funcionar hace un año para probar unas cosas, pero ahora no tengo narices... ni en uno, ni en otro... en todos leo el mismo fallo... y me gustaria aprender a preparar este script para hacer cosillas... gracias de antemano!

Ah, lo olvidaba, tambien instale el Android SDK ese que se lleva media vida instalandose, obviamente puse las de 5.0.1...

kurikueri
23/01/15, 00:10:33
Yo soy usuario de Linux así que a ver si no te confundo más. Creo que los pasos serían los siguientes:

1- Instalar solo el JRE (no es necesario el JDK, ya que solo vamos a ejecutar una aplicación .jar).

2- Crear una carpeta en el escritorio o donde sea, desde la que vamos a trabajar (por. ejem: pruebas)

2- Descargar el apktool desde https://bitbucket.org/iBotPeaches/apktool/downloads y guardarlo en la carpeta pruebas. Para poder trabajar comodamente con este archivo .jar es mejor renombarlo y llamarlo simplemente como apktool.jar.

3- Colocamos en la carpeta pruebas el fichero .apk que queremos modificar, por. ej. systemui.apk

4- Abrimos una ventana de comandos (el MS-DOS) y nos vamos a la carpeta pruebas. (cd Desktop/pruebas).

A partir de aquí espero que la cosa funcione más o menos igual que en linux...

5- Descompilamos con el comando
java -jar apktool.jar d systemui.apk

Esto nos debería crear una carpeta con el nombre systemui y descompilar la aplicación systemui.apk en su interior.

6- Después es cuestión de modificar lo que sea neceario para dejarlo como nos interese.

7- Para volver a compilar se ejecuta el comando siguiente (desde la carpeta pruebas)
java -jar apktool.jar b systemui

Esto si no falla, creará dentro de la carpeta systemui una carpeta llamada build. Ahora sin cerrar la ventana de comandos, nos vamos al explorador de archivos del windows y tenemos que copiar dentro de la carpeta build, el archivo "AndroidManifiest.xml" original que venía con la aplicacion, debería estar dentro de systemui\original, también tenemos que copiar la carpeta META-INF original dentro de systemui/build. Todo esto es para dejar la nueva aplicación firmada correctamente.

8- Una vez hecho lo anterior, nos metemos otra vez en la ventana de comandos y nos colocamos en la carpeta pruebas, y ejecutamos de nuevo el comando
java -jar apktool.jar b systemui

Con lo cual nos debería crear dentro de la carpeta systemui la carpeta dist. Dentro encontraremos la nueva aplicación systemui.apk firmada.

Espero que te funcione, ya contarás. Yo no puedo probarlo en Windows ahora, pero bajo Linux más o menos sería así de simple. A ver si mañana lo pruebo en Windows y te confirmo.

EDITO: Se me olvidaba, una vez instalado el JRE, seguramente tengas que reiniciar el ordenador. Cosas de windows.

fatiko85
23/01/15, 00:28:38
aviso que yo descompilé y volví a compilar para modificar la navbar. Todo salió a la perfección hasta que arranqué el nexus y...bootloop!
No digo que te pase a ti pero prepárate si o si xD xD

kurikueri
23/01/15, 00:41:07
aviso que yo descompilé y volví a compilar para modificar la navbar. Todo salió a la perfección hasta que arranqué el nexus y...bootloop!
No digo que te pase a ti pero prepárate si o si xD xD

Eso puede pasar por copiar a pelo el framework-res.apk en la carpeta system/framework, directamente desde el propio teléfono. No se si es tu caso.

Yo si lo hago así el teléfono se reinicia y se queda en bootloop. Lo correcto es crear un zip flasheable e instalarlo desde el recovery.

Me olvidaba que precisamente hoy yo también modifique la navbar y la puse a 36 dip. Puse el zip para flashear desde recovery en el hilo de CM12.
http://www.htcmania.com/showthread.php?p=17087200#post17087200

ErManu86
23/01/15, 02:17:26
Gracias por la explicacion de los pasos!, mañana lo intentare mas tranquilito, es una movida valla:oh:

Respecto a los bootloops, claro... si trasteas, te manchas:sisi1: yo para lo que quiero esto es por ejemplo, para instalar el mod 3Minit que te deja cambiar el icono de bateria por cientos de ellos online, es una verdadera pasada y me gustaria aprender claro... y modificar cosillas del SystemUI...

fatiko85
23/01/15, 16:23:13
Eso puede pasar por copiar a pelo el framework-res.apk en la carpeta system/framework, directamente desde el propio teléfono. No se si es tu caso.

Yo si lo hago así el teléfono se reinicia y se queda en bootloop. Lo correcto es crear un zip flasheable e instalarlo desde el recovery.

Me olvidaba que precisamente hoy yo también modifique la navbar y la puse a 36 dip. Puse el zip para flashear desde recovery en el hilo de CM12.
http://www.htcmania.com/showthread.php?p=17087200#post17087200
Pues supuse eso pero no lo sabia seguro. No tenía claro como hacer un flasheable jeje.

ErManu86
23/01/15, 17:17:43
El SystemUI si puedes ponerlo a pelo, le pones los permisos que en Lollipop son:

***
***
* *

Y listo, el Framework es mucho mas delicado...

Pd: con mas tiempo tengo que probar de nuevo todo esto, hoy no voy a poder...

kurikueri
23/01/15, 19:47:47
Pues supuse eso pero no lo sabia seguro. No tenía claro como hacer un flasheable jeje.

El framework-res.apk no se puede borrar ni sustituir con el movil encendido o simplemente se morirá. Lo más cómodo, sobre todo de cara a distribuirlo, es crear un zip y flashearlo desde el recovery, pero no es el único modo.

También se puede introducir el fichero framework-res.apk sin necesidad de flashear, arrancando el teléfono en modo fastboot, conectarlo al ordenador y después usando la herramienta ADB, introducirlo con el comando:

adb push framework-res.apk /system/framework

fatiko85
23/01/15, 20:24:05
El framework-res.apk no se puede borrar ni sustituir con el movil encendido o simplemente se morirá. Lo más cómodo, sobre todo de cara a distribuirlo, es crear un zip y flashearlo desde el recovery, pero no es el único modo.

También se puede introducir el fichero framework-res.apk sin necesidad de flashear, arrancando el teléfono en modo fastboot, conectarlo al ordenador y después usando la herramienta ADB, introducirlo con el comando:

adb push framework-res.apk /system/framework
Gracias ahora no se que hacer si intentarlo o bootloop otra vez jaja. El problema no es que me haga bootloop. El problema es salir de este. No se a vosotros pero no hay manera, me tiré como 30 minutos dándole a todasas teclas para que me arrancara en modo fastboot y restaurar una copia de la ROM. Por ADB no me reconocía los drivers (Nexus root toolkit)

kurikueri
23/01/15, 20:28:59
Gracias ahora no se que hacer si intentarlo o bootloop otra vez jaja. El problema no es que me haga bootloop. El problema es salir de este. No se a vosotros pero no hay manera, me tiré como 30 minutos dándole a todasas teclas para que me arrancara en modo fastboot y restaurar una copia de la ROM. Por ADB no me reconocía los drivers (Nexus root toolkit)
Para salir del bootloop mantener pulsada la tecla de encendido hasta que se apague, inmediatamente después pulsar y mantener pulsado volumen menos y entrara en modo fastboot.

ErManu86
03/02/15, 01:53:09
Para salir del bootloop mantener pulsada la tecla de encendido hasta que se apague, inmediatamente después pulsar y mantener pulsado volumen menos y entrara en modo fastboot.

Peticion para kurikeri:

Solo si quieres y puedes... ¿podrias descompilar el SystemUI de la CyanogenMod 11 Snapshot M11 y meter el mod 3Minit Battery?

http://forum.xda-developers.com/showthread.php?t=2799958

Es sencillo para quien sepa compilar, solo es cambiar una linea como dice en el tutorial, meter 3 archivos smali en una ruta y volver a compilarlo, se instala una app y puedes cambiar el icono de bateria por casi 1000 estilos, lo tengo funcionando en una CM11 Snapshot M8 y tiene unos iconos chulisimos, ademas los puedes redimensionar y todo...

De CyanogenMod 11 merece la pena hacerselo a la ultima Snapshot M11 porque es la ultima y seria un trabajo ya cerrado, porque hacerselo a la ultima nighty de CM11... no se... y tambien sirve para CM12, pero ahi si estan saliendo Nighties a diario, es mas jodido... si fuesen estables semanales... yo si haces la de la 11 me conformo!!, gracias de antemano, si no puedes, no problem:lengua:

kurikueri
03/02/15, 09:14:16
Peticion para kurikeri:

Solo si quieres y puedes... ¿podrias descompilar el SystemUI de la CyanogenMod 11 Snapshot M11 y meter el mod 3Minit Battery?

http://forum.xda-developers.com/showthread.php?t=2799958

Es sencillo para quien sepa compilar, solo es cambiar una linea como dice en el tutorial, meter 3 archivos smali en una ruta y volver a compilarlo, se instala una app y puedes cambiar el icono de bateria por casi 1000 estilos, lo tengo funcionando en una CM11 Snapshot M8 y tiene unos iconos chulisimos, ademas los puedes redimensionar y todo...

De CyanogenMod 11 merece la pena hacerselo a la ultima Snapshot M11 porque es la ultima y seria un trabajo ya cerrado, porque hacerselo a la ultima nighty de CM11... no se... y tambien sirve para CM12, pero ahi si estan saliendo Nighties a diario, es mas jodido... si fuesen estables semanales... yo si haces la de la 11 me conformo!!, gracias de antemano, si no puedes, no problem:lengua:

Por supuesto. Acabo de echarle un vistazo por encima al enlace de xda y tiene buena pinta. Ya estoy descargando la M11, sin embargo no cuentes que lo haga muy rápido, esta semana la tengo muy complicada de trabajo y apenas podré hacer nada.

Si no es antes, el sábado me pongo a ello.

ErManu86
03/02/15, 11:43:56
Sin prisas!, yo no tengo paciencia, ni narices de hacer estas cosas, error y demas apelativos son mis palabras mas leidas:sisi1: esta semana ando de formateo de PC, a ver si lo dejo mas fino y logro algo!, gracias de nuevo!, yo estoy usandolo en la M8, que algun usuario lo compiló y compartió y esta genial la verdad...