android文件系统挂载分析

参考 https://www.cnblogs.com/xiaolei-kaiyuan/p/5501104.html

我们知道android有很多分区,如"system","userdata","cache",他们是何时挂载的?如何挂载的?这个系列的文章进行分析。
这里介绍第一部分,android手机正常开机各分区的挂载。这里我们以mtk平台进行分析,高通与mtk差别不是很大。

我们知道kernel起来以后执行的第一个文件是init进程,init进程会根据init.rc的规则启动进程或者服务。init.rc通过"import /init.${ro.hardware}.rc"语句导入平台的规则。
device/mediatek/mt6735/init.mt6735.rc 
    on fs
         write /proc/bootprof "INIT:Mount_START"
         mount_all /fstab.mt6735
         exec /system/bin/tune2fs -O has_journal -u 10010 -r 4096 /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/userdata
         write /proc/bootprof "INIT:Mount_END"

mount_all是一条命令,/fstab.mt6735 是传入的参数
fstab.mt6735生成在out目录下 
    ./out/target/product/xxx/obj/FAKE/fstab.mt6735
    ./out/target/product/xxx/obj/FAKE/fstab.mt6735_intermediates/fstab.mt6735
    ./out/target/product/xxx/root/fstab.mt6735
    ./out/target/product/xxx/recovery/root/fstab.mt6735
生成这个文件的源文件位于./vendor/mediatek/proprietary/hardware/fstab/mt6735/ 

system/core/init/keywords.h

.....
   KEYWORD(mount_all,   COMMAND, 1, do_mount_all)

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

猜你喜欢

转载自blog.csdn.net/alifrank/article/details/82788975