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

在Android上尝试使用777读取文件时,权限被拒绝,android,android-file,Android,Android File,我在/data/data中有一个文件: # ls -la /data/data/com.package/files/file.json -rwxrwxrwx u0_a104 u0_a104 我试图从不同的UID(1000,系统UID)读取它: 以及获取“EACCES(权限被拒绝)” API级别为21 为什么,如果我在上面设置了777个权限 UPD。我可以从adb读取uid=2000(非根目录)的文件。这是应用程序级权限,您无法使用权限访问,如果您的设备已根目录,则您可以使用它,否则您无法使用

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

# ls -la /data/data/com.package/files/file.json
-rwxrwxrwx u0_a104  u0_a104
我试图从不同的UID(1000,系统UID)读取它:

以及获取“EACCES(权限被拒绝)”

API级别为21

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


UPD。我可以从adb读取uid=2000(非根目录)的文件。

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

这是应用程序级权限,您无法使用权限访问,如果你的设备是根设备,那么你可以使用它,否则你就不能使用它。

好吧,我发现问题出在SELinux中。禁用SELinux后,一切正常。

我发现问题出在SELinux中。禁用SELinux后,一切正常。

您的设备是否根目录?@SanyamJain是的,但我需要以java.File的形式打开它。您的应用程序是系统应用程序吗?我正在从Xposed模块读取它,它使用系统uid运行。您的设备是否根目录?@SanyamJain是的,但我需要以java.File的形式打开它。您的应用程序是系统应用程序吗?我正在从Xposed模块读取它,它使用系统uid运行。它不是仅在默认Linux文件系统权限下处理的吗?adb的工作方式与根设备相同。这就是为什么您可以访问最后,这是SELinux行为。它不是仅在默认的Linux文件系统权限下处理的吗?adb的工作方式与根设备相同。这就是为什么您可以访问最终,这是SELinux行为。
new FileInputStream(FILE)