【Android】init 进程 -- ramdisk_node_list

一、简介

system/core/rootdir/ramdisk_node_list文件在Android中扮演着重要的角色,它包含了根文件系统中ramdisk部分的所有节点列表。这些节点可能包括设备节点、目录节点和文件节点。

ramdisk是一个临时文件系统,它通常被用作Android启动过程中的初始文件系统。在Android启动过程中,内核会将ramdisk加载到内存中,并将其挂载到根文件系统中。ramdisk通常包含了启动Android系统所需的驱动程序、库和应用程序。

system/core/rootdir/ramdisk_node_list文件的作用是告诉内核哪些节点应该被添加到ramdisk中。该文件中的每行都包含了一个节点的路径和类型。例如,以下行将创建一个名为“/dev/ttyS0”的设备节点:

/dev/ttyS0 dev

以下行将创建一个名为“/system/bin/sh”的文件节点:

/system/bin/sh file

以下行将创建一个名为“/system/etc”的目录节点:

/system/etc dir

system/core/rootdir/ramdisk_node_list文件通常是由Android构建系统自动生成的。构建系统会根据Android系统的配置生成该文件。

二、system/core/rootdir/ramdisk_node_list 内容

dir dev 0755 0 0
nod dev/null 0600 0 0 c 1 3
nod dev/console 0600 0 0 c 5 1

第一行:

dir dev 0755 0 0
  • dir:表示这是一个目录节点。
  • dev:表示这是一个设备节点。
  • 0755:表示该节点的权限是0755,即该节点的所有者具有读、写和执行权限,该节点所在组的成员具有读和执行权限,其他用户具有执行权限。
  • 0:表示该节点的所有者是root用户。
  • 0:表示该节点所在组是root组。

第二行:

nod dev/null 0600 0 0 c 1 3
  • nod:表示这是一个普通文件节点。
  • dev/null:表示该节点的路径是/dev/null。
  • 0600:表示该节点的权限是0600,即该节点的所有者具有读和写权限,其他用户没有任何权限。
  • 0:表示该节点的所有者是root用户。
  • 0:表示该节点所在组是root组。
  • c:表示这是一个字符设备节点。
  • 1:表示该节点的主设备号是1。
  • 3:表示该节点的次设备号是3。

第三行:

nod dev/console 0600 0 0 c 5 1
  • nod:表示这是一个普通文件节点。
  • dev/console:表示该节点的路径是/dev/console。
  • 0600:表示该节点的权限是0600,即该节点的所有者具有读和写权限,其他用户没有任何权限。
  • 0:表示该节点的所有者是root用户。
  • 0:表示该节点所在组是root组。
  • c:表示这是一个字符设备节点。
  • 5:表示该节点的主设备号是5。
  • 1:表示该节点的次设备号是1。

总的来说,以上三行内容描述了三个节点:一个名为“dev”的目录节点、一个名为“/dev/null”的字符设备节点和一个名为“/dev/console”的字符设备节点。这些节点在Android启动过程中会被添加到ramdisk中。

在rootdir/ramdisk_node_list中增加一句nod dev/urandom 0600 0 0 c 1 9意味着在ramdisk中添加一个名为“/dev/urandom”的字符设备节点。

  • nod:表示这是一个普通文件节点。
  • dev/urandom:表示该节点的路径是/dev/urandom。
  • 0600:表示该节点的权限是0600,即该节点的所有者具有读和写权限,其他用户没有任何权限。
  • 0:表示该节点的所有者是root用户。
  • 0:表示该节点所在组是root组。
  • c:表示这是一个字符设备节点。
  • 1:表示该节点的主设备号是1。
  • 9:表示该节点的次设备号是9。

dev/urandom 是一个伪随机设备节点,它可以提供高质量的随机数据。dev/urandom 通常用于加密、密码生成和随机数生成等场景。

在Android系统中,dev/urandom 通常由Linux内核的随机数生成器(RNG)提供支持。RNG使用各种环境噪声(如键盘输入、鼠标移动和网络流量)来生成随机数据。

在ramdisk中添加dev/urandom节点可以使Android系统在启动过程中就可以访问高质量的随机数据。这对于某些应用程序(如加密应用程序)来说非常重要。

需要注意的是,dev/urandom节点只能提供有限数量的随机数据。如果应用程序需要大量随机数据,则应该使用其他方法来生成随机数据,例如使用硬件随机数生成器(RNG)。

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值