/dev/block/bootdevice/by-name目录下的链接是怎么创建的
时间: 2023-07-05 13:27:09 浏览: 576
在Android系统启动过程中,/dev/block/bootdevice/by-name目录下的符号链接是由init进程动态创建的。具体来说,init进程会根据设备树和分区表信息来确定各个分区的设备节点名称,并将这些名称与各个分区的名称进行映射,创建相应的符号链接。
具体的实现方式是通过脚本文件来完成的。在Android系统启动过程中,init进程会执行一系列脚本文件,其中就包括创建/dev/block/bootdevice/by-name目录下的符号链接。
这些脚本文件通常存储在init.rc文件中,它们会在系统启动时由init进程按照一定的顺序执行。例如,在高通平台上,init.rc文件中会包含类似下面的代码:
```
# mount bootdevice partitions
on post-fs
mount_all /fstab.qcom
symlink /dev/block/bootdevice/by-name/userdata /dev/block/bootdevice/by-name/data
symlink /dev/block/bootdevice/by-name/misc /dev/block/bootdevice/by-name/apdp
symlink /dev/block/bootdevice/by-name/modem /dev/block/bootdevice/by-name/mdm
...
```
这个脚本文件会在文件系统挂载完成后执行,调用mount_all命令来挂载所有分区,然后创建各个分区的符号链接。例如,上面的代码会创建名为userdata、misc、modem等符号链接,映射到相应的设备节点上。
需要注意的是,不同的Android平台和设备可能会有不同的分区表和设备节点名称,因此/dev/block/bootdevice/by-name目录下的符号链接可能会因硬件设备的不同而有所差异。
阅读全文