我目前有一个Android应用程序通过USB OTG连接到设备。
通信使用libusb 1.0.9完成,并且对于api级别(由于性能问题,通信必须是本地的)
在Android L下运行应用程序时,我从libusb_init(NULL)得到以下错误:

type=1400 audit(0.0:107): avc: denied { read } for name="usb" dev="tmpfs" ino=24433 scontext=u:r:untrusted_app:s0 tcontext=u: object_r:usb_device:s0 tclass=dir
A/libc(12605): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 12605 (mapp.sdk.sample)

我正在Nexus 5上使用最新的NDK 10c编译libusb 1.0.9。
我认为这不是ART运行时问题,因为该应用程序可在启用了ART而不是Dalvik的Android 4.4.4上运行。
有人熟悉这个问题吗? (this看起来很相似)
可以和PIE相关吗?

谢谢你。

最佳答案

我上传了一个有效的解决方案。
它基于libusb 1.0.9并与Lollipop一起使用。

https://github.com/Gritzman/libusb

关于java - Android L 5.0和libusb 1.0.9-没有权限?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27111533/

10-12 14:24