Read/Write 对安装在 Android Marshmallow 上的 USB 驱动器的权限

Read/Write permission on USB drive mounted on Android Marshmallow

我是 运行 有根 Android-6 Marshmallow 媒体盒。

我连接了一个外部 USB 驱动器,格式为 NTFS(我相信它是 NTFS。我设置它已经有很长时间了)。

驱动器安装为:

/mnt/media_rw/<15-digit-hex-number>

当前权限为rwxrwx--- (0x770)

我不知道发生了什么变化,但我以前可以WRITE 到那个 USB 驱动器。不再。现在只能 READ 了。同样,Android 文件管理器应用程序 Root Explorer 用于自由更改该顶级目录的权限(将其更改为 0x777) 以及它下面的文件和目录。再一次,不再。

按照其他地方的规定,我将适当的添加合并到以下系统文件中:

/system/etc/permissions/platform.xml

[ ... snip ... ]
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
    <group gid="sdcard_r" />
    <group gid="sdcard_rw" />
    <group gid="media_rw" />
</permission>

<permission name="android.permission.WRITE_MEDIA_STORAGE" >
    <group gid="sdcard_rw" />
    <group gid="media_rw" />
</permission>
[ ... snip ... ]

当我尝试写入访问该目录(意味着进入 USB 驱动器)时,我的权限被拒绝;以及当我使用 Root Explorer 放宽该目录的权限以获取访问权限时(也被拒绝)。

我没有升级 Android 或类似的东西。它刚刚停止工作。

有人对如何解决这个问题有什么建议吗?

提前谢谢你。

在我发布这个冗长的问题后不久,我偶然发现了这个问题。必须通过备用 path/route:

访问该挂载点
/storage/<15-digit-hex-number>

我相信发生的事情是,虽然访问该文件夹的特定应用程序以前可以通过指定的原始路径(在问题中)这样做,但 path/route 可能以某种方式 restrictive/special该应用程序突然开始遵守该限制(因此无法再通过该原始路径进行写入)。我刚刚通过查看写入同一位置的不同应用程序发现了这一点,并注意到它正在使用的备用 path/route(即上面的那个)。

如果您应该 运行 解决这个问题,请尝试从 /storage/ 开始路径遍历。

我遇到了同样的问题,我意识到即使是 root 用户也有从 USB 存储写入(甚至获取信息)的问题。

不幸的是,无论是否有 root,我都看不到 /storage/<15-digits> 文件夹。

我的应用实际上回退到 SAF,它允许 read/write 到外部存储(实际 SD 卡)并且它在 USB 存储上运行良好。但是它非常慢,而且路径绝对不是用户友好的!

深入研究发现,root 能够列出任何文件夹的文件,但无法使用直接路径获取有关特定文件或文件夹的信息!?

因此,我的解决方案(已针对外部存储实施)是将 USB 存储视为外部存储,并在必要时回退到 SAF(主要是将数据写入 USB 存储)。并且我调整了 root 以使用显示所有数据的文件列表(ls -l 的自定义版本),而不是尝试获取 files/directories.

的直接信息

'easiest' 获得对 USB 存储的完全访问权限因此是通过 SAF 文件系统。 root也可以,但是用起来花样百出!

在 Pixel 3 上测试运行Android带有 2019 年 2 月补丁的 Pie。

FWIWI,由于AndroidN,platform.xml不再定义这些权限,现在存储在packages.xml.