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.
Respuesta
¿Demasiados anuncios?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í .