Autor
|
Tema: [BATCH] [ANDROID] A ver si se podria hacer esto... :D (Leído 9,410 veces)
|
erikcatala
Desconectado
Mensajes: 177
|
Tengo una duda... se muy poco de batch y esto se me va de las manos. El caso es que quería hacer esto: Primero un poco de información, este bat seria para poder deodexizar mi ROM de android, he probado miles de bats que hacen esto pero ninguna funciona. Para deodexizar la ROM necesito hacer una cosas y una de ellas es esta: 1.Copiar toda la carpeta framework y app en el pc (esto lo sabría hacer) 2.Deodexizarlas así: java -Xmx1024m -jar baksmali.jar -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:com.lge.core.jar -x (Nombre de la apk.apk) Esto cambia solo al final con cada nombre de la apk java -Xmx1024m -jar smali.jar out -o classes.dex Este nunca cambia, después de hacer esto crea un archivo llamado "classes.dex" que tendría que ponerlo en la apk o jar previamente citada. Este proceso es para apk seria los mismo para framework (.jar) pero poniendo .jar en vez de .apkEl caso es que tendría que hacer esto unas 200 veces con diferentes nombres pero de forma automática, no uno a 1 porque tardaría demasiado Si queréis os puedo subir algún archivo para que veías como van los tiros
|
|
« Última modificación: 31 Mayo 2013, 10:58 am por EleKtro H@cker »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Hola, Antes de nada, usa títulos descriptivos, no cosas como "ayuda" o "¿como se puede hacer esto?".
Utiliza un FOR para recorrer los archivos que quieras y efectuar cada acción con cada archivo del recorrido. For %%# in ("C:\*.*") do (Echo %%#) For %%# in ("C:\*.apk") do ( java -Xmx1024m -jar baksmali.jar -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:com.lge.core.jar -x "%%~f#" ) ...Lo mismo si necesitas automatizar algo con las carpetas, utiliza un FOR /D. Saludos
|
|
« Última modificación: 31 Mayo 2013, 11:05 am por EleKtro H@cker »
|
En línea
|
|
|
|
erikcatala
Desconectado
Mensajes: 177
|
Gracias voy a mirar un poco para que Sirve "FOR" EDIT: Ya me lo he mirado un poco y ya se para que sirve. A ver si me aclaro con el código: Esto sirve para buscar todos los *.apk en C:\ y la variable se para que sirve pero no se explicarlo... For %%# in ("C:\*.apk") do Y esto es para la variable no? Lo que no entiendo es porque pones las () Una ultima cosa esto solo lo haría 1 vez con cada archivo no?
|
|
« Última modificación: 31 Mayo 2013, 14:12 pm por erikcatala »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
El For procesa los archivos uno a uno y efectua las ordenes que le indiques a ese archivo, y luego al siguiente archivo, y así hasta que se complete la serie de archivos encontrados/procesados. En la variable (en este caso "%%#", puedes darle otro nombre siempre que cumpla el patrón permitido como "%%a") sirve para almacenar el nombre del archivo que se está procesando en ese momento, La variable la puedes expandir para obtener información concreta sobre el archivo, aunque en este caso solo interesa obtener el nombre completo, así que no hay que expandir, el "~f" lo puse como ejemplo visual pero no es necesario aquí. Los paréntesis son los operadores de agrupación, y sirven para agrupar un conjunto de ordenes, "(Echo hola)" sirve igual que "Echo hola", pero en el For uso los paréntesis porque es la manera correcta de programar un For, tanto un For como un If. Si ves códigos así por internet, están muy mal: if "a" == "b" echo si & pause else echo no Al no estar agrupado no se define el limite del grupo y el "Else" no se va a procesar. Hay que hacerlo así: if "a" == "b" (echo si & pause) else (echo no) Y nada, después de esta pequeña clase... te aconsejo que sigas leyendo más, el For es "grande" para alguien que está empezando. Saludos
|
|
|
En línea
|
|
|
|
erikcatala
Desconectado
Mensajes: 177
|
Me pareze a mi que voy a usar mucho el "FOR" Ya he empezado a escribir el código a ver que te parece: Copiar archivos del teléfono: @ECHO OFF cd Working adb wait-for-device adb pull /system/app "C:\Working\App" cd Working rmdir App /S /Q md App exit
Deodexizar: cd "C:\Working\App"
For %%# in ("C:\Working\App*.apk") do ( java -Xmx1024m -jar baksmali.jar -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:com.lge.core.jar -x "%%~f#" )
java -Xmx1024m -jar smali.jar out -o classes.dex
Mover classe.dex a la apk o jar citado anteriormente
del classes.dex Esto no se para que sirve pero lo encontre en un bat que hacia lo mismo:
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Me parece bien el código, para mover archivos y carpetas puedes usar el comando "Move". Esto no se para que sirve pero lo encontre en un bat que hacia lo mismo: Escribe esto en la consola y sabrás para que sirven: PD: Porfavor, no uses rmdir sin saber para que sirve, es "peligroso" si se usa mal. Saludos.
|
|
|
En línea
|
|
|
|
erikcatala
Desconectado
Mensajes: 177
|
Vale te haré caso Ya se para que sirve cada cosa, no me acordaba que poniendo X /? salia la información, espero no olvidarme. Pues ya tengo el código casi echo, solo me falta saber como copiar el classes.dex dentro de la apk y el jar Gracias por todo, ya es la 2 vez que me ayudas a crear mi bat
|
|
|
En línea
|
|
|
|
erikcatala
Desconectado
Mensajes: 177
|
Nadie sabe como puedo hacerlo? Ya tengo todo el código escrito, solo me falta saber eso... PD: Una cosa... Esta parte aun tengo dudas :S For %%# in ("C:\Working\App*.apk") do ( java -Xmx1024m -jar baksmali.jar -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:com.lge.core.jar -x "%%~f#" )
java -Xmx1024m -jar smali.jar out -o classes.dex La primera parte ya esta clara pero la segunda? eso lo hará cada vez con cada archivo? Osea, cada vez que se haga el la primera parte se hará la segunda parte seguidamente? Al igual que borrar classes.dex, lo borrara cada vez?
|
|
« Última modificación: 1 Junio 2013, 03:15 am por erikcatala »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
La primera parte ya esta clara pero la segunda? eso lo hará cada vez con cada archivo? Osea, cada vez que se haga el la primera parte se hará la segunda parte seguidamente? Al igual que borrar classes.dex, lo borrara cada vez? What? De verdad no he entendido nada, lo que está entre parentesis se realiza cada vez, con cada archivo, la línea del final ...No. solo me falta saber como copiar el classes.dex dentro de la apk y el jar He leido tu MP, pero ni manejo Java ni manejo Android, esto ya no pertenece a Batch, pregúntalo en la sección correspondiente. Saludos!
|
|
|
En línea
|
|
|
|
erikcatala
Desconectado
Mensajes: 177
|
What?
De verdad no he entendido nada, lo que está entre parentesis se realiza cada vez, con cada archivo, la línea del final ...No.
Es que es un poco dificil de explicar seria asi: Este codigo le llamamos #1 For %%# in ("C:\Working\App*.apk") do ( java -Xmx1024m -jar baksmali.jar -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:com.lge.core.jar -x "%%~f#" ) Este #2: java -Xmx1024m -jar smali.jar out -o classes.dex Y copiar el archivo .dex el #3 Y cuando se ejecute el bat tendria que hacer esto: Ejecutar el #1 codigo solo 1 vez, despues el #2 una vez, el #3 otra vez mas. Siempre 1 vez y después otra vez cambiando el nombre del archivo. Esto hace lo que quiero, pero ni lo entiendo y algunas cosas no me sirven... @echo off ECHO WELCOME! set x=%1 ECHO Deodexing apk.. java -Xmx512m -jar baksmali.jar -x apks/%x%.odex xcopy "%cd%\apks\%x%.apk" "%cd%\working" java -Xmx512M -jar smali.jar out/ -o classes.dex xcopy "classes.dex" "%cd%\working\build" cd working 7za x -o"build" %x%.apk >> Log-APK.txt xcopy "7za.exe" "%cd%\build" cd build 7za a -tzip Done.apk * -mx5 >> Log-APK.txt ren Done.apk Done.zip 7za d Done.zip 7za.exe >> Log-APK.txt ren Done.zip Done.apk cd.. cd.. xcopy "%cd%\working\build\Done.apk" "deodexed" del classes.dex rmdir out /S /Q cd deodexed ren Done.apk %x%.apk cd.. cd working del %x%.apk rmdir build /S /Q md build cd.. ECHO DEODEXED SUCCESSFULLY. exit
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como podria hacer esto??
Hacking
|
alexzgz
|
1
|
3,029
|
26 Febrero 2010, 19:19 pm
por Shell Root
|
|
|
[Batch] ¿Como se podría hacer esto...?
Scripting
|
SuperDraco
|
2
|
3,458
|
10 Julio 2013, 10:11 am
por Eleкtro
|
|
|
como podria hacer un RFI con esto?
Nivel Web
|
Belial & Grimoire
|
1
|
3,908
|
20 Febrero 2012, 04:10 am
por wirelesswifi
|
|
|
[Ayuda] Se puede hacer esto en Batch...!!!
Scripting
|
user_foro
|
4
|
3,356
|
7 Agosto 2015, 23:24 pm
por user_foro
|
|
|
Qué tipo de menú utilizar para esto que quiero hacer? Android.
Java
|
@XSStringManolo
|
3
|
2,395
|
3 Noviembre 2019, 18:45 pm
por @XSStringManolo
|
|