Tag Archive | Cyanogenmod

Borrar carpetas con problemas de permisos en Android


Hola lectores

Tengo un Samsung Galaxy S3 que como otros dispositivos con Android 4 (ICS) ahora tienen la memoria interna en una misma partición que los datos del sistema de manera que no es necesario que el sistema desmonte la partición mientras se conecta el celular al PC (por ej pueden ver sus fotos desde el celular mientras desde el PC se están subiendo unos archivos al celular y se están viendo las carpetas), eso se logra con el uso de MTP, aunque esto acarrea más problemas para usuarios de GNU/Linux porque al montar como unidad externa el celular, se pierde la conexión constantemente porque MTP fue pensado para sistemas Windows inicialmente, en un próximo post hablaré de las alternativas que tenemos para acceder a los archivos de nuestro celular Android con estas características vía GNU/Linux.

Me conecté al celular por SSH con FileZilla (más sobre esto en el próximo post) y creé unas carpetas para meter unos documentos PDF, desde allí empezaron mis problemas dado que Adobe Reader no me reconoció los PDF’s y luego no pude eliminar las carpetas (el motivo de este post). Tengo mi celulear rooteado por lo que se supone que hay permiso para eliminar cualquier archivo siempre y cuando el sistema de archivos esté montado con permisos de escritura y podía eliminar cualquier archivo en la memoria interna (reconocida por Android 4.0 y superior como /data/media, /storage/sdcard0 pero se puede acceder por cualquier medio). Esto fue lo que pasó:

  • El problema fue que yo podía eliminar cualquier archivo en la sdcard interna menos las carpetas que había creado previamente
  • Algo que noté más raro aún fue que puedo renombrar las carpetas y hasta copiarlas a otra partición con permisos de escritura como /data pero no puedo cortar las carpetas o eliminarlas de la SD interna: renombré las carpetas a .garbage and .trash pero tampoco pude eliminarlas
  • Traté también creándome dos carpetas con los mismos nombres en el PC y subirlas a la memoria del teléfono pero no sirvió tampoco, quedé con los mismos errores de no poder eliminarlas por permisos
  • Traté de crear un archivo en las carpetas pero también falló
    touch .garbage/algo
    touch: .garbage/algo: Permission denied
  • Por CMW (ClockWorkMode, voy a escribir un tutorial de rooteo pronto…) probé formatear la SD pero como no es una partición aparte falla el formateo al hacer umount, wice wipes (incluso reinstalé CM10 -una ROM de Android muy popular- y sigue igual), también traté un hard reset (*2767*3855#) pero el código no hace nada en CM10 (creo que es propio de Samsung con stock y no aplica para mi celular con una ROM personalizada)

    Después de estar metido un rato en la terminal buscando soluciones y mirando los puntos demontaje encontré esto

    /dev/fuse on /storage/sdcard0 type fuse (rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,
    default_permissions,allow_other)

    que sifnifica que se monta la memoria interna como un usuario y grupo específicos (1023), así que verifiqué en la lista de procesos qué usuarios los estaban ejecutando y determinar cuál era el usuario con ID 1023 y determiné que era el usuario media_rw con el cual se estaba ejecutando este proceso

    media_rw   0:00 /system/bin/sdcard /data/media 1023 1023

    En este paso determiné que la memoria interna se monta como este usuario y quizá logeandose como él (su media_rw) se pudieran borrar las carpetas.

    Probando con el descubrimiento anterior finalmente pude borrar las carpetas con el siguiente procedimiento:

    1. Logearse como root (pueden omitir esto si se conectan por SSH con SSHDroid)

    su

    2. Montar /system con permisos de escritura

    mount -o rw,remount -t ext4 /dev/block/mmcblk0p9 /system

    3. Volver a ejecutar el comando sdcard

    /system/bin/sdcard /data/media 1023 1023

    4. Ir a la carpeta /data/media y borrar las carpetas no deseadas (en mi caso se llaman .trash y .garbage)

    rm -rf .trash .garbage

    5. Volver a montar como sólo lecutra /system (por seguridad)

    mount -o ro,remount -t ext4 /dev/block/mmcblk0p9 /system

    6. Se puede verificar que ya no existen las carpetas con

    ls -lsa /data/media/

    y la salida debería ser algo como (no están las carpetas .trash y .garbage

    # ls -lsa /data/media/
     total 443361
        4 drwxrwxr-x   14 media_rw media_rw      4096 Oct 12 10:25 .
        4 drwxrwx--x   23 system   system        4096 Oct 12 06:01 ..
        4 drwxrwxr-x    2 media_rw media_rw      4096 Oct 12 06:06 .mmsyscache
        4 drwxrwxr-x    2 media_rw media_rw      4096 Oct 12 06:01 Alarms
        4 drwxrwxr-x    3 media_rw media_rw      4096 Oct 12 06:03 Android
        4 drwxrwxr-x    2 media_rw media_rw      4096 Oct 12 06:01 DCIM
        4 drwxrwxr-x    2 media_rw media_rw      4096 Oct 12 06:01 Download
        4 drwxrwxr-x    5 media_rw media_rw      4096 Oct 12 06:09 GOLauncherEX
        4 drwxrwxr-x    2 media_rw media_rw      4096 Oct 12 06:01 Movies
        4 drwxrwxr-x    2 media_rw media_rw      4096 Oct 12 06:01 Music
        4 drwxrwxr-x    2 media_rw media_rw      4096 Oct 12 06:01 Notifications
        4 drwxrwxr-x    3 media_rw media_rw      4096 Oct 12 08:55 Pictures
        4 drwxrwxr-x    2 media_rw media_rw      4096 Oct 12 06:01 Ringtones
     136520 -rw-rw-r--    1 media_rw media_rw 139791302 Oct 11 23:06 cm-10-20121011.zip
     85104 -rw-rw-r--    1 media_rw media_rw  87138923 Oct 11 23:02 gapps-jb.zip
        4 drwxrwxr-x    3 media_rw media_rw      4096 Oct 12 06:06 xiialive

    Espero les ayude a quienes tengan un problema similar y puedan controlar mejor sus dispositivos Android

    Don’t Worry……Be Linux!!!!!!!!

    Anuncios