Foros del Web » Programando para Internet » Android »

Recuperar el código de una aplicación perdida desde una ya instalada en el teléfono

Estas en el tema de Recuperar el código de una aplicación perdida desde una ya instalada en el teléfono en el foro de Android en Foros del Web. Hola, Perdí el código de un proyecto y menos mal que tenía la última versión instalada en una tablet y lo pude recuperar, pongo los ...
  #1 (permalink)  
Antiguo 13/10/2012, 04:03
Avatar de javih  
Fecha de Ingreso: agosto-2011
Mensajes: 201
Antigüedad: 12 años, 8 meses
Puntos: 12
Recuperar el código de una aplicación perdida desde una ya instalada en el teléfono

Hola,

Perdí el código de un proyecto y menos mal que tenía la última versión instalada en una tablet y lo pude recuperar, pongo los pasos por si ha alguien le ocurre lo mismo. Es para un proyecto que no utilice ProGuard.

Herramientas

JAD - 'yum install jad' - Jad v1.5.8e.
dex2jar - http://code.google.com/p/dex2jar/ Ver. 0.0.9.9


Paso 1
Descargar la aplicación desde el dispositivo Android: adb pull /data/app/<nombre-del-package>

Paso 2
El anterior paso nos habrá creado un archivo comprimido en formato .zip, ahora creamos una carpeta para hacer las operaciones dentro de ella y copiamos ahí el archivo descargado.

Código:
# mkdir carpeta
# cd carpeta/
[carpeta/]# scp <ruta_archivo/nombre_archivo.zip> .
[carpeta/]# unzip nombre_archivo.zip

Paso 3
Ahora tenemos la estructura de un proyecto Android pero no está la carpeta /src/ con las clases, está todo en el archivo .dex. Para obtener los archivos .class utilizamos la herramienta dex2jar, la podemos descargar en la misma carpeta:

Código:
[carpeta/]#  unzip dex2jar-0.0.9.9.zip
[carpeta/]#  sh dex2jar-0.0.9.9/d2j-dex2jar.sh  classes.dex
Esto genera un archivo .jar nombrado así "classes-dex2jar.jar" para descomprimirlo podemos usar este comando:

Código:
unzip -d classes-dex2jar.jar.tmp classes-dex2jar.jar

Paso 4
Ahora ya solo queda decompilar las clases Java, lo haremos con JAD

(En mi caso tenía varias librerías y me daba algunas excepciones, lo que hice fue borrar todas las carpetas que no tuvieran que ver con el código que quería obtener y no dio más excepciones.)
Código:
[carpeta/]# cd classes-dex2jar.jar.tmp/
[carpeta/]# rm -rf android/ javax/ myjava/ org/
[carpeta/]# cd ..
[carpeta/]# jad -o -r -sjava -dsrc classes-dex2jar.jar.tmp/**/*.class
Y listo, ya tenemos los archivos .java en el directorio 'src'.

Saludos

Etiquetas: java, perdida, teléfono, todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.