Arranque en su Recuperación personalizada, monte el datos partición ya sea usando la línea de comandos o a través de la GUI, y elegir cualquiera de los siguientes métodos:
( <strong>Nota </strong>que la TWRP ya tiene la opción de borrar /datos sin tocar /datos/medios. Utiliza los comandos rm -rf <sup><sup>1 </sup></sup>.)
Ir Inmunidad.
-
Haga /data/media
inmutable 2 es decir, inmunes a cualquier modificación. Puede hacerlo ejecutando:
adb shell chattr +i /data/media
También puedes usar -R
para la inmunidad recursiva, aunque no era necesaria en mi caso de prueba.
Puedes ver el atributo de inmunidad ( i
) en la salida de
adb shell lsattr /data/
-
Es hora de volverse loco
adb shell rm -rf /data/*
Todos los archivos y sus directorios internos /data/
deben ser ahora purgados, excepto los que están dentro medios de comunicación para lo cual obtendrías el error (no crítico) Permission denied
para cada archivo dentro de ese directorio.
-
Ahora revoca la inmunidad usando
adb shell chattr -i /data/media
Utilice -R
si lo usaste anteriormente.
If-Else
Elija manualmente cada directorio bajo /data
y usar rm -rf
en él. Podría ser cansado, así que puede considerar El shell-fu de Izzy
adb shell for dir in /data/*; do if [[ "$dir" = "/data/media" ]]; then continue; else rm -rf "$dir"; fi; done;
Reemplazar rm -rf
con echo
para un ensayo general.
El comando recoge cada ruta de archivo 3 bajo /data
entonces comprueba si la ruta de archivo es para medios de comunicación carpeta: si es así, entonces pasa; de lo contrario, bombardea el archivo.
1: <a href="https://twrp.me/faq/datamedia.html" rel="nofollow" title="When you choose a factory reset, instead of formatting, we use rm -rf commands to remove all the folders except for the media folder so that we can remove all of your apps and settings while leaving your “sdcard” intact.">PREGUNTAS FRECUENTES DE LA TWRP: ¿Qué es un dispositivo de datos/medios de comunicación?</a><br>2: <a href="https://en.wikipedia.org/wiki/Chattr" rel="nofollow" title="chattr is the command in the Linux operating system that allows a user to set certain attributes of a file residing on a Linux file system.">Wikipedia: chattr</a><br>3: <a href="http://www.tldp.org/LDP/intro-linux/html/sect_03_01.html" rel="nofollow" title="Directories: files that are lists of other files.">Visión general del sistema de archivos de Linux: Tipos de archivos</a>
0 votos
No ha solucionado mi problema por completo, pero puede que sólo necesite más tiempo para limpiar. ¿cuánto tiempo suele tardar? no debería ser demasiado tiempo, ¿verdad?
2 votos
@Firelord Por favor, haz que sea una respuesta (pero incluye que requiere poderes Root) :)
for dir in /data/*; do if [[ $dir =~ media ]]; then continue; else rm -rf $dir; done
- Me encanta el poder del shell :) Oh: como la comparación regex podría fallar:if [ "$dir" = "/data/media" ]
debería funcionar también. Puedes probarlo con seguridad sustituyendo elrm -rf
con elecho
comando.