Estoy teniendo un problema extraño donde las aplicaciones, adb, etc puede acceder correctamente a mi almacenamiento interno y externo SD sin problemas a menos que se estén ejecutando como Root en cuyo caso son completamente inaccesibles. Esto es en mi Oppo Find 7 corriendo ColorOS 1.2.7i (Android 4.3), y he verificado que no estoy sufriendo de. este tema con WRITE_EXTERNAL_STORAGE. No estoy seguro de cuándo empezó a ocurrir esto, pero creo que fue después de una actualización del sistema operativo hace bastante tiempo.
Cuando corro mount
en un shell adb sin privilegios, tiene estas entradas que no aparecen cuando lo ejecuto como superusuario:
/dev/block/vold/179:65 /storage/sdcard1 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1023,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:29 /storage/sdcard0 ext4 rw,seclabel,nosuid,nodev,noexec,relatime,discard,nodelalloc,noauto_da_alloc,data=ordered 0 0
/dev/block/vold/179:29 /mnt/secure/asec ext4 rw,seclabel,nosuid,nodev,noexec,relatime,discard,nodelalloc,noauto_da_alloc,data=ordered 0 0
tmpfs /storage/sdcard0/.android_secure tmpfs ro,seclabel,relatime,size=0k,mode=000 0 0
Puedo volver a montar esas particiones en otro lugar mientras Root y acceder a ellos sin problemas dentro de la misma shell pero los permisos son raros y ninguna otra aplicación Root puede acceder a ellos:
$ su
# mkdir /storage/sd_test
# chmod 777 /storage/sd_test
# ls -al /storage | grep sd_test
# drwxrwxrwx root root 2015-05-28 15:17 sd_test
... bueno hasta ahora ...
# mount -o rw,user,umask=0000 -t vfat /dev/block/vold/179:65 /storage/sd_test
# ls -al /storage | grep sd_test
d---rwxr-x system media_rw 2015-05-28 15:00 sd_test
# chmod 777 /storage/sd_test
# ls -al /storage | grep sd_test
d---rwxr-x system media_rw 2015-05-28 15:00 sd_test
... diferentes permisos, pero puedo ver y leer/escribir los archivos dentro de ...
... Root Explorer muestra con los permisos "originales", pero la carpeta está vacía ...
# mount | grep sd_test
/dev/block/vold/179:65 /storage/sd_test vfat rw,dirsync,relatime,uid=1000,gid=1023,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
... hmm.
Mi /etc/vold.fstab
sólo tiene una línea:
dev_mount sdcard /storage/sdcard1 auto /devices/msm_sdcc.2/mmc_host
Y /fstab.qcom
:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1,discard wait
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc,discard wait,check,encryptable=footer
/devices/msm_sdcc.2/mmc_host /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard:auto
/devices/msm_sdcc.1/mmc_host/mmc0/mmc0:0001/block/mmcblk0 /storage/sdcard0 ext4 nosuid,nodev,barrier=1,noauto_da_alloc,discard wait,voldmanaged=sdcard:29
¿Cómo puedo solucionarlo?
1 votos
Primero Android 4.2.2 y anteriores, el archivo de configuración vold.fstab específico del dispositivo define mapeos desde dispositivos sysfs a puntos de montaje del sistema de archivos, y cada línea sigue este formato dev_mount <label> <punto_de_montaje> <partición> <ruta_sysfs> [flags] Yourdevice dev_mount sdcard /storage/sdcard1 auto /devices/msm_sdcc.2/mmc_host. Cont. Siguiente comentario.
1 votos
En las versiones 4.3 y posteriores de Android, los distintos archivos fstab utilizados por init, vold y recovery se unificaron en el archivo /fstab.<device>. Para los volúmenes de almacenamiento externo que son gestionados por vold, las entradas deben tener el siguiente formato. <src> <mnt_point> <type> <mnt_flags> <fs_mgr_flags Entiendes que el formato que estás ejecutando es para 4.2.2 e inferiores como se indica en el post color OS 4.3 que es un formato erróneo ( referencia )
0 votos
@BoLawson He intentado copiar
/fstab.qcom
encima de/etc/vold.fstab
y reiniciar, pero no hay ningún cambio en el comportamiento.0 votos
Estoy buscando yo diría que ir al código fuente de su sistema operativo y obtener el storage_list.xml específica del dispositivo en algún lugar alrededor de los marcos / base / algo: xml para obtener el storage_list.xml que tiene los puntos de montaje. Pero creo que el sistema operativo de color es de código cerrado, simplemente no he encontrado el legítimo. No estoy seguro, pero creo que la plataforma Sdk podría tenerlos a través de estoy investigando. Este es el [storage_list.xml] ( Android.googlesource.com/device/moto/wingray/+/master/overlay/ ) no su dispositivo que está buscando y en la parte inferior están los puntos de montaje