1 votos

¿Cómo crear un archivo update.zip que pueda copiar y renombrar un archivo?

Esto es exactamente lo que estoy buscando - necesito un archivo 'update.zip' que pueda copiar un archivo (ejemplo):

/sistema/marco/archivo para copiar.apk

a otra carpeta:

/sistema/

y luego cambiaría el nombre del "archivo a copiar.apk" en la carpeta "sistema" a:

renombrado-archivo.apk

y copiarlo de nuevo a:

/sistema/marco/

Tendría que sobrescribir un "archivo renombrado.apk" ya existente en la carpeta "system/framework".

Nota: Los permisos NO pueden cambiar.

¿Es posible hacer esto?

¡Se apreciaría cualquier ayuda!

0 votos

A decir verdad, sólo necesito los comandos y la sintaxis correctos para update-script o updater-script.

4voto

Ryuinferno Puntos 90

De hecho, puedes hacerlo usando la sintaxis run_program en updater-script para ejecutar un shell script que mueve/copia/pega archivos mientras se recupera. Pero por supuesto, debes extraer los archivos que se van a pegar en algún lugar (/tmp por ejemplo).

Parte del actualizador-script:

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

El shell de muestra script puede ser así (llamado movefiles.sh en este caso):

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

Pero recuerda, el EOL del actualizador-script y el shell script debe ser el mismo, en formato UNIX, o de lo contrario no funcionará.

2voto

Mr. Kraus Puntos 1780

Copiar un archivo ( -p conserva los permisos y la propiedad):

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

Cambiar el nombre de un archivo (sobrescribirá el archivo de destino):

rename("/system/file-to-copy.apk", "/system/renamed-file.apk");

Como referencia, la sintaxis de los guiones de Edify (así es como se llaman) está aquí: Edificar la sintaxis

0 votos

Sé que esto es de hace un par de años pero quería comentar lo de @bmaupin más arriba. El run_program funciona muy bien, pero el método rename no parece ser reconocido por Edify. No puedo encontrar ninguna otra fuente que especifique que este método existe. No sé si existía hace 2-3 años, pero si quieres hacer esto ahora, utiliza el método run_program .

0 votos

¡Buena captura! He estado haciendo la mayor parte de mi trabajo en dispositivos Motorola, y aparentemente rename es específico de Motorola. Actualizaré mi respuesta para reflejar eso.

-1voto

Jason Dufair Puntos 447

No puedes ejecutar archivos zip.

Puedes mover/borrar/renombrar un archivo en /sistema/ a través de adb pero debes volver a montar el sistema como si fuera escrito.

0 votos

En realidad, puedes "ejecutar" archivos .zip a través del modo de recuperación. No puedo usar ADB porque mi dispositivo está medio bloqueado y la depuración USB no está habilitada.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X