!!!DECIROS A TODOS QUE ESTA CONSEGUIDO: TENGO MI ROM DEOXDEXADA¡¡¡¡ Ahora tenemos todas nuestras apk independizadas, es decir, en teoria no hace falta que exista una odex para que funcione la otra/s. De esta manera conseguimos dos cosas ( en teoria):
A. Podremos modificar framework-res y cambiar nuestra visualizacion
B. Podremos sustituir apk de idem funcion: quiero probar cambiar el dialer y los contactos.
Explicare como lo he hecho. Asumo que ya deoxdexemos con android kitchen, explicado en post anteriores (yo use una rom virgen: flying f9300 original stock firmware). Pasos seguidos:
1. Creo un bat para firmar, alinear, borrar originales y renombrar copias, pero este recorre subdirectorios (a diferencia del otro subido. Eso si, de momento no admite espacios en nombres combinados, este me cuesta hacerlo el puñetero). Creo una carpeta nueva, la llamo 44 (elegir nombre a gusto) y dentro copio mi directorio /system deoxdexado (siempre trabajar con copias del original). Copio mi archivo bat (0_firmar_alinear_renombrar_subdirectorios) dentro de /44, y lo ejecuto. Ahora estoy seguro de que solo recorre /system.
El codigo del bat es: (RESPETAR MAYUSCULAS Y MINUSCULAS EN RUTAS Y ARCHIVOS)
@ echo.
@ echo Este archivo BAT sobreescribe los archivos .apk originales DEL DIRECTORIO ACTUAL RECORRIENDO SUBDIRECTORIOS.
@ echo.
@ echo Haz copia de los mismos antes de ejecutarlo.
@ echo.
@ echo Los archivos y directorios no pueden tener espacios si son nombres compuestos, unirlos con "guion bajo".
@ echo.
@ echo Copia los apk deoxdexados en este directorio antes de empezar.
@ echo.
@ echo Si deseas historial redirecciona la salida a un archivo y pulsa una tecla despues de ejecutar
@ echo.
@ echo pulsa "ctrl+c" si deseas terminar la ejecucion
@ echo.
@ pause
rem eliminamos por si acaso forzando borrado
del 1firmado*.* /F /Q /S
del 0alineado*.* /F /Q /S
rem Ahora firmamos con signapk pasando ruta completa
@ for /F %%F in ('dir *.apk /B /S') DO java -jar signapk.jar testkey.x509.pem testkey.pk8 %%F %%~dF%%~pF1firmado_%%~nF%%~xF
rem Ahora alineamos con zipaling pasando ruta completa
@ for /F %%H in ('dir 1firmado_*.apk /B /S') DO zipalign -v 4 %%H %%~dH%%~pH0alineado_%%~nH%%~xH
rem paso parametros de las carpetas y subcarpetas
@ for /F %%M in ('dir 0alineado_.apk /B /S') DO call:label %%M %%~dM %%~pM %%~nM %%~xM
rem fin de bucle FOR
goto:fin
:label
set uno=%1
set unidad=%2
set ruta=%3
set nombre=%4
set nombre_recortado=%nombre:~5%
set extension=%5
rem copio archivo modificado el nombre
copy %uno% %unidad%%ruta%%nombre_recortado%%extension% /Y
rem borro archivo original
del %uno% /F /Q /S
rem informo fin de ejecucion de etiqueta para retorno a comando FOR
goto:eof
:fin
@ echo FIN DEL PROGRAMA
rem eliminamos los generados forzando borrado
del 1firmado*.* /F /Q /S
del 0alineado*.* /F /Q /S
@ echo 'PROGRAMA TERMINADO'
@ echo.
@ pause
2. Tengo creado un archivo bat (0_copiar.bat) para copiar las apk del directorio actual a un directorio en mi tlf con la ruta que yo le marque. En este caso, solo copia del directorio actual.
Codigo del archivo bat:
@ echo Las apk deben estar en el mismo directorio.
@ echo Asegurate de que son las que tu quieres porque la ruta se la pones tu manualmente. Para ello edita el archivo con Notepad++
@ echo En el ejemplo /system/app. Recuerda que hay varias rutas con apk. Ten el movil conectado en modo
ADB
@ pause
@ FOR %%Y IN (*.apk) DO
adb push %%Y
/RUTA A COPIAR EN TLF/%%Y
@ pause
Copio los archivos: 0_copiar.bat,
Adb.exe, AdbWinApi.dll y AdbWinUsbApi.dll a las rutas donde tengo app. Son /system/app, /system/framework, system/vendor/app y /system/vendor/operator/app. Ahora sustituyo /RUTA A COPIAR EN TLF/ por la ruta donde esta copiado el archivo 0_copiar.bat.
Ejemplo: si esta en /system/framework, el codigo quedaria
@ FOR %%Y IN (*.apk) DO adb push %%Y /System/framework/%%Y
3.He metido la rom entera "flying f9300 original stock firmware" (enlace de descarga en posts anteriores).
2.Meto boot parcheado y
recovery cwm 5.5: ambos me dan acceso
root.
3.Arranco en modo recovery y conecto tlf al PC.
4.Abro una shell-dos en mi directorio /44
adb devices (comprobar que esta a la escucha el tlf)
adb shell (comprobar que somos root: # delante siempre)
#mount /system
#mount /data
#mount/emmc
#mount /sdcard (lo monto todo, a lo grande....)
#cd /system/app (entrais en directorio)
#ls -l (comprobais que hay archivos apk y odex, permisos y propietarios)
#rm *.apk (borrais todas apk)
#rm *.odex (borrais todas odex)
#ls -l (verificais todo borrado)
#exit (salis a shell-dos para ejecutar
adb)
adb devices (comprobar que esta a la escucha el tlf)
Ahora vais a vuestro directorio deoxdexado (con el explorador de
windows) /system/app y ejecutais 0_copia.bat . Copia las apk al tlf en la misma ruta.
adb shell
#cd /system/app
#ls -l (comprobais usuario=grupo que son root. Si es asi omitir chown)
#chown root.root *.apk (asignais usuario y grupo a root de todas las apk)
#chmod 644 *.apk (asignar permisos rw-r--r-- a todas las apk)
#ls -l (verificar que esta todo bien)
#exit
Ahora hacer lo mismo con los otros directorios que contengan apk: /system/framework, /system/vendor/app y /system/vendor/operator/app
Importante: /system/framework tiene tambien archivos jar que son odex. Por lo tanto una vez copiados los apk copiar tambien los jar:
@ FOR %%Y IN (*.apk) DO adb push %%Y /System/framework/%%Y y @ FOR %%Y IN (*.jar) DO adb push %%Y /System/framework/%%Y
Una vez hecho esto, reinicio y empieza a funcionar.
Hare copia de seguridad y la subire deoxdexada virgen. Pondre los enlaces cuando las suba.
Info sobre permisos en
linux:
http://www.linux-es.org/node/127