我在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'
,但这没什么区别。
答案 0 :(得分:0)
我对这方面的了解不多,但看来SELinux正在干涉。如果你禁用它:
# In a "su" adb shell
printf 0 > /sys/fs/selinux/enforce
...您可以体验以root身份运行stat
时看到的权限。
这可能不是最佳解决方案,但它可以让您执行所需的操作。如果您正在开发除了非常独特的用户群之外的任何东西,我建议您阅读SELinux。