Android udev /dev 设备节点权限

介绍了Android系统中udev用于动态配置设备节点权限的过程。详细解释了ueventd.rc文件的作用及其如何帮助udev守护进程创建和管理/dev目录下的设备节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*************************************************************************
 *                  Android udev /dev 设备节点权限
 * 说明:
 *     现在的Linux系统设备节点权限一般都是通过动态配置,之前一直没找到具体
 * 在哪里配置的说明,这次在看参考书的时候发现ueventd.rc就是用来做这件事的。
 *
 *                                   2016-5-14 深圳 南山平山村 曾剑锋
 ************************************************************************/

一、参考文档:
    Embedded Android
        https://www.google.co.id/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0ahUKEwiWwcrbqtjMAhWDppQKHdhjBroQFgg5MAQ&url=http%3A%2F%2Fwww.staroceans.org%2Fkernel-and-driver%2F%255BEmbedded.Android(2013.3)%255D.Karim.Yaghmour.pdf&usg=AFQjCNHe5Ey14egLQXgmOpP-PGN510ALgA

二、原文:
    1. 页码:58
    2. 内容:
    udev events
    As I explained earlier, access to devices in Linux is done through nodes within the /dev directory. In the old days, Linux distributions would ship with thousands of entries in that directory to accommodate all possible device configurations. Eventually, though, a few schemes were proposed to make the creation of such nodes dynamic. For some time now, the system in use has been udev, which relies on runtime events generated by the kernel every time hardware is added or removed from the system.  In most Linux distributions, the handling of udev hotplug events is done by the udevd daemon. In Android, these events are handled by the ueventd daemon built as part of Android’s init and accessed through a symbolic link from /sbin/ueventd to /init. To know which entries to create in /dev, ueventd relies on the /ueventd.rc and /ueventd.<device_name>.rc files.

三、总结:
    之前遇到需要修改权限之类的事情,一般都是在init.rc中进行修改,那时候觉得挺奇怪的,因为一般会有专门给设备节点设置权限的文件,那里明显不是,但也没找到准确的地方,现在终于找到依据了。

 

### 修改或设置 Ubuntu 系统 `/dev` 目录权限 #### 配置特定设备文件权限 对于特定的设备文件,如串口设备 `/dev/ttyUSB0` 或其他类似资源,可以通过调整用户组成员资格来授予访问权限。查看目标设备当前的权限状态有助于理解需要做出哪些改变。 ```bash ls -l /dev/ttyUSB0 ``` 上述命令会显示该端口的具体属性,包括其所有者和所属群组等信息[^4]。 为了使普通用户能够操作这些受保护的硬件接口而不必每次都使用超级管理员身份,可以将对应的用户名加入到相应的用户组里: ```bash sudo usermod -aG dialout $USER ``` 此指令把当前登录账户添加到了 `dialout` 组中,从而允许对该类外设进行读写操作。不过需要注意的是,在完成这项改动之后可能需重新启动计算机才能生效。 #### 处理虚拟机加速模块 (`/dev/kvm`) 的权限问题 当遇到与 KVM 虚拟化技术有关联的问题时——比如尝试运行 Android 模拟器却无法获取足够的权限去接触内核级别的功能,则同样可通过管理用户组的方式来解决问题: ```bash sudo adduser $USER kvm ``` 这一步骤使得指定账号成为 `kvm` 用户组的一员,进而获得必要的控制权以正常运作依赖于 KVM 技术的应用程序[^3]。 #### 设置通用规则影响新创建的节点 如果希望某些类型的设备一旦被识别出来就自动赋予特定权限模式的话,那么就需要借助 udev 规则来进行更深层次定制了。编辑位于 `/etc/udev/rules.d/` 下的相关配置文档能实现这一目的;例如针对 USB 设备建立新的策略文件: ```bash echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"' | sudo tee /etc/udev/rules.d/99-usb-permissions.rules ``` 这里假设已知要监控的目标 USB 接口制造商 ID (即 xxxx),并将之设定为任何人均可读写的共享资源。当然也可以通过替换其中的关键字来自定义更加复杂的匹配条件以及期望达到的效果[^1]。 #### 总结 根据不同场景下的需求采取适当的方法来调整 Linux 文件系统的安全机制是非常重要的。无论是简单地变更现有对象的所有关系还是构建全新的事件触发逻辑,都应谨慎行事以免造成不必要的安全隐患。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值