martes, 11 de febrero de 2014

Como decompilar un APK del market y ver su contenido

Buenas amigos!! Después de un tiempo con mil lios vengo a contaros una cosa que he aprendido y que me está viniendo genial para mejorar como programador Android. Cuantas veces usando una aplicación en Android habéis dicho: ostras que bien que está esto hecho, como me molaría saber como han programado esta parte, joder que calidad que tiene esta aplicación.
Pues bien, os voy a enseñar a bajaros un .apk del market y ver su contenido ;-). Si, como lo oyes, puedes bajarte un .apk del market y decompilar una aplicación para explorar sus clases, sus layouts, etc. y os voy a enseñar como hacerlo. 
Lo primero es bajarse en tu terminal la aplicación que quieres decompilar. Necesitas tenerla instalada para poder sacar el .apk. Bueno pues una vez que te bajas la aplicación que quieres decompilar tienes que instalarte el APK Extractor del siguiente enlace (aquí). Esta aplicación te permite extraer el .apk de cualquier aplicación que tengas instalado en tu terminal tal y como os muestro en la imagen siguiente:



Una vez que el APK Extractor te ha sacado el .apk de la aplicación que quieres estudiar a la SD de tu terminal tienes que mandártela a tu PC, bien por correo, pinchando el teléfono o como te apetezca. 
Ahora entra en juego el programa dex2jar. Lo puedes bajar del siguiente enlace (aquí). Este programa va a generar un .jar que luego puedes descomprimir y explorar a partir del fichero .apk. Para ello llevamos el .apk a la carpeta donde tengamos el dex2jar y desde un cmd tecleamos:
dex2jar.bat <fichero .apk>

Veremos entonces que se nos ha creado un fichero con el mismo nombre que el apk anterior que tenemos pero al que se le añade *dex2jar.jar. Este fichero ya podemos descomprimirlo con winrar, winzip o similares. Una vez descomprimido, veremos que tenemos varias carpetas con un montón de clases compiladas de las que no podemos saber nada a no ser que usemos jd-gui que podéis descargar de este enlace (aquí). Este programa se va a encargar de decompilar las clases y nos va a hacer algo como lo que os muestro a continuación:
Ya podéis echar un vistazo a las clases que forman el programa en cuestión y ver como está implementado eso que tanto os fascina. 
Espero que os sirva, y si es así, que no os tiemble la mano al compartir!!

PD: he conseguido hacer esto gracias a esta entrada de uno de los mejores blogs de la blogosfera: http://www.elladodelmal.com/


1 comentario :

  1. no puedo hacerlo por que cuando hago el cmd y aplico el comando me sale" dex2jar no se reconoce un como comando externo o interno.programa o archivo por lotes ejecutable."lo he intentado en dos pc con w7 y con uno con ubuntu y siempre lo mismo,la carpeta la he descomprimido en la raiz o sea que la detecta pero no funciona,me podriais ayudar gracias

    ResponderEliminar