在 Android 上尝试读取 777 文件时权限被拒绝

Permission denied while trying to read file with 777 on Android

我在 /data/data 中有一个文件:

# ls -la /data/data/com.package/files/file.json
-rwxrwxrwx u0_a104  u0_a104

我正在尝试从不同的 UID(1000,系统 UID)读取它:

new FileInputStream(FILE)

并获得 "EACCES (Permission denied)"。

API等级为21.

为什么,如果我在上面设置了 777 权限?

更新。我可以使用 uid = 2000(不是 root)从 adb 读取文件。

这是应用程序级别的权限,您无法访问使用权限,如果您的设备已root,则可以使用它,否则您将无法使用。

嗯,我发现问题出在 SELinux 中。关闭SELinux后一切正常