java - online - get source code from apk
¿Cómo convertir.jar o.class al archivo.dex? (5)
Voy a editar el servidor Opera Mini v6.5 porque está bloqueado en nuestro país.
Ahora he desempaquetado el archivo .apk extraído de las clases. Luego lo convertí a través de dex2jar.bat, y ahora modifiqué el servidor.
Mi problema es que quiero volver a empaquetar el .jar o .class a classes.Dex. ¿Cómo lo hago?
Aquí hay una solución que fue útil en mi caso ...
Supongamos que el archivo .jar se encuentra en "c: / temp / in.jar". En la ventana del símbolo del sistema, cd a .. / android-sdk / platform-tools. Para obtener .apk ejecute:
dx --dex --output="c:/temp/app.apk" "c:/temp/in.jar"
Para obtener el archivo .dex ejecute:
dx --dex --output="c:/temp/dx.dex" "c:/temp/in.jar"
Para dexificar un archivo jar, debe usar dx.bat dentro de la carpeta de herramientas de plataforma de su SDK. También puede ver la tarea -dex dentro del archivo build.xml dentro de su carpeta tools / ant en su SDK.
Para evitar descargar la totalidad de Android Studio: puede ir a la descarga de herramientas de comando y extraer la carpeta. Luego entra en ella y encuentra tu herramienta sdkmanager
. Luego, en la línea de comandos, escriba sdkmanager "build-tools;28.0.1"
. Puede seleccionar qué versión de herramientas de compilación es la adecuada según la versión de java con la que esté trabajando. Esto lo descargará en el directorio raíz de sus herramientas de línea de comandos. Ve a esta carpeta y deberías ver la herramienta dx
. Luego puede escribir dx --dex --output="nameoffile.dex" nameoffile.jar
.
Una pequeña nota adicional: si está intentando convertir un frasco masivo, es posible que obtenga un error OUT OF MEMORY
. En este caso, simplemente pase la JVM a la opción de aumento de dx -JXmx256m ...
dinámico dx -JXmx256m ...
Para mac, la herramienta de comando dx se almacena en un directorio diferente como se dice en la respuesta superior. Así es como lo haces en mac:
exampleName$ /Users/exampleName/Library/Android/sdk/build-tools/25.0.2/dx --dex --output="/Users/exampleName/Downloads/classes-dex2jar.jar" "/Users/exampleName/Downloads/name.dex"
Explicación más detallada:
- La herramienta dx se almacena en el SDK de Android, pero en un directorio diferente en macs, la ruta para un mac es
/Users/exampleName/Library/Android/sdk/build-tools/25.0.2/
- El comando es el mismo para Windows y Mac, la ruta es diferente
- El comando para ambas plataformas es
dx --dex--output="c:/temp/app.apk" "c:/temp/in.jar"
- La herramienta puede tardar unos minutos en producir el archivo dex
Si aún no funciona por algún motivo, asegúrese de cumplir con estos requisitos:
Sé que esto es tarde, pero tuve que resolverlo por mi cuenta después de horas de prueba y error, espero que ayude a otros usuarios de Mac.
Parece que necesita la apktool , le permite volver a empaquetar y renunciar a una aplicación, sin la necesidad de ingresar a dx y aapt usted mismo.
Aquí hay un artículo sobre cómo desempaquetar y volver a empacar.