Android / хранилище / эмулируется /0 и /data/media/0 разных разрешений
У меня смартфон LG G3. Во время исследования файловой системы я замечаю, что
Каталог /storage/emulated/0/... (полученный от системы моему локальному пользователю) имеет разрешение, запрещающее операции chmod и chown. Когда я попытался изменить какой-либо файл на 777, я получил 0 результатов и никаких сообщений об ошибках, но ничего не произошло. Total Commander файловый менеджер работает так же.
Но когда я пытаюсь изменить разрешение файловой системы напрямую с помощью /data/media/0/..., я могу это сделать.
/ proc / sef / mounts говорит мне:
965 965 0:1 / / ro,relatime master:1 - rootfs rootfs ro
966 965 0:11 / /dev rw,nosuid,relatime master:2 - tmpfs tmpfs rw,seclabel,size=1447296k,nr_inodes=84929,mode=755
967 966 0:9 / /dev/pts rw,relatime master:3 - devpts devpts rw,seclabel,mode=600
968 966 0:17 / /dev/cpuctl rw,relatime master:4 - cgroup none rw,cpu
969 965 0:3 / /proc rw,relatime master:5 - proc proc rw
970 965 0:12 / /sys rw,relatime master:6 - sysfs sysfs rw,seclabel
971 970 0:10 / /sys/fs/selinux rw,relatime master:7 - selinuxfs selinuxfs rw
972 970 0:5 / /sys/kernel/debug rw,relatime master:8 - debugfs debugfs rw
973 970 0:14 / /sys/fs/cgroup rw,relatime master:9 - tmpfs none rw,seclabel,size=1447296k,nr_inodes=84929,mode=750,gid=1000
974 965 0:13 / /acct rw,relatime master:10 - cgroup none rw,cpuacct
975 965 0:15 / /mnt/asec rw,relatime master:11 - tmpfs tmpfs rw,seclabel,size=1447296k,nr_inodes=84929,mode=755,gid=1000
976 965 0:16 / /mnt/obb rw,relatime master:12 - tmpfs tmpfs rw,seclabel,size=1447296k,nr_inodes=84929,mode=755,gid=1000
977 965 259:8 / /system ro,relatime master:13 - ext4 /dev/block/platform/msm_sdcc.1/by-name/system rw,seclabel,data=ordered
978 965 259:11 / /data rw,nosuid,nodev,noatime master:14 - ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata rw,seclabel,noauto_da_alloc,resuid=1000,errors=continue,data=ordered
979 965 259:5 / /sns rw,nosuid,nodev,noatime master:15 - ext4 /dev/block/platform/msm_sdcc.1/by-name/sns rw,seclabel,noauto_da_alloc,errors=continue,data=ordered
980 965 259:4 / /persist-lg rw,nosuid,nodev,noatime master:16 - ext4 /dev/block/platform/msm_sdcc.1/by-name/drm rw,seclabel,noauto_da_alloc,errors=continue,data=ordered
981 965 259:6 / /mpt rw,nosuid,nodev,noatime master:17 - ext4 /dev/block/platform/msm_sdcc.1/by-name/mpt rw,seclabel,noauto_da_alloc,errors=continue,data=ordered
982 965 259:9 / /cache rw,nosuid,nodev,noatime master:18 - ext4 /dev/block/platform/msm_sdcc.1/by-name/cache rw,seclabel,noauto_da_alloc,errors=continue,data=ordered
983 965 179:19 / /persist rw,nosuid,nodev,noatime master:19 - ext4 /dev/block/platform/msm_sdcc.1/by-name/persist rw,seclabel,noauto_da_alloc,errors=continue,data=ordered
984 965 179:1 / /firmware ro,relatime master:20 - vfat /dev/block/platform/msm_sdcc.1/by-name/modem ro,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=cp437,iocharset=iso8859-1,shortname=lower,errors=remount-ro
985 965 259:10 / /cust ro,nosuid,nodev,relatime master:21 - ext4 /dev/block/platform/msm_sdcc.1/by-name/cust ro,seclabel,noauto_da_alloc,data=ordered
986 965 0:18 / /storage/emulated rw,nosuid,nodev,relatime - tmpfs tmpfs rw,seclabel,size=1447296k,nr_inodes=84929,mode=050,gid=1028
987 965 0:19 / /mnt/shell/emulated rw,nosuid,nodev,relatime master:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other
988 965 0:19 /0 /storage/emulated/legacy rw,nosuid,nodev,relatime master:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other
989 986 0:19 /0 /storage/emulated/0 rw,nosuid,nodev,relatime master:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other
990 989 0:19 /obb /storage/emulated/0/Android/obb rw,nosuid,nodev,relatime master:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other
991 986 0:19 /0 /storage/emulated/legacy rw,nosuid,nodev,relatime master:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other
992 991 0:19 / obb / storage / emulated / legacy / Android / obb rw, nosuid, nodev, master-сервер relaytime:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other
Не могу найти, чем параметры монтирования / storage / emulated / 0 отказывают в изменении разрешения. Или это должна быть политика?
2 ответа
Поскольку точки монтирования в / storage управляются через FUSE, они не поддерживают редактирование прав доступа и прав доступа.
Чтобы изменить разрешения и / или владельца для файла, хранящегося во внутренней SD, вам нужно перейти к /data/media/0 (при условии, что у вас есть права доступа root) и выполнить chmod или chown оттуда. Только тогда вы сможете запустить указанный скрипт, и только по указанному выше пути.
Для внешнего SD выполните ту же процедуру, но используйте /mnt/media_rw/sdcard1 (или соответствующую папку в /mnt/media_rw/) вместо внутреннего пути SD.
Проблема заключалась в том, что эмуляция /0 не является настоящей файловой системой. Это какая-то "эмуляция файловой системы". Реальная файловая система смонтирована как /data/0