En resumen si monto mi tarjeta SD Ext4 de 8GB, sólo root (SU) puede ver de la misma. El resto de usuarios (por tanto, el resto de aplicaciones) no lo detectan.
Mientras mi Ext4 SD la tarjeta no está montada correctamente (Android siempre arroja Damaged SD card. Format it... blah blah blah
), he seguido esta guía para montarlo. Y funciona:
La tarjeta SD está en /dev/block/mmcblk1
, por lo que la primera partición está en /dev/block/mmcblk1p1
.
Realicé el (no muy claro para mí) proceso previo de ADB:
su
setprop service.adb.tcp.port 5555
adb kill-server
stop adbd
start adbd
HOME=/sdcard adb start-server
adb connect localhost
adb -s localhost:5555 shell
exit
stop adbd
cat /sdcard/.android/adbkey.pub >> /data/misc/adb/adb_keys
start adbd
Y luego la tarjeta es correctamente montado haciendo (como Root):
# mount -t ext4 /dev/block/mmcblk1p1 /storage/extSdCard && sleep 5 && /system/bin/vold
Observe cómo funciona como SU pero no como usuario normal :
root@unknown:/ # ls /storage/sdcard1
lost+found
root@unknown:/ # exit
u0_a98@unknown:/ $ ls /storage/sdcard1
ls: can't open '/storage/sdcard1': Permission denied
He probado los pasos anteriores a través de SSH (shell remoto).
La tarjeta SD ha sido formateada desde Windows utilizando Asistente de partición Minitool .
Yo también he hecho pruebas:
- Edición de la
/system/etc/permissions/platform.xml
manualmente (añadiendo<group gid=”media_rw” />
) aWRITE_EXTERNAL_STORAGE
sección, como se menciona aquí. - SDFix .
- Uso de Xposed framework con ManejarAlmacenamientoExterno módulo.
Pero las aplicaciones (Total Commander, Ghost Commander, o cualquier otro programa) no tienen acceso a la SDCard Ext4.
¿Qué más podría probar?
Soluciones a los problemas para que las aplicaciones lean (y escriban) también la tarjeta SD.
Datos extra 1:
Observe la salida del mount
para ambos usuarios:
root@unknown:/ # mount | grep "sdcard" -i
/dev/block/mmcblk1p1 /storage/sdcard1 ext4 rw,seclabel,relatime,data=ordered 0 0
root@unknown:/ # exit
u0_a98@unknown:/ $ mount | grep "sdcard"
u0_a98@unknown:/ $ mount | grep "mmcblk"
Como se puede ver, el usuario Root tiene un dispositivo montado que el usuario normal no tiene (¡!). No sabía que esto podía ocurrir en Linux.
0 votos
Mira en el vold.fstab porque es lo que dicta a los puntos de montaje del sistema, el formato y esas cosas. Aquí hay una explicación: source.Android.com/devices/storage/config.html
0 votos
@BoLawson Ya no hay vold.fstab en Lolipop. Hace tiempo que está obsoleto. Tengo exactamente este mismo problema en un Sony Z1C. Es rooteado. Estoy corriendo una rom de stock. Puedo montar el sistema de archivos ext4 pero no puedo verlo como usuario normal en absoluto. Puedo tener una pregunta duplicada aquí: Android.stackexchange.com/questions/124575/ y aquí: forum.xda-developers.com/sony-xperia-z1-compact/help/
0 votos
Si el punto de montaje es visible sólo para Root y no para otros usuarios/apps, eso es debido al espacio de nombres de montaje explicado aquí: Android.stackexchange.com/questions/197959/ Se explica el problema de los permisos forums.lenovo.com/t5/Moto-X-Play/Android-ext4-support/m-p/ y forum.xda-developers.com/
0 votos
¿Cómo se puede montar una carpeta dentro de /sdcard con los permisos correctos?