1 votos

¿Cómo crear una copia de un archivo inmediatamente después de su creación?

Tengo una aplicación para Android que creará un archivo en /data/ e inmediatamente lo borra. Quiero saber cómo puedo capturar este archivo o crear una copia o incluso desactivar los permisos de usuario para eliminar un archivo. Tengo acceso Root al dispositivo.

1voto

Jack Wade Puntos 231

Puedes lograrlo usando busybox inotifyd . Su núcleo debe ser construido con CONFIG_INOTIFY_USER=y para que esto funcione. Puedes confirmar con:

~# zcat /proc/config.gz | grep INOTIFY

O la existencia de /proc/sys/fs/inotify directorio. /proc/config.gz puede no existir en todos los dispositivos dependiendo de la configuración de la construcción del kernel.

Digamos que /data/data/com.xyz/files/ es el directorio que quieres ver. Escribe un script para ejecutarlo cuando se cree un archivo o directorio en el directorio dado:

#!/system/bin/sh

# remove first argument: EVENT
shift

# create directiry to backup files
mkdir -p /sdcard/backup/

# copy newly created file/directory
[ -e "$1/$2" ] || exit
cp -av "$1/$2" /sdcard/backup/

Coloca el script en /data/local/tmp/copy_it.sh y chmod a+x . Ahora ejecuta:

~# inotifyd /data/local/tmp/copy_it.sh /data/data/com.xyz/files:n

Nota :n al final de la línea, que es el evento que reporta que un archivo/directorio es creado en un directorio vigilado. Sin embargo, las vigilancias no se establecen de forma recursiva.

Para operaciones más complejas, utilice inotifywait de inotify-tools como se explica aquí .

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