"许可被拒绝"尽管有所有需要的文件系统权限错误

时间:2016-11-03 19:57:43

标签: android permissions adb selinux

我在Android上,使用adb shell来解决我的应用与文件系统存在的问题。我在使用tinyalsa时遇到权限错误,因此我希望调查所涉及的目录。

cannot open device '/dev/snd/pcmC1D0c': Permission denied

如果我su然后stat路径中的每个项目,那么shell会告诉我以下权限:

/         (755/drwxr-xr-x)
/dev/     (755/drwxr-xr-x)
/dev/snd/ (755/drwxr-xr-x)

但是,如果我尝试stat /dev/snd而没有su,我会Permission denied

为什么会这样?我甚至试过su -c 'chmod -R a+rx /dev/snd',但这没什么区别。

1 个答案:

答案 0 :(得分:0)

我对这方面的了解不多,但看来SELinux正在干涉。如果你禁用它:

# In a "su" adb shell
printf 0 > /sys/fs/selinux/enforce

...您可以体验以root身份运行stat时看到的权限。

这可能不是最佳解决方案,但它可以让您执行所需的操作。如果您正在开发除了非常独特的用户群之外的任何东西,我建议您阅读SELinux。