He escrito un script para utilizar dexopt-wrapper para odexar una carpeta de .apk
#!/bin/sh
SYSAPP=/mnt/extSdCard/FilesToOdex/system/app/
SYSPRIVAPP=/mnt/extSdCard/FilesToOdex/system/priv-app/
for i1 in $SYSAPP*.apk ; do
echo "Odexing $i1..."
dexopt-wrapper $i1 $i1.odex
done
for i2 in $SYSPRIVAPP*.apk ; do
echo "Odexing $i2..."
dexopt-wrapper $i2 $i2.odex
done
for file1 in $SYSAPP*.apk.odex; do
mv "$file1" "`basename $file1 .apk.odex`$file1.odex"
done
for file2 in $SYSPRIVAPP*.apk.odex; do
mv "$file2" "`basename $file2 .apk.odex`$file2.odex"
done
La parte de odexación funciona, pero como puede ver, crea un montón de archivos .apk.odex
Entonces mi pregunta es:
mv
cambiar correctamente el nombre de los archivos *.apk.odex para que sean solo archivos *.odex?Lo intenté:
for file1 in $SYSAPP*.apk.odex; do
mv "${file1}" "${file1%.odex}"
done
for file2 in $SYSPRIVAPP*.apk.odex; do
mv "${file2}" "${file2%.odex}"
done
pero convirtió todos mis archivos .apk.odex en .apk
Esa es más bien una pregunta de secuencias de comandos de Shell que se le hará a Super User . Su respuesta se puede encontrar aquí: Extraiga el nombre del archivo y la extensión en bash :
for file1 in $SYSAPP*.apk.odex; do
mv "${file1}" "${file1%.*}.odex"
done
for file2 in $SYSPRIVAPP*.apk.odex; do
mv "${file2}" "${file2%.*}.odex"
done
debería funcionar en la mayoría de las conchas, supuestamente.
Actualizar:
Incluso puede omitir la mitad de su secuencia de comandos adaptándola a sus declaraciones originales: dexopt-wrapper $i1 ${i1%.*}.odex
debe crear el archivo con el nombre correcto, por lo que no es necesario cambiarle el nombre más adelante. Para que su guión sea realmente breve y práctico:
#!/bin/sh
SYSAPP=/mnt/extSdCard/FilesToOdex/system/app/
SYSPRIVAPP=/mnt/extSdCard/FilesToOdex/system/priv-app/
for i1 in $SYSAPP*.apk $SYSPRIVAPP*.apk; do
echo "Odexing $i1..."
dexopt-wrapper $i1 ${i1%.*}.odex
done
Eso es todo lo que deberías necesitar :)
Kevin
izzy
Kevin
izzy
.apk
rompería su confianza, ya que no tiene la clave original para volver a firmarlo). Pero me alegro de haber podido ayudar un poco al menos;)Kevin