android - SELinux 阻止 android 应用读取串行设备文件
问题描述
我正在使用 Galaxy S5 (G900H),我正在使用 cdc-acm 驱动程序通过 USB 将串行设备连接到它,并尝试从我的 android 应用程序中读取它。它在其他设备(旧的和新的)上运行良好。
连接设备时,/dev/ttyACM0
会创建设备文件,但尝试从中读取时收到错误消息Permission denied
。运行setenforce 0
SELinux 并将其设置为 Permissive 模式时 - 一切正常,应用程序成功读取设备文件。
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 制定新策略,但找不到任何用于创建“允许”规则的“拒绝”消息。
有没有办法通过我的应用程序使用设备文件而不将 SELinux 设置为允许?如果需要,我可以编辑内核并制作一个新内核,但我真的不想这样做。
谢谢!
解决方案
推荐阅读
- python - 当我在 pygame 中绘制图像时,我看不到我的图像,即使它与我的 python 脚本和脚本所需的其他 python 模块位于同一文件夹中
- python - TimeDistributed 具有发送到包裹层的奇数形状
- python - scipy中已知sigma的假设检验
- python - 在 Python 中添加一列与多列不包括 NAN 值
- c# - 绘制节点图形绘制 C#
- html - 我需要在 django 中使用 ajax 从数据库中提取数据
- java - 使用 OpenAPI 生成的客户端覆盖 basePath 后如何保留服务器 URL 的一部分
- java - 将 Apache CXF 客户端与代理一起使用
- css - 防止 svg 滑出视频播放器
- angularjs - 如何设置条件,以便在第一次和第二次鼠标点击之间有一个不大于 500 毫升的延迟