SELinux阻止android应用读取串行设备文件

时间:2018-08-01 07:02:49

标签: android device-driver selinux cdc

我正在使用Galaxy S5(G900H),并且正在使用cdc-acm驱动程序通过USB将串行设备连接到它,并尝试从我的android应用程序中读取它。 它可以在其他设备(较旧和较新的设备)上正常工作。

连接设备时,会创建设备文件/dev/ttyACM0,但是尝试从中读取时,会收到错误消息Permission denied。 在运行setenforce 0并将SELinux设置为“允许”模式时-一切正常,应用程序成功读取了设备文件。

dmesg说:

cdc_acm 2-1:1.0: usb_probe_interface
cdc_acm 2-1:1.0: usb_probe_interface
cdc_acm 2-1:1.0: This device cannot do calls on its own. It is not a modem.
cdc_acm 2-1:1.0: ttyACM0: USB ACM device

我尝试使用audit2allow制定新策略,但是找不到用于创建“ allow”规则的任何“拒绝”消息。

是否可以通过我的应用程序使用设备文件而无需将SELinux设置为宽松?我可以编辑内核并根据需要创建一个新内核,但是我真的不愿意。

谢谢!

0 个答案:

没有答案