0 votes

Script SH pour renommer les fichiers .apk.odex

J'ai écrit un script pour utiliser dexopt-wrapper afin d'indexer un dossier 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 partie odexing fonctionne, mais comme vous pouvez le voir, elle crée un tas de fichiers .apk.odex.

Ma question est donc la suivante :

  1. Comment puis-je configurer la partie odexing pour qu'elle n'écrive pas les fichiers en tant que *.apk.odex ?
  2. OU Comment puis-je obtenir le mv pour renommer correctement les fichiers *.apk.odex en fichiers *.odex ?

J'ai essayé :

for file1 in $SYSAPP*.apk.odex; do
    mv "${file1}" "${file1%.odex}" 
done
for file2 in $SYSPRIVAPP*.apk.odex; do
    mv "${file2}" "${file2%.odex}"
done

mais il a transformé tous mes fichiers .apk.odex en .apk

2voto

Milner Points 533

Il s'agit plutôt d'une question de script shell à poser à Super utilisateur . Votre réponse se trouve ici : Extraire le nom de fichier et l'extension 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

devrait fonctionner sur la plupart des coquilles.

Mise à jour :

Vous pouvez même omettre la moitié de votre texte en l'adaptant à vos déclarations originales : dexopt-wrapper $i1 ${i1%.*}.odex devrait créer le fichier avec le nom correct, de sorte qu'il ne sera pas nécessaire de le renommer par la suite. Pour que votre script soit vraiment court et pratique :

#!/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

C'est tout ce dont vous avez besoin :)

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X