掌桥专利:专业的专利平台
掌桥专利
首页

一种烧录镜像文件生成方法

文献发布时间:2023-06-19 11:57:35


一种烧录镜像文件生成方法

技术领域

本发明涉及嵌入式操作系统技术领域,尤其涉及一种烧录镜像文件生成方法。

背景技术

针对andriod系统的嵌入式便携设备,生成系统烧录镜像有如下两种方式:

方式一、先对某一台设备升级以确认版本,再把这太升级OK的设备中的eMMC存储器拆下来,然后通过第三方的烧录器把eMMC存储器中的内容读取出来。

方式二、先对某一台设备升级以确认版本,通过外置TF或SD卡启动一个小的linux系统,然后在这个小linux系统中把eMMC中的数据读取出来存储。

上述两种方式均需对相关设备进行改修,步骤繁多,效率低下。

因此,现有技术有待进一步改进。

发明内容

本发明提供一种烧录镜像文件生成方法,旨在解决现有技术中的缺陷,实现无需对相关设备进行改修即可实现烧录镜像文件的生成。

为达到上述目的,本发明所采取的技术方案为:

本发明提供一种烧录镜像文件生成方法,包括:

步骤1、获取目标存储器的第一容量;

步骤2、对源操作系统进行编译,获得分区表文件、各分区的原始包文件;

步骤3、根据所述分区表文件,生成与所述第一容量相同的模拟磁盘;

步骤4、读取所述各分区的原始包文件进行解析,获取所述原始包文件的文件名及属性,以预设方式将所述各分区的原始包文件写入到模拟磁盘生成烧录镜像文件。

具体地,所述步骤3的包括:

步骤3-1、在编译系统中生成一个模拟镜像文件,所述模拟镜像文件的容量与所述第一容量相等、数据内容为0;

步骤3-2、读取所述分区表文件,获取各分区的属性信息;

步骤3-3、将所述分区表文件覆盖至模拟镜像文件,生成模拟磁盘。

具体地,所述步骤3-1包括:

步骤3-1-1、判断模拟镜像文件是否存在,是则打开,否则进入下一步;

步骤3-1-2、根据所述第一容量设置模拟镜像文件的大小;

步骤3-1-3、设置所述模拟镜像文件的所有字节的值为0;

具体地,所述步骤3-3包括:

步骤3-3-1、打开所述模拟镜像文件;

步骤3-3-2、打开所述分区表文件;

步骤3-3-3、将所述分区表文件从所述模拟镜像文件起始位置写入;

步骤3-3-4、对所述模拟镜像文件进行GPT分区格式化。

具体地,所述步骤4包括:

步骤4-1、判断所述原始包文件是否为压缩文件,是则进行解压并进入下一步,否则直接进入下一步;

步骤4-2、根据所述原始包文件的文件名,所述分区表的索引属性中检索,获取所述原始包文件在所述模拟磁盘的开始扇区位置、结束扇区的位置,计算出所述原始包文件对应的分区的最大空间;

步骤4-3、读取所述原始包文件的大小,判断是否小于或等于所述最大空间,是则进入下一步,否则判断所述原始包文件为非法文件,结束操作;

步骤4-4、将所述原始包文件写入所述模拟磁盘对应的分区。

进一步地,在所述步骤4之后还包括:

步骤5、将目标设备与存储所述镜像文件的设备连接;

步骤6、启动所述目标设备,进入最小系统;

步骤7、存储设备通过预设工具将所述镜像文件写入到所述目标设备的存储器中;

步骤8、对所述目标设备重新上电,检查所述镜像文件的功能是否完整,是则判定所述镜像文件通过验证,否则判定所述镜像文件未通过验证。

具体地,所述步骤7包括:

步骤7-1、判断所述镜像文件的大小是否超过所述预设工具能识别的范围,是则进入下一步,否则通过预设工具将所述镜像文件写入到所述目标设备的存储器中;

步骤7-2、将所述镜像文件进行分割,生成子镜像文件,按照预设的命名规则进行命名,所述子镜像文件的大小不超过所述预设工具能识别的最大值;

步骤7-3、按照各所述子镜像文件的大小和名称顺序,对所述目标设备的存储器的写入位置建立索引表;

步骤7-4、当所述目标设备接收到所述子镜像文件后,通过所述索引表确定所述子镜像文件应写入的起止位置;

步骤7-5、将所述子镜像文件写入到所述起止位置。

具体地,所述分区表为GPT。

本发明的有益效果在于:本发明通过对源操作系统进行编译,获得分区表文件、各分区的原始包文件,并根据分区表文件,生成与第一容量相同的模拟磁盘,然后读取各分区的原始包文件进行解析,获取原始包文件的文件名及属性,以预设方式将各分区的原始包文件写入到模拟磁盘生成烧录镜像文件,实现了无需对相关设备进行改修即可实现烧录镜像文件的生成。

附图说明

图1是本发明的烧录镜像文件生成方法的流程示意图。

具体实施方式

下面结合附图具体阐明本发明的实施方式,附图仅供参考和说明使用,不构成对本发明专利保护范围的限制。

实施例1

本实施例提供一种烧录镜像文件生成方法,包括:

步骤1、获取目标存储器的第一容量。

