Article / 2026/05/29

实现自己的HAL-14 控制led(内核设备节点的访问权限的动态配置),从app 到 hal 到底层内核kernel层的驱动 的实现(六)

<center <img style="borderradius: 0.3125em; boxshadow: 0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.08)...

内核设备节点的访问权限的动态配置


每列代表的含义
> ls /dev -l

hello_led访问权限
  • hello_led访问权限 的访问权限为 crw-rw---- 说明是在root用户下才可读写,对于我们的app我们不是root用户所以不具备读写操作
  • 那么我们需要对该节点设置用户可以访问的权限
  • android 源码中给我们提供相关的访问配置
  • 修改Z:\itop-3399_8.1\system\core\rootdir 目录下的 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/hello_led            0666   root       root
##############在这里############################
# Make HW RNG readable by group system to let EntropyMixer read it.
/dev/hw_random            0440   root       system
/dev/ashmem               0666   root       root
/dev/binder               0666   root       root
/dev/hwbinder             0666   root       root
/dev/vndbinder            0666   root       root
  • 修改完后编译booting 镜像
  • 刷到开发版

ls /dev -l


hello_led访问权限
  • crw-rw-rw- 1 root root 10, 59 2021-06-29 09:09 hello_led
  • 用户的访问权限为 rw 可读可写 这时就不需要去chmod 0666 /dev/hello_led

Giscus 未启用:请在 src/site.config.ts 中配置 repoId 与 categoryId。