1 votes

Comment créer un fichier update.zip qui peut copier et renommer un fichier ?

Voici exactement ce que je recherche : j'ai besoin d'un fichier "update.zip" qui puisse copier un fichier (exemple) :

/system/framework/file-to-copy.apk

vers un autre dossier :

/system/

et ensuite, il renommera le "file-to-copy.apk" dans le dossier "system" en :

fichier renommé.apk

et le recopier :

/system/framework/

Il faudrait qu'il écrase un fichier déjà existant, "renamed-file.apk", dans le dossier "system/framework".

Note : Les autorisations ne peuvent PAS être modifiées.

Est-il possible de le faire ?

Toute aide serait appréciée !

4voto

Ryuinferno Points 120

En fait, vous pouvez le faire en utilisant la syntaxe run_program dans updater-script pour exécuter un script shell qui déplace/copie/colle les fichiers pendant la récupération. Mais bien sûr, vous devez extraire les fichiers qui doivent être collés quelque part (/tmp par exemple).

Une partie du script de mise à jour :

package_extract_dir("stuff", "/tmp/stuff");
set_perm(0, 0, 0755, "/tmp/stuff/movefiles.sh");
run_program("/tmp/stuff/movefiles.sh");

L'exemple de script shell peut être comme ceci (nommé movefiles.sh dans ce cas) :

#!/sbin/sh
# Backup files
cp /system/framwork/something.apk /path/you/want

# Paste files
cp /tmp/somethingssss.apk /system/framework/something.apk

# Set back permissions (the copied file has the same permissons, but the new ones does not)
chmod 644 /system/framework/something.apk

Mais rappelez-vous que l'EOL du updater-script et du script shell doit être le même, au format UNIX, sinon cela ne fonctionnera pas.

2voto

Mr. Kraus Points 1780

Copier un fichier ( -p préserve les permissions et la propriété) :

run_program("/sbin/cp", "-p", "/system/framework/file-to-copy.apk", "/system/file-to-copy.apk");

Renommer un fichier ( -f force l'écrasement du fichier existant) :

run_program("/sbin/mv", "-f", "/system/file-to-copy.apk", "/system/renamed-file.apk");

Pour référence, la syntaxe des scripts Edify (c'est ainsi qu'on les appelle) est ici : Syntaxe Edify

-1voto

Jason Dufair Points 447

Vous ne pouvez pas exécuter les fichiers zip.

Vous pouvez déplacer/supprimer/renommer un fichier dans /system/ via adb mais vous devez remonter /system/ en écriture.

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