admin 管理员组文章数量: 1184232
.img
文件本质上是一个二进制文件,它逐字节地代表了一个分区或一个磁盘的内容。它的制作方法完全取决于您希望这个分区里
存放什么内容
。在嵌入式开发中,
.img
文件通常可以分为以下三大类,每一类的制作方法都不同。
类别一:文件系统镜像 (如
system.img
,
vendor.img
,
userdata.img
)
这类镜像是最复杂的,它内部包含了一个完整的、可以被操作系统挂载的文件系统(通常是 Linux 的 Ext4 格式),里面有成百上千个文件和目录。
核心思想 :将一个包含所有所需文件和目录的文件夹,转换成一个 Ext4 文件系统的二进制镜像。
制作源 :一个“暂存目录”(Staging Directory)。在编译过程中,系统会把所有属于这个分区的库、可执行文件、配置文件等都复制到这个目录下(例如
out/target/product/your_device/system/)。制作工具 :
mke2fs:这是一个标准的 Linux 工具,可以创建一个空的 Ext4 文件系统。simg2img/img2simg:用于在稀疏(Sparse)格式和原始(Raw)格式之间转换。稀疏格式可以跳过文件系统中的空白部分,从而大大减小镜像文件的体积。make_ext4fs:Android 系统中常用的一个专用工具,可以直接从一个目录创建 Ext4 格式的.img文件。-
自定义脚本 (如
mkuserimg.sh) :在复杂的编译系统中,通常会用一个脚本来封装上述工具的调用。
制作流程(简化版) :
- 计算大小 :根据暂存目录中所有文件的总大小,并加上一些预留空间,确定最终分区需要多大。
-
创建空镜像
:使用
dd或mke2fs创建一个指定大小、格式化为 Ext4 的空白镜像文件。 -
挂载镜像
:通过
mount命令将这个空白镜像文件挂载到一个临时目录。 - 复制文件 :将“暂存目录”下的所有内容复制到这个挂载点。
- 设置权限 :对复制进去的文件和目录设置正确的用户、用户组和读写执行权限(这非常重要)。
-
卸载镜像
:通过
umount命令卸载镜像。 -
(可选)
转换为稀疏格式
:使用
img2simg将原始镜像转换为稀疏格式,以减小体积。
在您的编译系统中,这一过程通常是自动化的。您只需要在
BoardConfig.mk
等文件中定义好分区大小 (
BOARD_SYSTEMIMAGE_PARTITION_SIZE
) 和文件列表,编译系统就会自动调用上述工具链来生成
system.img
。
类别二:原始数据镜像
这类镜像通常 不包含标准的文件系统 。它们更像是一个结构化的“数据块”,用于存储特定的配置信息、序列号、校准数据等。它们的格式是私有的,由读取它的程序来定义。这正是您之前一直在打包的类型。
版权声明:本文标题:Adobe Flash Player入门必学:制作文件系统镜像轻松指南 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1771698256a3547552.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论