Saltar al contenido

Convertir APK a DEX

Extrae classes.dex y los archivos multidex de un APK usando 7-Zip o unzip.

Convierte archivos APK en línea

Todavía no tenemos un conversor en línea específico para APK a DEX, pero puedes convertir archivos APK en línea a estos formatos:

¿Quiere convertir APK a DEX?

Háganoslo saber. Elegimos qué conversiones añadir a continuación según el interés.

Cómo convertir un archivo apk a dex

  • Archivos
  • Aún sin calificaciones.

Algunas herramientas de análisis de Android aceptan un archivo DEX independiente en lugar de un APK, y extraerlo puede reducir un paquete de aplicación a su bytecode ejecutable para inspeccionarlo o archivarlo. Un APK normalmente ya contiene uno o más archivos DEX, por lo que esta tarea suele consistir en una extracción y no en una conversión de formato.

Qué es el formato APK

Un APK es un paquete de aplicaciones de Android almacenado como un archivo basado en ZIP. Android Studio y las herramientas de compilación de Gradle producen APK que contienen el código de la aplicación, los recursos compilados, el manifiesto, los recursos adicionales, las bibliotecas nativas, los certificados y los metadatos del paquete.

El código ejecutable normalmente se almacena en classes.dex. Las aplicaciones multidex también contienen classes2.dex, classes3.dex y archivos con números superiores. Las canalizaciones de compilación de Android generalmente generan DEX con d8; R8 también puede reducir y optimizar el código. Los proyectos antiguos pueden utilizar dx.

Qué es el formato DEX

DEX, o Dalvik Executable, es bytecode de Android para los entornos de ejecución Dalvik y ART. Un archivo DEX independiente resulta útil para las herramientas que aceptan bytecode sin un APK, para conservar únicamente el código ejecutable o para inspeccionar clases con herramientas como baksmali o JADX.

DEX no es una aplicación instalable y no contiene los recursos, el manifiesto, las bibliotecas nativas, los recursos adicionales ni la información de firma del APK. Tampoco es código fuente Java. JADX puede producir una salida similar a Java para su inspección, pero la descompilación pierde los comentarios y el formato, y es posible que no reconstruya exactamente el flujo de control ni los tipos originales.

Cómo extraer DEX de un APK

  1. Conserva una copia sin modificar del APK y analiza los archivos desconocidos antes de abrirlos o extraerlos.
  2. Enumera el contenido del paquete con unzip -l app.apk en Linux o macOS, o abre el APK con 7-Zip en Windows. No es necesario cambiar el nombre de .apk a .zip, ya que ambos formatos utilizan un contenedor ZIP.
  3. Extrae todas las entradas que coincidan con classes*.dex. En un shell, crea un directorio de salida y ejecuta mkdir -p dex-output && unzip -j app.apk 'classes*.dex' -d dex-output. En 7-Zip, selecciona las entradas DEX y elige 7-Zip → Extract To.
  4. Verifica que la salida incluya todos los archivos DEX numerados, no solo classes.dex. Conserva los nombres de archivo originales, porque los archivos multidex representan conjuntamente el bytecode de la aplicación.

7-Zip es una opción práctica para equipos de escritorio con Windows, mientras que la utilidad estándar unzip es suficiente en Linux y macOS. Estas herramientas extraen los archivos existentes sin recompilar ni volver a comprimir el código de la aplicación.

Cuándo es realmente necesaria la recompilación

Si el código DEX se ha editado o generado a partir de smali u otra entrada, utiliza d8 del Android SDK para compilarlo, por ejemplo d8 --output out classes.jar cuando la entrada es un JAR compatible. Reemplazar archivos DEX dentro de un APK es una operación de recompilación, no una simple extracción; el paquete recompilado debe alinearse y firmarse antes de que Android pueda instalarlo. Dex2jar no es la herramienta correcta para convertir APK a DEX: convierte el bytecode DEX en archivos JAR compatibles con Java para su análisis.

Limitaciones de compatibilidad y seguridad

Extraer DEX conserva el bytecode presente en el APK, pero un archivo independiente puede depender de otros archivos DEX, recursos, bibliotecas nativas o clases del paquete. Combinar archivos multidex en uno solo no es una conversión neutra y puede superar los límites de referencias a métodos de DEX o requerir una recompilación con dependencias compatibles y un nivel de API adecuado.

Cambiar cualquier archivo DEX invalida la firma original del APK cuando se recompila el paquete. Un DEX independiente no tiene firma de APK y no se puede instalar por sí solo. Algunos paquetes protegidos o inusuales pueden cargar código adicional durante la ejecución, almacenar código fuera de las entradas habituales classes*.dex o utilizar APK divididos; por lo tanto, extraer las entradas visibles puede no capturar todo el código ejecutable.

Los convertidores de APK a DEX en línea son innecesarios para los paquetes habituales y no son adecuados para archivos propietarios, firmados o que no sean de confianza, porque la carga expone el código de la aplicación y posiblemente secretos integrados. La extracción local con 7-Zip o unzip es más segura y produce directamente los archivos DEX necesarios.

APK vs DEX: comparación de formatos

Cómo se comparan los formatos APK y DEX en las propiedades que más importan para esta conversión.

Comparación de los formatos de archivo APK y DEX
Propiedad .APK Android Package .DEX Dalvik Executable
Estándar abierto No No
Compresión Ambos —
Tamaño de archivo típico Medio Pequeño
Se abre en un navegador web No No
Edición posterior No editable directamente No editable directamente
Compatibilidad con metadata Básico Básico
Legible como texto plano No No
Más adecuado para Incrustación en aplicaciones Incrustación en aplicaciones
Introducido 2008 2008
Desarrollador Google Google
Tipo MIME application/vnd.android.package-archive —

La información sobre extensiones y tipos de archivo la proporciona File-Extensions.org

La base de datos actualmente no contiene ningún convertidor de archivos apk.

Otras conversiones de archivos .apk

Convertir a .dex
desde otros formatos

Compartir en redes sociales:

Ya descargado

Este archivo ya se ha descargado. Para proteger tu privacidad, lo borramos de nuestro servidor justo después de la descarga, así que no se puede volver a descargar. Si lo necesitas otra vez, vuelve a convertir el archivo.