2022-06-15 Android 热插拔设备节点/dev/ttyACM*、ttyUSB*权限修改,system\core\rootdir\ueventd.rc 实例-USB CDC ACM虚拟串口

一、一般usb设备插入后在dev/下面生成的节点是动态生成的,比如/dev/ttyACM0,虽然可以使用adb通过chmod修改权限,但是重启或设备热插拔后就会恢复,无法保存。

二、如何做到拔插USB设备,权限都是固定的权限的,修改的地方在system\core\rootdir\ueventd.rc

 三、实例验证,修改USB CDC ACM虚拟串口节点的权限。

     1、USB CDC设备
       通用串行总线(USB)通信设备(Communication devices)的定义由三个类组成:

       通信设备类(Communication Device Class, CDC):设备级定义,被主机用于识别(确定)含有几种不同类型接口的通信设备;
通信接口类(Communication Interface Class):定义了一种通用机制,该机制可被用来使能处于USB总线上的所有类型的通信服务,即USB通信设备的控制功能;
数据接口类(Data Interface Class):定义了一种通用机制,当一种数据不符合任何类的要求时,该机制使这种数据传输能通过USB块传输或同步传输类型在USB总线上进行,即通过USB块传输或同步传输类型去实现任何类型的数据传输的机制。
     2、USB CDC ACM(虚拟串口)
      CDC-ACM (Abstract Control Model 抽象控制模型)允许任何通信设备提供串行通信接口(例如发送和接收AT命令的调制解调器设备)。该设备类型是在PSTN(Public Switched Telephone Network)中定义的。
    CDC-ACM驱动程序将USB设备作为虚拟调制解调器或虚拟COM端口暴露给操作系统。驱动程序可以通过ACM(通过不同通道分离数据和AT命令)或通过串行仿真(按原样传递AT命令和作为数据流的一部分)发送数据和AT命令。

     3、在linux 的驱动,kernel\drivers\usb\class\cdc-acm.c

     4、拔插USB CDC ACM 设备的时候的打印log

      5、生成/dev/ttyACM0节点,查看/dev/ttyACM0节点的权限,是我们在ueventd.rc里面修改的权限。

四、参考文章

USB设备类型汇总 - 简书

Ueventd.rc对硬件设备访问权限处理_weixin_34212762的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_37858386/article/details/125293100