Android /storage/emulated/0 和 /data/media/0 不同的权限

Android /storage/emulated/0 and /data/media/0 different permissions

我有 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,relatime master:22 - 保险丝 /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other

找不到比 /storage/emulated/0 拒绝权限更改的挂载选项。还是一定是政治?

问题是 emulated/0 不是真正的文件系统。这是某种 "file system emulation"。真正的文件系统挂载为 /data/0

由于 /storage 下的挂载点是通过 FUSE 管理的,因此不支持权限和所有权编辑。

要更改存储在内部 SD 中的文件的权限 and/or 所有权,您必须导航到 /data/media/0(前提是您具有 root 权限),然后从那里执行 chmod 或 chown。只有这样,您才能启动所述脚本,并且只能从上述路径启动。

对于外部 SD,遵循相同的步骤,但使用 /mnt/media_rw/sdcard1(或 /mnt/media_rw/ 下的适当文件夹),而不是内部 SD 路径。