Saltar al contenido

Convertir APK a JAD

Explica por qué los archivos APK no pueden convertirse en paquetes JAD/MIDlet funcionales y cómo crear un JAD a partir de un JAR válido.

Convierte archivos APK en línea

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

Cómo convertir un archivo apk a jad

Un teléfono o emulador Java ME antiguo puede requerir un descriptor JAD cuando la aplicación disponible es un APK de Android. Debido a que los dos paquetes están destinados a runtimes diferentes, la solución práctica es obtener el par original Java ME JAR/JAD o un port específico, no cambiar el nombre del APK.

Qué es el formato APK

APK es el formato de paquete instalable para aplicaciones Android, generado por Android Studio, Gradle y las herramientas de empaquetado de Android. Las distribuciones de Android pueden proporcionar un único APK o varios split APKs; las compilaciones de desarrollador, las copias de seguridad de dispositivos y los repositorios de terceros suelen contener archivos APK.

Un APK es un contenedor basado en ZIP que normalmente incluye un AndroidManifest.xml compilado o binario, bytecode Dalvik/ART en classes.dex, recursos, bibliotecas nativas e información de firma. Android utiliza el manifest, el código DEX, los recursos y las APIs del framework para instalar y ejecutar la aplicación.

Qué es el formato JAD

JAD es un Java Application Descriptor de texto sin formato utilizado por teléfonos y emuladores Java ME. Describe un JAR de aplicación Java ME independiente y normalmente contiene MIDlet-Name, MIDlet-Version, MIDlet-Vendor, MIDlet-1, MicroEdition-Configuration, MicroEdition-Profile, MIDlet-Jar-URL y MIDlet-Jar-Size.

El JAR contiene archivos de clase y recursos Java ME; el JAD proporciona metadatos de instalación e identifica ese JAR. Un JAD no es una aplicación ejecutable y no puede ejecutarse sin código Java ME compatible.

Por qué la conversión directa no funciona

No existe una conversión real de APK a JAD. Android utiliza bytecode DEX, APIs del framework de Android, componentes de aplicaciones Android y el runtime Dalvik/ART. Java ME utiliza archivos de clase Java, APIs CLDC/MIDP y el ciclo de vida de MIDlet. Un descriptor no puede traducir bytecode, layouts de Android, permisos, bibliotecas nativas ni dependencias del framework entre estas plataformas.

Cambiar el nombre de app.apk a app.jad, extraer el contenido del APK en un JAR o copiar los valores del manifest de Android en un JAD crea un paquete Java ME no válido o que no funciona. Ningún conversor online de buena reputación puede convertir una aplicación Android en un MIDlet funcional; los servicios que afirman hacerlo generalmente cambian el nombre, extraen o vuelven a empaquetar archivos sin traducir el programa.

Cómo crear un JAD a partir de un JAR Java ME existente

Este procedimiento solo se aplica cuando ya tienes un JAR Java ME válido, incluido uno que pueda estar incluido dentro de un APK. Un JAR arbitrario dentro de un APK no es automáticamente una aplicación Java ME; comprueba la existencia de clases MIDlet y atributos del manifest Java ME.

  1. Inspecciona el APK con 7-Zip o las herramientas de la plataforma Android. En un sistema con unzip, muestra su contenido con unzip -l app.apk y extráelo con unzip app.apk -d app_unpacked. La extracción no convierte el código Android.
  2. Utiliza Apktool cuando necesites inspeccionar los recursos de Android, el manifest o el código DEX desensamblado: apktool d app.apk -o app_decoded. Apktool decodifica archivos Android y produce smali, pero no genera un JAR ni un JAD Java ME.
  3. Si hay un JAR Java ME adecuado, utiliza una utilidad local de JAR a JAD, como JADMaker, o crea el descriptor manualmente en un editor de texto sin formato. Las herramientas de empaquetado de Java ME SDK o Wireless Toolkit también pueden generar descriptores como parte de una compilación Java ME.
  4. Para crearlo manualmente, guarda un archivo de texto junto al JAR con el mismo nombre base, por ejemplo example.jad junto a example.jar:
MIDlet-Name: Example
MIDlet-Version: 1.0
MIDlet-Vendor: Example Vendor
MIDlet-1: Example,,com.example.ExampleMIDlet
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
MIDlet-Jar-URL: example.jar
MIDlet-Jar-Size: 123456

Sustituye los valores de ejemplo por los metadatos compatibles con el JAR. La clase indicada en MIDlet-1 debe existir en el JAR e implementar el entry point MIDlet requerido. MIDlet-Jar-Size debe ser el tamaño exacto del JAR en bytes, sin separadores. La URL puede ser un nombre de archivo local para la instalación mediante sideloading o una URL de servidor para la instalación a través de la red.

Un generador online de JAR a JAD solo es aceptable para un JAR Java ME válido que no contenga información sensible; no puede convertir un APK. Un generador de escritorio es más seguro para archivos firmados o propietarios, porque cargar el archivo expone su contenido. Verifica los campos generados y el tamaño del JAR antes de transferir ambos archivos al teléfono o emulador.

Limitaciones de compatibilidad

Un APK de Android puede requerir versiones del framework de Android, permisos, servicios de Google, bibliotecas nativas, funciones de pantalla táctil o hardware que no tienen equivalente en Java ME. Incluso la decompilación del código fuente no produciría un MIDlet portable sin una reescritura considerable basada en las APIs CLDC/MIDP y una nueva compilación Java ME.

Para la instalación o el archivado en Android, conserva el APK original firmado o todos los split APKs necesarios. Para un dispositivo Java ME, obtén la versión JAR/JAD original correspondiente o un port Java ME desarrollado por separado; un descriptor generado por sí solo no puede hacer que la aplicación Android sea compatible.

Simplemente, es imposible convertir APK a JAD directamente.
Por lo tanto, no existe un convertidor de apk a jad o un convertidor en línea gratuito de .apk a .jad.

APK vs JAD: comparación de formatos

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

Comparación de los formatos de archivo APK y JAD
Propiedad .APK Android Package .JAD Java Application Descriptor
Estándar abierto No No
Compresión Ambos Sin compresión
Tamaño de archivo típico Medio Muy pequeño
Se abre en un navegador web No No
Edición posterior No editable directamente Fácil
Compatibilidad con metadata Básico Básico
Legible como texto plano No Sí
Más adecuado para Incrustación en aplicaciones Incrustación en aplicaciones
Introducido 2008 2000
Desarrollador Google Sun Microsystems
Tipo MIME application/vnd.android.package-archive —

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

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.