所述目标存储器是指要将烧录进行文件写入的存储器(例如eMMC、USF等)。

步骤2、对源操作系统进行编译,获得分区表文件、各分区的原始包文件。

在具体实施时,通过Ubuntu系统下的编译服务器,对用来制作烧录镜像文件的linux或安卓等操作系统进行编译,从而得到相应的分区表文件、各分区的原始包文件。

分区表是一个描述了各分区的名字、位置、大小等属性的文件。

在本实施例中,所述分区表为GPT(GUID Partition Table,意即“全局唯一标识分区列表”)。

各分区的原始包文件因为实际编译的方式而有所不同。在本实施例中,所述各分区的原始包文件包括:u-boot.bin、boot.img、dtb.img、system.img、userdata.img、vbmeta.img、vendor.img。

一个原始包文件对应一个分区,即有多少个原始包,分区表中就包含多少个分区。

步骤3、根据所述分区表文件,生成与所述第一容量相同的模拟磁盘。

步骤4、读取所述各分区的原始包文件进行解析,获取所述原始包文件的文件名及属性,以预设方式将所述各分区的原始包文件写入到模拟磁盘生成烧录镜像文件。

所述属性包括是否压缩、文件大小等,所述预设方式为二进制文件流。

实施例2

与实施例1不同的是,本实施例所述步骤3的一种具体方法,包括:

步骤3-1、在编译系统中生成一个模拟镜像文件,所述模拟镜像文件的容量与所述第一容量相等、数据内容为0。

在本实施例中,所述模拟镜像文件的格式为img或者iso。

在本实施例中,所述步骤3-1包括:

步骤3-1-1、判断模拟镜像文件是否存在,是则打开,否则进入下一步;

步骤3-1-2、根据所述第一容量设置模拟镜像文件的大小;

步骤3-1-3、设置所述模拟镜像文件的所有字节的值为0;

步骤3-2、读取所述分区表文件,获取各分区的属性信息。

所述属性信息包括各分区的UUID、分区名字、开始扇区、结束扇区等。

步骤3-3、将所述分区表文件覆盖至模拟镜像文件,生成模拟磁盘。

在本实施例中,所述步骤3-3包括:

步骤3-3-1、打开所述模拟镜像文件;

步骤3-3-2、打开所述分区表文件;

步骤3-3-3、将所述分区表文件从所述模拟镜像文件起始位置写入;

步骤3-3-4、对所述模拟镜像文件进行GPT分区格式化。

实施例3

与实施例1不同的是,本实施例所述步骤4的一种具体方法,包括:

步骤4-1、判断所述原始包文件是否为压缩文件,是则进行解压并进入下一步,否则直接进入下一步;

步骤4-2、根据所述原始包文件的文件名,所述分区表的索引属性中检索,获取所述原始包文件在所述模拟磁盘的开始扇区位置、结束扇区的位置,计算出所述原始包文件对应的分区的最大空间;

步骤4-3、读取所述原始包文件的大小,判断是否小于或等于所述最大空间,是则进入下一步,否则判断所述原始包文件为非法文件,结束操作;

步骤4-4、将所述原始包文件写入所述模拟磁盘对应的分区。

实施例4

与实施例1不同的是,本实施例在所述步骤4之后还包括:

步骤5、将目标设备与存储所述镜像文件的设备连接。

在具体实施时,通过有线(例如USB线)的方式或者无线方式将目标设备(需要烧录镜像文件的车机)与存储所述镜像文件的设备(例如PC机)建立连接。

步骤6、启动所述目标设备,进入最小系统。

步骤7、存储设备通过预设工具将所述镜像文件写入到所述目标设备的存储器中。

在本实施例中,所述预设工具为fastboot。

步骤8、对所述目标设备重新上电,检查所述镜像文件的功能是否完整,是则判定所述镜像文件通过验证,否则判定所述镜像文件未通过验证。

实施例5

与实施例4不同的是,本实施例所述步骤7的一种具体方法,包括:

步骤7-1、判断所述镜像文件的大小是否超过所述预设工具能识别的范围,是则进入下一步,否则通过预设工具将所述镜像文件写入到所述目标设备的存储器中。

步骤7-2、将所述镜像文件进行分割,生成子镜像文件,按照预设的命名规则进行命名,所述子镜像文件的大小不超过所述预设工具能识别的最大值。

在具体实施时,若存储所述镜像文件的设备安装的操作系统为Ubuntu,则通过如下命令进行分割:split-b kname uda。其中,k表示每个子镜像文件的大小,name表示原始包的文件名。

步骤7-3、按照各所述子镜像文件的大小和名称顺序,对所述目标设备的存储器的写入位置建立索引表。

步骤7-4、当所述目标设备接收到所述子镜像文件后,通过所述索引表确定所述子镜像文件应写入的起止位置。

步骤7-5、将所述子镜像文件写入到所述起止位置。

在具体实施时,可调用uboot自带的写数据命令(mmc write)将所述子镜像文件应写入的位置。

以上所揭露的仅为本发明的较佳实施例,不能以此来限定本发明的权利保护范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

相关技术
  • 一种烧录镜像文件生成方法
  • 一种集成镜像文件生成方法、测试方法和装置
技术分类

06120113117697