Antes de eso, ¿ha verificado si el paquete es de código abierto?
ott--
Un .apk es simplemente un archivo .zip. Pero desafortunadamente, cualquier compilación de aplicaciones para 'lanzamiento' probablemente estará protegida por ProGuard .
Daniel López
@MatthewRead The Op pregunta si podría obtener el código de una API, y yo respondí cómo se llama este fenómeno y formas de evitar al menos hacer una aplicación similar. No dice cómo evitar obtener el código. Entonces sí responde la pregunta.
Si tiene suerte y su .apkarchivo no estaba protegido por Proguard o analógico, puede usar la herramienta APK . Es una herramienta para la ingeniería inversa de aplicaciones de Android binarias cerradas de terceros.
Procedimiento para decodificar archivos .apk, método paso a paso:
Paso 1:
Cree una nueva carpeta y copie sobre el archivo .apk que desea decodificar.
Ahora cambie el nombre de la extensión de este archivo .apk a .zip (por ejemplo, cambie el nombre de filename.apk a filename.zip) y guárdelo. Ahora puede acceder a los archivos classes.dex, etc. En esta etapa puede ver los elementos dibujables pero no los archivos xml y java, así que continúe.
Paso 2:
Ahora extraiga este archivo .zip en la misma carpeta (o NEW FOLDER).
Mueva el archivo classes.dex a la carpeta dex2jar.
Ahora abra el símbolo del sistema y cambie el directorio a esa carpeta (o NEW FOLDER). Luego escriba d2j-dex2jar classes.dexy presione enter. Ahora tiene el archivo classes.dex.dex2jar en la misma carpeta.
Descargue el descompilador de Java , haga doble clic en jd-gui, haga clic en abrir archivo y abra el archivo classes.dex.dex2jar de esa carpeta: ahora obtendrá archivos de clase.
Guarde todos estos archivos de clase (en jd-gui, haga clic en Archivo -> Guardar todas las fuentes) por nombre de src. En esta etapa, obtienes la fuente de Java, pero los archivos .xml aún no se pueden leer, así que continúa.
Respuestas:
Incluso si se utilizó ProGuard, aún puede obtener algunas ideas interesantes. Aquí hay una pregunta de StackOverflow con una explicación detallada: Android: Obtener el código fuente de un archivo APK . Video de YouTube con una guía detallada . Y una entrada de blog sobre eso: Cómo recuperar el código fuente de un archivo APK de Android .
fuente
Si tiene suerte y su
.apk
archivo no estaba protegido por Proguard o analógico, puede usar la herramienta APK . Es una herramienta para la ingeniería inversa de aplicaciones de Android binarias cerradas de terceros.fuente
De uno de los wiki de la comunidad de Parnkul Garg en SO :
Procedimiento para decodificar archivos .apk, método paso a paso:
Paso 1:
Cree una nueva carpeta y copie sobre el archivo .apk que desea decodificar.
Ahora cambie el nombre de la extensión de este archivo .apk a .zip (por ejemplo, cambie el nombre de filename.apk a filename.zip) y guárdelo. Ahora puede acceder a los archivos classes.dex, etc. En esta etapa puede ver los elementos dibujables pero no los archivos xml y java, así que continúe.
Paso 2:
Ahora extraiga este archivo .zip en la misma carpeta (o NEW FOLDER).
Descargue dex2jar y extráigalo a la misma carpeta (o NEW FOLDER).
Mueva el archivo classes.dex a la carpeta dex2jar.
Ahora abra el símbolo del sistema y cambie el directorio a esa carpeta (o NEW FOLDER). Luego escriba
d2j-dex2jar classes.dex
y presione enter. Ahora tiene el archivo classes.dex.dex2jar en la misma carpeta.Descargue el descompilador de Java , haga doble clic en jd-gui, haga clic en abrir archivo y abra el archivo classes.dex.dex2jar de esa carpeta: ahora obtendrá archivos de clase.
Guarde todos estos archivos de clase (en jd-gui, haga clic en Archivo -> Guardar todas las fuentes) por nombre de src. En esta etapa, obtienes la fuente de Java, pero los archivos .xml aún no se pueden leer, así que continúa.
Paso 3:
Ahora abra otra carpeta nueva
Ponga el archivo .apk que desea decodificar
Descargue la última versión de apktool Y la ventana de instalación de apktool (ambas se pueden descargar desde el mismo enlace) y colóquelas en la misma carpeta
Descargue framework-res.apk y póngalo en la misma carpeta (no todos los archivos apk necesitan este archivo, pero no duele)
Abrir una ventana de comando
Navegue al directorio raíz de APKtool y escriba el siguiente comando:
apktool if framework-res.apk
apktool d myApp.apk
(donde myApp.apk denota el nombre de archivo que desea decodificar)ahora obtienes una carpeta de archivos en esa carpeta y puedes leer fácilmente los archivos xml del apk.
Etapa 4:
No es un paso, solo copie el contenido de ambas carpetas (en este caso, ambas carpetas nuevas) a la única
y disfruta el código fuente ...
fuente