我在安卓系统上,使用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)但是,如果我尝试在不使用su的情况下使用stat /dev/snd,则会得到Permission denied。
为什么会这样呢?我甚至尝试过su -c 'chmod -R a+rx /dev/snd',但这并没有什么区别。
发布于 2016-11-09 06:34:21
我对这方面的了解不多,但看起来是SELinux在干预。如果禁用它,请执行以下操作:
# In a "su" adb shell
printf 0 > /sys/fs/selinux/enforce当您以根用户身份运行stat时,...you可以体验到您看到的权限。
这可能不是最佳解决方案,但它将允许您执行所需的操作。如果您的开发对象不是非常庞大的用户群,我建议您阅读有关SELinux的文章。
https://stackoverflow.com/questions/40410190
复制相似问题