0 votos

Evitar que se sobrescriba un archivo

Una aplicación, debido a un fallo no corregido, sigue sobrescribiendo un archivo importante

¿Cómo bloquear ese archivo para que no se pueda sobrescribir?

Tener root. No tengo xposed

1voto

Firelord Puntos 161

Puedes eliminar el permiso de escritura en tu archivo. Necesitarías toybox (incorporado en Android desde la v5.0) o busybox. Asumiendo que ya tienes toybox, usa estos comandos en un emulador de terminal:

su
cd /data/media/0/DIR              # replace DIR with wherever your file is. E.g. if the file is in /sdcard/Download, then DIR should be Download, so that the whole command looks like /data/media/0/Download
toybox chown 444 FILE\_NAME        # this would set read-only permission for every user in the system for that file. Change 444 to 666 to revert changes.
chattr +i FILE\_NAME               # alternative to above command. This prevents writing as well as deletion of the file. Change +i to -i to revert changes.

Si te preguntas por qué los comandos se realizan en el archivo bajo /data/media/0 , lea la respuesta aquí de Irfan Latif.

1 votos

Gracias. Tu respuesta funciona bien. He utilizado Busybox (playstore). En mi Android 4.1 no tuve que navegar a /data/media/0 antes de mi dir

0voto

Reddy Lutonadio Puntos 46

Solución 1: Mover el archivo a otra carpeta. Así, la app no tendrá acceso a él y ya no podrá modificarlo.

Solución 2: Si el archivo no se puede mover (tal vez porque no quieres moverlo, o porque la aplicación necesita acceder a él desde esa carpeta), cambia sus permisos a sólo lectura. Cualquier buen gestor de archivos debería poder hacerlo. haz clic en el archivo, selecciona propiedades y luego quita los permisos de escritura.

Solución 3: Utilice un terminal y haga que el archivo sea inmutable como se indica en el comentario utilizando el comando

su chattr +i /path/to/your/file

Tenga en cuenta que la segunda y la tercera solución sólo funcionarán si el sistema de archivos acepta el cambio de permisos o banderas.

0 votos

Lamentablemente, no bastó con establecer unas banderas R-W con un explorador de archivos (ES File Explorer en mi caso). La aplicación (que utiliza el archivo, y lo necesita donde está, simplemente lo reemplaza).

0 votos

No he probado sus comandos (¡requieren Linux, todos!). Al tenerlo, es probable que funcione.

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