CN112486514B - eMMC烧录文件的制作方法、装置和计算机设备 - Google Patents

eMMC烧录文件的制作方法、装置和计算机设备 Download PDF

Info

Publication number
CN112486514B
CN112486514B CN202011364123.5A CN202011364123A CN112486514B CN 112486514 B CN112486514 B CN 112486514B CN 202011364123 A CN202011364123 A CN 202011364123A CN 112486514 B CN112486514 B CN 112486514B
Authority
CN
China
Prior art keywords
file
emmc
partition
burning
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011364123.5A
Other languages
English (en)
Other versions
CN112486514A (zh
Inventor
赖泳烽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Guangzhou Shikun Electronic Technology Co Ltd
Original Assignee
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Guangzhou Shikun Electronic Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Shiyuan Electronics Thecnology Co Ltd, Guangzhou Shikun Electronic Technology Co Ltd filed Critical Guangzhou Shiyuan Electronics Thecnology Co Ltd
Priority to CN202011364123.5A priority Critical patent/CN112486514B/zh
Publication of CN112486514A publication Critical patent/CN112486514A/zh
Application granted granted Critical
Publication of CN112486514B publication Critical patent/CN112486514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及烧录文件制作技术领域,揭示了一种Android eMMC烧录文件的制作方法,包括以下步骤:创建初始eMMC烧录文件,所述初始eMMC烧录文件为一空文件;Android***编译完成后,生成各个分区所需要的img镜像文件;获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址;将simg格式的img镜像文件转换为raw格式的img镜像文件;使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件。本发明提供的方法,解决了现有技术中需要硬件平台制作eMMC烧录文件,且制作方式低效、高成本、稳定性不高的技术问题。

Description

eMMC烧录文件的制作方法、装置和计算机设备
技术领域
本发明涉及烧录文件制作技术领域,特别涉及一种eMMC烧录文件的制作方法、装置和计算机设备。
背景技术
eMMC(Embedded Multi Media Card)是MMC协会订立、主要针对手机或平板电脑等产品的内嵌式存储器标准规格。由一个嵌入式存储解决方案组成,带有MMC(多媒体卡)接口、快闪存储器设备及主控制器。所有都在一个小型的BGA封装。接口速度高达每秒400MBytes,eMMC具有快速、可升级的性能。同时其接口电压可以是1.8V或者是3.3V。
Android方案传统的eMMC烧录bin制作的方式,首先需要通过U盘或者升级工具将软件升级到TV主板,然后在Android***中访问eMMC的数据并读取,将所有eMMC的所有数据保存到U盘的一个文件中,这个文件就是eMMC烧录文件。
此方式需要使用硬件平台,具有一定的限制性,制作时间周期长,并且比较容易因为U盘稳定性导致烧录文件制作出来后不能使用。因此该方法低效、高成本、稳定性不高。
发明内容
本发明的主要目的为提供一种Android eMMC烧录文件的制作方法,旨在解决现有技术中需要硬件平台制作eMMC烧录文件,且制作方式低效、高成本、稳定性不高的技术问题。
本发明提出一种Android eMMC烧录文件的制作方法,包括以下步骤:
创建初始eMMC烧录文件,所述初始eMMC烧录文件为一空文件;
Android***编译完成后,生成各个分区所需要的img镜像文件;
获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址;
将simg格式的img镜像文件转换为raw格式的img镜像文件;
使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件。
进一步地,所述使用Linux dd命令根据步骤所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件的步骤之后,还包括:
计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
进一步地,所述获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址的步骤,包括:
读取Boardconfig.mk里面各个分区大小的数据,得出size的数据;
根据分区大小和分区的顺序计算得出offset的数据,并根据offset的数据得到offset偏移地址;其中,所述分区的顺序通过分区挂载配置文件fstab得到。
进一步地,所述读取Boardconfig.mk里面各个分区大小的数据,得出size的数据的步骤,包括:
修改Boardconfig.mk里面分区镜像配置来修改分区大小size;
读取Boardconfig.mk里面各个分区大小的数据,得出size的数据。
进一步地,所述将simg格式的img镜像文件转换为raw格式的img镜像文件的步骤,包括:使用simg2img命令将simg格式的img镜像文件转换为raw格式的img镜像文件,其中,所述simg格式的img镜像文件包括vendor、system、odm、product。
进一步地,所述计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件的步骤,包括:通过linux的md5sum命令计算eMMC烧录文件的md5值,将最终的eMMC烧录文件压缩并将md5值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
本发明还提供了一种Android eMMC烧录文件的制作装置,包括:
创建模块,用于创建初始eMMC烧录文件,所述初始eMMC烧录文件为一空文件;
生成模块,用于Android***编译完成后,生成各个分区所需要的img镜像文件;
计算模块,用于获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址;
转换模块,用于将simg格式的img镜像文件转换为raw格式的img镜像文件;
拷贝模块,用于使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件。
进一步地,还包括:
压缩模块,用于计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名后,形成烧录器校验文件。
本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明的有益效果为:在Android***编译完成后,脚本获取每个分区的img镜像文件的分区大小size,并计算每个分区的img镜像的offset偏移地址,Linux dd命令根据步offset偏移地址,将每个分区的img镜像文件拷贝到烧录文件的对应起始位置,得到最终的eMMC烧录文件。从而使得本发明直接通过编译Android***之后可以利用脚本自动生成eMMC烧录文件,不需要硬件平台,相比传统方式需要搭建硬件平台和U盘,更加稳定、低成本。
附图说明
图1为本申请一实施例的方法流程示意图。
图2为本申请一实施例中步骤S2的拷贝结果示意图。
图3为本申请一实施例的装置结构示意图。
图4为本申请一实施例的计算机设备内部结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供了一种Android eMMC烧录文件的制作方法,在Android***ROM编译完成之后就可以利用脚本自动生成eMMC烧录文件,不需要硬件平台,相比传统方式需要搭建硬件平台和U盘,更加稳定、低成本。同时,制作烧录文件的时间短,编译完Android***后,平均只需要30s就能生成eMMC烧录文件,相比传统方式制作烧录文件需要30min以上,极大提高了效率。
参照图1,本发明提供的一种Android eMMC烧录文件的制作方法,包括以下步骤:
S1、创建初始eMMC烧录文件,所述初始eMMC烧录文件为一空文件;
S2、Android***编译完成后,生成各个分区所需要的img镜像文件;
S3、获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址;
S4、将simg格式的img镜像文件转换为raw格式的img镜像文件;
S5、使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件。
如上述步骤S1所述,创建初始eMMC烧录文件,制作开始时将其设置为空文件,使得后续能够不断的把对应的img镜像文件拷贝到这个烧录文件的对应位置,形成最终的eMMC烧录文件。
如上述步骤S2所述,Android***编译完成之后会生成各个分区所需要的img镜像文件,其中包括了recovery.img、boot.img、system.img、vendor.img等***镜像,以便后续对这些镜像文件进行相应的处理后拷贝到上述创建的空文件中。
如上述步骤S3所述,使用脚本获取每个分区进项文件的分区大小size,并根据分区大小size能够计算出每个分区镜像文件在初始eMMC烧录文件的offset偏移地址,以便后续能够将这些镜像文件拷贝到对应的位置。脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常是以文本(ASCⅡ)保存,只是在被调用时进行解释或者编译。
如上述步骤S4所述,使用脚本将simg格式的img镜像文件转换为raw格式的img镜像文件后,保证simg格式的img镜像文件在后续步骤中拷贝到烧录文件对应的位置时,其格式为raw格式的img镜像文件。
如上述步骤S5所述,Linux dd命令:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。根据前面得到的offset偏移地址,可以顺利的找到每个分区镜像文件的对应的位置,从而将每个分区的img镜像文件以及转换了格式的img镜像文件拷贝到对应的位置,得到最终的eMMC烧录文件。
offset是dd命令执行时的参数,在某一实例中,步骤S3中得到的结果如下述中的表格所示;如图2所示,脚本使用linuxdd命令按照下述表格中的分区信息,依次将各个img镜像文件拷贝到eMMC烧录文件的对应起始位置,最终得到的文件即eMMC烧录bin文件。如:system分区:dd if=system.img.raw of=EMMC.bin seek=2791309312oflag=seek_bytesconv=notruncbs=4096,其中,命令中的seek=2791309312,这个数据即下述表格中计算而来的system分区对应的偏移地址offset。
Android方案传统的eMMC烧录bin制作的方式,首先需要通过U盘或者升级工具将软件升级到TV主板,然后在Android***中访问eMMC的数据并读取,将所有eMMC的所有数据保存到U盘的一个文件中。
本发明中,首先,Android***编译完成之后会生成各个分区所需要的img镜像文件,其中包括了recovery.img、boot.img、system.img、vendor.img等***镜像,最后会将所有的img打包生成一个文件,但是此文件不能用于eMMC烧录使用。但是,通过本发明的方法可以在Android***编译完成之后利用脚本直接生成eMMC烧录文件用于eMMC烧录使用,不需要硬件平台,并且提高了Android方案TV板卡烧录文件制作的效率,减少了硬件成本,并提高稳定性,解决传统方式低效、高成本、稳定性不高的缺点。
在一个实施例中,所述使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件的步骤S5之后,还包括:
S6、计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
如上述步骤S6所述,使用脚本来计算最终的eMMC烧录文件的CRC校验值。最终得到的烧录器校验文件为用于量产烧录前在烧录器检验的文件。生成校验值的目的是为了保证了文件在网络传输、拷贝等操作下可能造成的数据丢失等,通过比较生产前使用烧录器计算的校验值和最开始制作的校验值比较,如果一致说明烧录文件是正确的,如果不一致,有可能是因为传输过程出现了问题,可以降低风险。
在一个实施例中,所述Android***编译完成后,生成各个分区所需要的img镜像文件的步骤S3,具体包括:
S31、读取Boardconfig.mk里面各个分区大小的数据,得出size的数据。
S32、根据分区大小和分区的顺序计算得出offset的数据,并根据offset的数据得到offset偏移地址;其中,所述分区的顺序通过分区挂载配置文件fstab得到。
如上述步骤S31和步骤S32所述,分区大小的数据可以直接读取,而读取size数据后可以计算得到offset的数据,进而得出offset偏移地址,使得后续拷贝过程中可以顺利的找到各个区分镜像文件的对应位置。
分区排布的顺序取决于分区挂载配置文件fstab,offset的数据可以根据分区大小和分区的顺序计算得出,分区的大小时前文提到的Boardconfig.mk里面的参数配置所确定的,需要计算的是每个分区的偏移地址,这个文件应该在最终制作出来的烧录文件的哪一个位置。如第一个分区的偏移地址是0,第二个分区的偏移地址为第一个分区的大小加上第一个分区与第二个分区之间的保留空间大小;第三个分区的偏移地址为第一个分区的大小+第一个分区到第二个分区的保留空间+第二个分区的大小+第二个分区到第三个分区的保留空间大小,以此类推。其中,保留空间的大小不定,不同的芯片厂商在设计上不同。
某一结果如下表所示:
id partition offset size
0 bootloader 0 2097152
0 unifykey 37748736 262144
0 _aml_dtb 41943040 524288
1 cache 113246208 0x46000000
2 env 1296039936 8388608
6 logo 1312817152 0x800000
7 recovery 1329594368 0x1800000
8 misc 1363148800 0x800000
9 dtbo 1379926016 0x800000
10 cri_data 1396703232 0x800000
11 param 1413480448 0x1000000
12 boot 1438646272 0x1000000
13 rsv 1463812096 0x1000000
14 metadata 1488977620 0x1000000
15 vbmeta 1514143744 0x200000
16 tee 1524629504 0x2000000
17 vendor 1566572544 0x40000000
18 odm 2648702976 0x8000000
19 system 2791309312 0x40000000
20 product 3873439744 0x8000000
21 factorydata 4016046080 0x600000
22 data 4129292288 0xffffffff
在一个实施例中,所述读取Boardconfig.mk里面各个分区大小的数据,得出size的数据的步骤S31之前,还可以通过修改Boardconfig.mk里面分区镜像配置来修改分区大小size,得到其步骤为:
S30、修改Boardconfig.mk里面分区镜像配置来修改分区大小size。
S31、读取Boardconfig.mk里面各个分区大小的数据,得出size的数据。
S32、根据分区大小和分区的顺序计算得出offset的数据,并根据offset的数据得到offset偏移地址;其中,所述分区的顺序通过分区挂载配置文件fstab得到。
如上述步骤S30、步骤S31和步骤S32所述,分区大小的数据可以直接读取,也可以修改后在进行读取,为的是将各个分区的大小根据不同平台的需求来配置,而读取size数据后可以计算得到offset的数据,进而得出offset偏移地址,使得后续拷贝过程中可以顺利的找到各个区分镜像文件的对应位置。
在Android***中,可以通过修改Boardconfig.mk里面分区镜像配置,来修改分区的大小,比如将system分区大小设置为1G:BOARD_SYSTEMIMAGE_PARTITION_SIZE:=1073741824(16进制就是0x40000000)。各个分区的大小都是可以根据不同平台的需求来配置,而脚本读取的数据来源就是这部分数据。
在一个实施例中,所述将simg格式的img镜像文件转换为raw格式的img镜像文件的步骤S4,包括:
使用simg2img命令将simg格式的img镜像文件转换为raw格式的img镜像文件,其中,所述simg格式的img镜像文件包括vendor、system、odm、product。
其中,只有vendor、system、odm、product这几个分区的镜像文件是simg格式,脚本中转换使用的是simg2img命令,这个是Android原生带有的工具,可以将simg格式的分区镜像文件转换为raw格式的原始分区数据;命令如:simg2img system.imgsystem.raw.img。
在一个实施例中,所述计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件的步骤S6,包括:
通过linux的md5sum命令计算eMMC烧录文件的md5值;将最终的eMMC烧录文件压缩并将md5值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
计算校验值一般是计算eMMC烧录文件的md5值,只需要通过linux的md5sum命令即可计算;如:md5sum package.img|cut-d""-f1,可以获取该文件的校验值。
如图3所示,本发明还提供了一种Android eMMC烧录文件的制作装置,包括:
创建模块1,用于创建初始eMMC烧录文件,所述初始eMMC烧录文件为一空文件。
生成模块2,用于Android***编译完成后,生成各个分区所需要的img镜像文件。
计算模块3,用于获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址。
转换模块4,用于将simg格式的img镜像文件转换为raw格式的img镜像文件。
拷贝模块5,用于使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件。
如上述创建模块1,创建初始eMMC烧录文件,制作开始时将其设置为空文件,使得后续能够不断的把对应的img镜像文件拷贝到这个烧录文件的对应位置,形成最终的eMMC烧录文件。
如上述生成模块2,Android***编译完成之后会生成各个分区所需要的img镜像文件,其中包括了recovery.img、boot.img、system.img、vendor.img等***镜像,以便后续对这些镜像文件进行相应的处理后拷贝到上述创建的空文件中。
如上述计算模块3,使用脚本获取每个分区进项文件的分区大小size,并根据分区大小size能够计算出每个分区镜像文件在初始eMMC烧录文件的offset偏移地址,以便后续能够将这些镜像文件拷贝到对应的位置。脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常是以文本(ASCⅡ)保存,只是在被调用时进行解释或者编译。
如上述转换模块4,使用脚本将simg格式的img镜像文件转换为raw格式的img镜像文件后,保证simg格式的img镜像文件在后续步骤中拷贝到烧录文件对应的位置时,其格式为raw格式的img镜像文件。
如上述拷贝模块5,Linux dd命令:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。根据前面得到的offset偏移地址,可以顺利的找到每个分区镜像文件的对应的位置,从而将每个分区的img镜像文件以及转换了格式的img镜像文件拷贝到对应的位置,得到最终的eMMC烧录文件。
拷贝模块5中,offset是dd命令执行时的参数,在某一实例中,计算模块中得到的结果如下述中的表格所示;如图2所示,脚本使用linuxdd命令按照下述表格中的分区信息,依次将各个img镜像文件拷贝到eMMC烧录文件的对应起始位置,最终得到的文件即eMMC烧录bin文件。如:system分区:dd if=system.img.raw of=EMMC.bin seek=2791309312oflag=seek_bytesconv=notruncbs=4096,其中,命令中的seek=2791309312,这个数据即下述表格中计算而来的system分区对应的偏移地址offset。
Android方案传统的eMMC烧录bin制作的方式,首先需要通过U盘或者升级工具将软件升级到TV主板,然后在Android***中访问eMMC的数据并读取,将所有eMMC的所有数据保存到U盘的一个文件中。
本发明中,首先,Android***编译完成之后会生成各个分区所需要的img镜像文件,其中包括了recovery.img、boot.img、system.img、vendor.img等***镜像,最后会将所有的img打包生成一个文件,但是此文件不能用于eMMC烧录使用。但是,通过本发明的方法可以在Android***编译完成之后利用脚本直接生成eMMC烧录文件用于eMMC烧录使用,不需要硬件平台,并且提高了Android方案TV板卡烧录文件制作的效率,减少了硬件成本,并提高稳定性,解决传统方式低效、高成本、稳定性不高的缺点。
在一个实施例中,还包括压缩模块,用于脚本计算eMMC烧录文件的CRC校验值,将eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名后,形成烧录器校验文件。
如上述压缩模块,使用脚本来计算最终的eMMC烧录文件的CRC校验值。最终得到的烧录器校验文件为用于量产烧录前在烧录器检验的文件。生成校验值的目的是为了保证了文件在网络传输、拷贝等操作下可能造成的数据丢失等,通过比较生产前使用烧录器计算的校验值和最开始制作的校验值比较,如果一致说明烧录文件是正确的,如果不一致,有可能是因为传输过程出现了问题,可以降低风险。
在一个实施例中,计算模块,包括:
读取单元,用于读取Boardconfig.mk里面各个分区大小的数据,得出size的数据。
运算单元,根据分区大小和分区的顺序计算得出offset的数据,并根据offset的数据得到offset偏移地址;其中,所述分区的顺序通过分区挂载配置文件fstab得到。
如上述读取单元和运算单元,分区大小的数据可以直接读取,而读取size数据后可以计算得到offset的数据,进而得出offset偏移地址,使得后续拷贝过程中可以顺利的找到各个区分镜像文件的对应位置。
分区排布的顺序取决于分区挂载配置文件fstab,offset的数据可以根据分区大小和分区的顺序计算得出,分区的大小时前文提到的Boardconfig.mk里面的参数配置所确定的,需要计算的是每个分区的偏移地址,这个文件应该在最终制作出来的烧录文件的哪一个位置。如第一个分区的偏移地址是0,第二个分区的偏移地址为第一个分区的大小加上第一个分区与第二个分区之间的保留空间大小;第三个分区的偏移地址为第一个分区的大小+第一个分区到第二个分区的保留空间+第二个分区的大小+第二个分区到第三个分区的保留空间大小,以此类推。其中,保留空间的大小不定,不同的芯片厂商在设计上不同。
某一结果如下表所示:
在一个实施例中,在读取Boardconfig.mk里面各个分区大小的数据,得出size的数据之前,可以通过修改Boardconfig.mk里面分区镜像配置来修改分区大小size,得到其装置为:
修改单元,用于修改Boardconfig.mk里面分区镜像配置来修改分区大小size。
读取单元,读取Boardconfig.mk里面各个分区大小的数据,得出size的数据。
运算单元,根据分区大小和分区的顺序计算得出offset的数据,并根据offset的数据得到offset偏移地址;其中,所述分区的顺序通过分区挂载配置文件fstab得到。
如上述修改单元、读取单元、运算单元,分区大小的数据可以直接读取,也可以修改后在进行读取,为的是将各个分区的大小根据不同平台的需求来配置,而读取size数据后可以计算得到offset的数据,进而得出offset偏移地址,使得后续拷贝过程中可以顺利的找到各个区分镜像文件的对应位置。
在Android***中,可以通过修改Boardconfig.mk里面分区镜像配置,来修改分区的大小,比如将system分区大小设置为1G:BOARD_SYSTEMIMAGE_PARTITION_SIZE:=1073741824(16进制就是0x40000000)。各个分区的大小都是可以根据不同平台的需求来配置,而脚本读取的数据来源就是这部分数据。
在一个实施例中,转换模块使用simg2img命令将simg格式的img镜像文件转换为raw格式的img镜像文件,其中,所述simg格式的img镜像文件包括vendor、system、odm、product。
其中,只有vendor、system、odm、product这几个分区的镜像文件是simg格式,脚本中转换使用的是simg2img命令,这个是Android原生带有的工具,可以将simg格式的分区镜像文件转换为raw格式的原始分区数据;命令如:simg2img system.imgsystem.raw.img。
在一个实施例中,压缩模块,包括:计算eMMC烧录文件的CRC校验值具体包括:通过linux的md5sum命令计算eMMC烧录文件的md5值;将最终的eMMC烧录文件压缩并将md5值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
计算校验值一般是计算eMMC烧录文件的md5值,只需要通过linux的md5sum命令即可计算;如:md5sum package.img|cut-d""-f1,可以获取该文件的校验值。
如图4所示,本发明还提供了一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图4所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储编译生成Android eMMC烧录文件的制作的过程需要的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现Android eMMC烧录文件的制作方法。
上述处理器执行Android eMMC烧录文件的制作方法,包括:S1、创建初始eMMC烧录文件,所述初始eMMC烧录文件为一空文件;S2、Android***编译完成后,生成各个分区所需要的img镜像文件;S3、获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址;S4、将simg格式的img镜像文件转换为raw格式的img镜像文件;S5、使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件。
上述计算机设备,通过在Android***编译完成后,脚本获取每个分区的img镜像文件的分区大小size,并计算每个分区的img镜像的offset偏移地址,Linux dd命令根据步offset偏移地址,将每个分区的img镜像文件拷贝到烧录文件的对应起始位置,得到最终的eMMC烧录文件。从而使得本发明直接通过编译Android***之后可以利用脚本自动生成eMMC烧录文件,不需要硬件平台,相比传统方式需要搭建硬件平台和U盘,更加稳定、低成本。
在一个实施例中,上述处理器在使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件之后,还包括:S6、计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
在一个实施例中,上述处理器在脚本获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址,包括S31、读取Boardconfig.mk里面各个分区大小的数据,得出size的数据。S32、根据分区大小和分区的顺序计算得出offset的数据,并根据offset的数据得到offset偏移地址;其中,所述分区的顺序通过分区挂载配置文件fstab得到。
在一个实施例中,上述处理器读取Boardconfig.mk里面各个分区大小的数据,得出size的数据的步骤,包括:修改Boardconfig.mk里面分区镜像配置来修改分区大小size;读取Boardconfig.mk里面各个分区大小的数据,得出size的数据。
在一个实施例中,上述处理器将simg格式的img镜像文件转换为raw格式的img镜像文件的步骤,包括:使用simg2img命令将simg格式的img镜像文件转换为raw格式的img镜像文件,其中,所述simg格式的img镜像文件包括vendor、system、odm、product。
在一个实施例中,上述处理器计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件的步骤,包括:通过linux的md5sum命令计算eMMC烧录文件的md5值,将最终的eMMC烧录文件压缩并将md5值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现Android eMMC烧录文件的制作方法,包括:S1、创建初始eMMC烧录文件,所述初始eMMC烧录文件为一空文件;S2、Android***编译完成后,生成各个分区所需要的img镜像文件;S3、获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址;S4、将simg格式的img镜像文件转换为raw格式的img镜像文件;S5、使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件。
上述计算机可读存储介质,通过在Android***编译完成后,脚本获取每个分区的img镜像文件的分区大小size,并计算每个分区的img镜像的offset偏移地址,Linux dd命令根据步offset偏移地址,将每个分区的img镜像文件拷贝到烧录文件的对应起始位置,得到最终的eMMC烧录文件。从而使得本发明直接通过编译Android***之后可以利用脚本自动生成eMMC烧录文件,不需要硬件平台,相比传统方式需要搭建硬件平台和U盘,更加稳定、低成本。
在一个实施例中,上述处理器在使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件之后,还包括:S6、计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
在一个实施例中,上述处理器在脚本获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址,包括S31、读取Boardconfig.mk里面各个分区大小的数据,得出size的数据。S32、根据分区大小和分区的顺序计算得出offset的数据,并根据offset的数据得到offset偏移地址;其中,所述分区的顺序通过分区挂载配置文件fstab得到。
在一个实施例中,上述处理器读取Boardconfig.mk里面各个分区大小的数据,得出size的数据的步骤,包括:修改Boardconfig.mk里面分区镜像配置来修改分区大小size;读取Boardconfig.mk里面各个分区大小的数据,得出size的数据。
在一个实施例中,上述处理器使用脚本将simg格式的img镜像文件转换为raw格式的img镜像文件的步骤,包括:使用simg2img命令将simg格式的img镜像文件转换为raw格式的img镜像文件,其中,所述simg格式的img镜像文件包括vendor、system、odm、product。
在一个实施例中,上述处理器计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件的步骤,包括:通过linux的md5sum命令计算eMMC烧录文件的md5值,将最终的eMMC烧录文件压缩并将md5值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (9)

1.一种Android eMMC烧录文件的制作方法,其特征在于,包括以下步骤:
创建初始eMMC烧录文件,所述初始eMMC烧录文件为一空文件;
Android***编译完成后,生成各个分区所需要的img镜像文件;
获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址;
将simg格式的img镜像文件转换为raw格式的img镜像文件;
使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件;
所述获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址的步骤,包括:
读取Boardconfig.mk里面各个分区大小的数据,得出size的数据;
根据分区大小和分区的顺序计算得出offset的数据,并根据offset的数据得到offset偏移地址;其中,所述分区的顺序通过分区挂载配置文件fstab得到;
每个分区的所述offset偏移地址通过每个分区的大小和每个分区之间的保留空间大小进行累加得到。
2.根据权利要求1所述的Android eMMC烧录文件的制作方法,其特征在于,所述使用Linux dd命令根据步骤所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件的步骤之后,还包括:
计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
3.根据权利要求1所述的Android eMMC烧录文件的制作方法,其特征在于,所述读取Boardconfig.mk里面各个分区大小的数据,得出size的数据的步骤,包括:
修改Boardconfig.mk里面分区镜像配置来修改分区大小size;
读取Boardconfig.mk里面各个分区大小的数据,得出size的数据。
4.根据权利要求1所述的Android eMMC烧录文件的制作方法,其特征在于,所述将simg格式的img镜像文件转换为raw格式的img镜像文件的步骤,包括:使用simg2img命令将simg格式的img镜像文件转换为raw格式的img镜像文件,其中,所述simg格式的img镜像文件包括vendor、system、odm、product。
5.根据权利要求2所述的Android eMMC烧录文件的制作方法,其特征在于,所述计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件的步骤,包括:通过linux的md5sum命令计算eMMC烧录文件的md5值,将最终的eMMC烧录文件压缩并将md5值加到压缩后的eMMC烧录文件命名中,形成烧录器校验文件。
6.一种Android eMMC烧录文件的制作装置,用于实现权利要求1-5中任意一项所述的方法,其特征在于,包括:
创建模块,用于创建初始eMMC烧录文件,所述初始eMMC烧录文件为一空文件;
生成模块,用于Android***编译完成后,生成各个分区所需要的img镜像文件;
计算模块,用于获取每个分区的img镜像文件的分区大小size,并根据分区大小size计算每个分区的img镜像在烧录文件中的offset偏移地址;
转换模块,用于将simg格式的img镜像文件转换为raw格式的img镜像文件;
拷贝模块,用于使用Linux dd命令根据所述offset偏移地址,将每个分区的img镜像文件拷贝到所述初始eMMC烧录文件的对应起始位置,得到最终的eMMC烧录文件。
7.根据权利要求6所述的Android eMMC烧录文件的制作装置,其特征在于,还包括:
压缩模块,用于计算最终的eMMC烧录文件的CRC校验值,将最终的eMMC烧录文件压缩并将CRC校验值加到压缩后的eMMC烧录文件命名后,形成烧录器校验文件。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN202011364123.5A 2020-11-27 2020-11-27 eMMC烧录文件的制作方法、装置和计算机设备 Active CN112486514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011364123.5A CN112486514B (zh) 2020-11-27 2020-11-27 eMMC烧录文件的制作方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011364123.5A CN112486514B (zh) 2020-11-27 2020-11-27 eMMC烧录文件的制作方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN112486514A CN112486514A (zh) 2021-03-12
CN112486514B true CN112486514B (zh) 2024-01-16

Family

ID=74936626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011364123.5A Active CN112486514B (zh) 2020-11-27 2020-11-27 eMMC烧录文件的制作方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN112486514B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157282B (zh) * 2021-03-31 2024-06-04 惠州华阳通用电子有限公司 一种烧录镜像文件生成方法
CN113741954A (zh) * 2021-08-04 2021-12-03 深圳Tcl新技术有限公司 ***软件生成方法、装置、电子设备及存储介质
CN116737189B (zh) * 2023-08-15 2023-10-27 中电科申泰信息科技有限公司 一种申威平台嵌入式***安装镜像及其制作方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693283A (zh) * 2012-05-07 2012-09-26 深圳市共进电子股份有限公司 一种嵌入式***的数据分区存储方法及***引导启动方法
CN103577211A (zh) * 2012-08-08 2014-02-12 上海赤炫信息科技有限公司 一种新的Android ROM***打包和烧录、更新方式
CN105511911A (zh) * 2015-11-27 2016-04-20 青岛海信移动通信技术股份有限公司 ***固件升级包的生成方法及装置
CN106598769A (zh) * 2016-12-15 2017-04-26 广州视源电子科技股份有限公司 Emmc烧录文件检验的方法及装置
CN111158697A (zh) * 2019-12-25 2020-05-15 惠州华阳通用电子有限公司 一种烧录镜像制作方法
CN111708541A (zh) * 2020-06-22 2020-09-25 深圳市友华通信技术有限公司 镜像文件的编译方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI484337B (zh) * 2014-01-06 2015-05-11 威盛電子股份有限公司 記憶體晶片與資料保護方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693283A (zh) * 2012-05-07 2012-09-26 深圳市共进电子股份有限公司 一种嵌入式***的数据分区存储方法及***引导启动方法
CN103577211A (zh) * 2012-08-08 2014-02-12 上海赤炫信息科技有限公司 一种新的Android ROM***打包和烧录、更新方式
CN105511911A (zh) * 2015-11-27 2016-04-20 青岛海信移动通信技术股份有限公司 ***固件升级包的生成方法及装置
CN106598769A (zh) * 2016-12-15 2017-04-26 广州视源电子科技股份有限公司 Emmc烧录文件检验的方法及装置
CN111158697A (zh) * 2019-12-25 2020-05-15 惠州华阳通用电子有限公司 一种烧录镜像制作方法
CN111708541A (zh) * 2020-06-22 2020-09-25 深圳市友华通信技术有限公司 镜像文件的编译方法和装置

Also Published As

Publication number Publication date
CN112486514A (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
CN112486514B (zh) eMMC烧录文件的制作方法、装置和计算机设备
WO2015070521A1 (zh) 将ubi格式的***文件制作成工厂烧录映像文件方法
CN111857776B (zh) Dsp板卡类的应用程序的在线升级方法
CN109144519B (zh) 升级包的生成方法、装置、计算机设备和存储介质
US8601464B2 (en) Memory online update system and method
CN111045713A (zh) 一种计算机***的升级方法、***及装置
JP6157637B2 (ja) リードライトメモリデバイスのデータイメージ中の仮想境界コード
US20190317920A1 (en) Write operation verification method and apparatus
CN111263354B (zh) 一种ota差分升级方法及装置
US9292429B1 (en) Off-chip non-volatile memory access
CN107783724A (zh) 一种全镜像文件的生成方法及装置
WO2017000637A1 (zh) 一种闪存烧写方法、单板、上位机及***
US9652416B2 (en) Storage device for performing in-storage computing operations, method of operation the same, and system including the same
CN113157282B (zh) 一种烧录镜像文件生成方法
US7809878B2 (en) Apparatus and method for controlling flash memory
CN107688456B (zh) 文件生成方法、设备以及计算机可读存储介质
CN110688141B (zh) 固件更新方法
US9588884B2 (en) Systems and methods for in-place reorganization of device storage
CN110032390B (zh) 一种实现多机型共升级包的方法、存储介质及智能终端
CN107632892B (zh) 一种参数传递的方法和装置
US8874981B2 (en) Method of creating target storage layout table referenced for partitioning storage space of storage device and related electronic device and machine-readable medium
CN108958795B (zh) 一种嵌入式***中BootLoader代码重利用方法和开发板
CN112181446A (zh) 一种基于stm32的软件在线升级方法
US10303588B2 (en) Systems and methods for test booting a device
US8503241B2 (en) Electronic apparatus and data reading method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant