Ich habe ein bizarres Problem, bei dem Apps, Adb usw. problemlos auf meinen internen und externen SD-Speicher zugreifen können, es sei denn, sie werden als root ausgeführt . In diesem Fall sind sie vollständig unzugänglich. Dies ist auf meinem Oppo Find 7 mit ColorOS 1.2.7i (Android 4.3) und ich habe überprüft, dass ich nicht unter diesem Problem mit WRITE_EXTERNAL_STORAGE leide. Ich bin mir nicht sicher, wann das auftrat, aber ich glaube, es war nach einem Betriebssystem-Update vor einiger Zeit.
Wenn ich mount
eine nicht privilegierte Adb-Shell ausführe, enthält sie diese Einträge, die nicht angezeigt werden, wenn ich sie als Superuser ausführe:
/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
Ich kann diese Partitionen an anderer Stelle neu mounten, während ich root bin, und innerhalb derselben Shell problemlos auf sie zugreifen , aber die Berechtigungen sind unkonventionell und keine anderen Root-Apps können darauf zugreifen:
$ 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
... gut soweit ...
# 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
... unterschiedliche Berechtigungen, aber ich kann die darin enthaltenen Dateien sehen und lesen/schreiben ...
... Root Explorer zeigt es mit den "ursprünglichen" Berechtigungen an, aber der Ordner ist leer ...
# 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.
Meine /etc/vold.fstab
hat nur eine Zeile:
dev_mount sdcard /storage/sdcard1 auto /devices/msm_sdcc.2/mmc_host
Und /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
Wie kann ich das beheben?
Es stellt sich also heraus, dass SuperSU die Einstellung „Mount-Namespace-Trennung“ automatisch abgehakt hat, ohne es mir zu sagen! Ich hatte keine Ahnung, dass es überhaupt eine solche Funktion hatte, geschweige denn, dass es kaputt war.
Bo Lawson
Bo Lawson
Matthäus Lesen
/fstab.qcom
und neu zu/etc/vold.fstab
starten, aber es gibt keine Verhaltensänderung.Bo Lawson