在 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后一切正常
我在 /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后一切正常