[Android 基础] -- ueventd.rc 处理硬件设备权限和 android init 对其解析

ueventd.rc 对硬件设备访问权限处理

ueventd.rc:

/dev/null                 0666   root       root
/dev/zero                 0666   root       root
/dev/full                 0666   root       root
/dev/ptmx                 0666   root       root
/dev/tty                  0666   root       root
/dev/random               0666   root       root
/dev/urandom              0666   root       root
/dev/ashmem               0666   root       root
/dev/binder               0666   root       root

 ...                                  ...           ...             ...

Android 的每个目录下都有一个非常重要的文件 Android.mk,负责编译该目录下的代码。

system/core/init/android.mk 会生成一个叫 init 的可执行程序,它会被放在 / 下面,且同时会产生一个符号链接 /sbin/eventd,指向 /init。

Init 是一个脚本解释器,它会对目标系统下的两个文件解析:/init.rc、/init.xxx.rc(xxx 代表平台名)。

Init 在解析脚本的时候又启动了一个自己的进程,只是进程名变成了 ueventd。ueventd 顾名思义应该是接收 uevent 的守护进程,这里它的主要作用根据 uevent 是创建或删除 /dev/xxx(xxx 设备名),我们知道在 Linux 下面创建设备节点的接口 mknod,我们跟进去看看这个接口是在哪里调用的。

ueventd 有两个脚本需要解析,ueventd.rc,ueventd.xxx.rc 脚本,可以让客户设置 /dev 或 /sys 目录及子目录的权限

 

 

你可能感兴趣的:(Android基础)