android mount原理解析

在一个块设备未按一定格式建立起文件系统的时候,设备上的文件和节点都还是不可访问的,即还不能按一定的路径名访问其中特定的节点或文件。只有把它安装到计算机系统的文件系统中的某个节点上,才能使设备上的文件和节点成为可访问的。经过安装以后,设备上的文件系统就成为整个文件系统的一部分,或者说一个子系统。最初时,整个系统中只有一个节点,就是整个文件系统的根节点,这个节点存在于内存中,而不在任何具体的磁盘设备上。系统在初始化时将一个根设备安装到根节点上,这个设备上的文件系统就成为整个系统中原始的、基本的文件系统。

此后,就可以由超级用户进程通过系统调用mount把其他子系统安装到已经存在的文件系统的空闲节点上,使整个文件系统得以扩展,当不再需要使用某个子系统时,通过系统调用umount把已经安装的设备拆卸下来

二、分区制作与烧写

1)创建文件系统的目录testmeta,以及目录下各个层级的文件。

2)使用mke2fs命令来建立格式化文件系统。

文件系统类型为ext4,每个区块大小为4096字节,设置分区为指定大小,生成testmeta.img空白镜像。

3)使用e2fsdroid命令来创建完整文件系统。

文件系统目录为testmeta,读取文件系统目录下各个层级的文件,写入到testmeta.img镜像的区块中,并建立起索引;

读取selinux策略文件,对文件系统目录下各个层级的文件匹配上相应的文件标签,写入到testmeta.img镜像中,

此机制确保分区文件的安全隔离;

对testmeta.img镜像进行哈希计算和签名,将摘要值和签名值存放到testmeta.img镜像中,以确保镜像的完整性和可靠性。

 

三、挂载

在Android系统根目录下创建testmeta文件夹

从ROM对应的testmeta分区位置读取Ext4文件格式testmeta.img镜像。解析testmeta.img镜像文件格式,从超级块中读取到testmeta.img镜像相关信息,包含文件系统的状态、文件系统类型、大小、区块数、索引节点数等。

将Ext4文件格式testmeta.img镜像挂载到testmeta文件夹节点下

 

https://github.com/antmicro/android-camera-hal

https://github.com/search?q=android+camera+hal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值