CN105511911B - 系统固件升级包的生成方法及装置 - Google Patents
系统固件升级包的生成方法及装置 Download PDFInfo
- Publication number
- CN105511911B CN105511911B CN201510854542.XA CN201510854542A CN105511911B CN 105511911 B CN105511911 B CN 105511911B CN 201510854542 A CN201510854542 A CN 201510854542A CN 105511911 B CN105511911 B CN 105511911B
- Authority
- CN
- China
- Prior art keywords
- file
- ota
- under
- image file
- targeted update
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种系统固件升级包的生成方法及装置。本发明系统固件升级包的生成方法,包括:获取目标升级文件系统中的源文件;所述源文件包括:系统镜像文件、恢复模式下的镜像文件、开机引导模式boot下的镜像文件和协议文件;分别获取与所述目标升级文件系统中的源文件对应的目标文件;获取所述目标升级文件系统的配置文件;将目标文件和配置文件打包生成目标升级文件系统对应的OTA中间包,并根据OTA中间包生成目标升级文件系统对应的OTA升级包。本发明无需保存中间包,不会占用服务器大量资源,而且OTA中间包丢失或者破坏时,也可以根据获取到的源文件生成OTA升级包。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种系统固件升级包的生成方法及装置。
背景技术
随着终端制造商发布新终端的节奏越来越快,上市终端的软件版本难免存在一些漏洞或者亟待提高用户体验的部分,甚至会有一些致命故障亟待修复。一般可以采用无线固件升级(Firmware Update Over the Air,简称FOTA)方法对终端设备的软件进行升级。
目前,固件升级通常分为两种:一种是工厂刷机包,主要用于生产及售后;另外一种是无线下载(Over the Air,简称OTA)升级包,主要用于用户自行升级。二者的升级机制完全不同,前者是基于设备的升级,即在开机引导程序中通过二进制读写将镜像文件写到相应的块设备中;而后者是基于文件系统的升级,是在恢复模式(recovery)下对文件进行升级,主要有两种方式,OTA完整升级包升级和OTA差分升级包升级,其中,OTA完整升级包升级是将完整的新版本数据通过文件拷贝覆盖式的升级,而OTA差分升级包升级则是将两个新旧版本固件之间的差异数据通过打补丁的方式进行升级。
现有的OTA升级包是根据OTA中间包制作相应的OTA升级包。由于OTA升级包依赖于中间包,随着系统版本的升级,OTA升级包越来越大,保存相应的OTA中间包,会占用服务器大量资源,而且,由于一些主客观原因(如硬盘损坏、系统中毒、人为误操作等)可能会导致OTA中间包丢失或者破坏,此时终端就无法通过OTA升级包升级,用户将无法通过OTA升级包升级到新的固件版本。
发明内容
本发明提供一种系统固件升级包的生成方法及装置,以克服现有技术中 保存中间包会占用服务器大量资源,而且OTA中间包丢失或者破坏时,此时终端就无法通过OTA升级包升级的问题。
第一方面,本发明提供一种系统固件升级包的生成方法,包括:
获取目标升级文件系统中的源文件;所述源文件包括:系统镜像文件、恢复模式下的镜像文件、开机引导模式boot下的镜像文件和协议文件;
分别获取与所述目标升级文件系统中的源文件对应的目标文件;
获取所述目标升级文件系统的配置文件;
将所述目标文件和所述配置文件打包生成所述目标升级文件系统对应的无线下载OTA中间包,并根据所述OTA中间包生成所述目标升级文件系统对应的OTA升级包。
第二方面,本发明提供一种系统固件升级包的生成装置,包括:
第一获取模块,用于获取目标升级文件系统中的源文件;所述源文件包括:系统镜像文件、恢复模式下的镜像文件、开机引导模式boot下的镜像文件和协议文件;
第二获取模块,用于分别获取与所述目标升级文件系统中的源文件对应的目标文件;
第三获取模块,用于获取所述目标升级文件系统的配置文件;
处理模块,用于将所述目标文件和所述配置文件打包生成所述目标升级文件系统对应的无线下载OTA中间包,并根据所述OTA中间包生成所述目标升级文件系统对应的OTA升级包。
本发明系统固件升级包的生成方法及装置,通过获取目标升级文件系统中的源文件;所述源文件包括:系统镜像文件、恢复模式下的镜像文件、开机引导模式boot下的镜像文件和协议文件;分别获取与所述目标升级文件系统中的源文件对应的目标文件;将所述目标文件和配置文件打包生成所述目标升级文件系统对应的OTA中间包,并根据所述OTA中间包生成所述目标升级文件系统对应的OTA升级包,相比现有技术而言,无需保存中间包,可以直接从工厂刷机包或终端的相关物理分区中获取目标升级文件系统的源文件,不会占用服务器大量资源,而且OTA中间包丢失或者破坏时,也可以根据源文件获取目标文件,并根据目标文件生成OTA中间包,最终根据OTA中间包生成OTA升级包,避免了OTA中间包丢失或者破坏时,终端就无法 通过OTA升级包升级,用户将无法通过OTA升级包升级到新的固件版本的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明系统固件升级包的生成方法一实施例的流程示意图;
图2A为本发明系统固件升级包的生成装置一实施例的结构示意图;
图2B为本发明系统固件升级包的生成装置另一实施例的结构示意图
图3为本发明系统固件升级包的生成设备一实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的系统固件升级包的生成方法可以应用于对终端的系统固件进行升级处理,具体实施例中以对终端的安卓系统为例进行说明。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本发明系统固件升级包的生成方法一实施例的流程示意图。如图1所示,本实施例的方法,包括:
步骤101、获取目标升级文件系统中的源文件;源文件包括:系统镜像文件、恢复模式下的镜像文件、开机引导模式boot下的镜像文件和协议文件;
步骤102、分别获取与目标升级文件系统中的源文件对应的目标文件;
步骤103、获取目标升级文件系统的配置文件;
步骤104、将目标文件和配置文件打包生成目标升级文件系统对应的OTA中间包,并根据OTA中间包生成目标升级文件系统对应的OTA升级包。
在实际应用中,OTA升级包依赖于中间包,但由于一些主客观原因(如硬盘损坏、系统中毒、人为误操作等)导致OTA中间包丢失或者破坏,此时终端就无法通过OTA升级包升级,用户将无法通过OTA升级到新的固件版本,另外,随着终端的系统版本的升级,OTA升级包越来越大,占用服务器大量资源,如果每发布一个版本都要保存相应的OTA中间包,对服务器资源要求非常高,而且由于中间包的拷贝需要借助文件传输协议(File TransferProtocol,简称FTP),由于拷贝本身及FTP的稳定性问题,可能在这过程中造成数据丢失损毁等情况,而中间包不同于工厂刷机包,没有办法测试其功能性、完整性,另外,开发人员也可能因为自身原因存在误删除或者忘记备份OTA中间包的问题,一旦出现问题,后期基于此中间包制作OTA升级包时就会存在问题。这样就要求开发人员在备份OTA中间包的时,务必保证其完整性,这对服务器资源和人力资源是一种巨大的浪费。
而在本发明实施例中,可以无需保存中间包,具体来说,在制作OTA升级包时,获取目标升级文件系统中的源文件;源文件包括:系统镜像文件、恢复模式下的镜像文件、开机引导模式boot下的镜像文件和协议文件。
然后分别确定与目标升级文件系统中的源文件对应的目标文件;如源文件中的系统镜像文件对应的系统文件、源文件中的恢复模式下的镜像文件对应的恢复模式下的虚拟硬盘及内核文件、源文件中的boot下的镜像文件对应的boot下的虚拟硬盘及内核文件,源文件中的协议文件对应的目标文件。
将目标文件和配置文件打包生成目标升级文件系统对应的无线下载OTA中间包,并根据OTA中间包生成目标升级文件系统对应的OTA升级包。
需要说明的是,本发明实施例中的OTA升级包包括OTA完整升级包和OTA差分升级包。OTA升级包一般通过服务器上供终端下载、运行以完成对终端的文件系统的升级的。终端在出厂时已经自带了一定的文件系统,此时的文件系统为待升级文件系统,升级时是将该待升级文件系统升级为目标升级文件系统。
其中,目标升级文件系统中的目标文件,如包括文件夹SYSTEM、RECOVERY、RADIO、BOOT等,其中文件夹SYSTEM为目标文件中的系 统文件,文件夹RECOVERY为目标文件中的恢复模式下的虚拟硬盘及内核文件,文件夹BOOT为目标文件中的开机模式下的虚拟硬盘及内核文件,文件夹RADIO为目标文件中的协议文件,配置文件如包括文件夹OTA、META等。其中,目标文件中协议文件与源文件中的协议文件相同。在实际应用中,由于工厂刷机包或终端的相关物理分区中的协议文件与OTA中间包中的协议文件(RADIO文件)存在形式是完全相同的,无需任何处理,只需根据文件列表从工厂刷机包或终端的相关物理分区中遍历获取相应的协议文件即可获取目标文件。
其中,配置文件可以包括OTA相关的升级工具、脚本、签名及属性配置列表等;其中,升级工具为用于制作升级包中的升级脚本解析器、脚本文件为用于制作OTA升级包中的协议相关文件及升级引导预研、属性配置文件主要用于用户升级后对系统文件属性设置。配置文件的获取方式有多种,1、直接从一个现有的中间包中获取,但是不同的版本配置文件中有些文件可能会不同;2、将源代码进行回退,重新编译整个工程,但是编译时间较长,编译生成的文件除了配置文件,还有很多其他文件是我们不需要的;3、可以实现一套编译流程用于编译仅生成配置文件,如OTA及META等文件,第3种方法避免了第1、2种的缺陷,同时将工具、脚本、属性配置相关文件与系统文件的生成进行了分类。
其中,实际应用中,本实施例的方法,还包括:获取待升级文件系统对应的OTA中间包;
根据OTA中间包生成目标升级文件系统对应的OTA升级包,包括:
根据OTA中间包生成目标升级文件系统对应的OTA完整升级包;或,
根据待升级文件系统对应的OTA中间包和目标升级文件系统对应的OTA中间包,生成目标升级文件系统对应的OTA差分升级包。
具体来说,OTA升级包包括OTA完整升级包和OTA差分升级包,因此可以通过OTA完整升级包升级,也可以通过OTA差分升级包根升级,OTA完整升级包仅通过目标升级文件系统对应的OTA中间包即可生成,而OTA差分升级包具体的生成过程为:加载待升级文件系统中的OTA中间包、目标升级文件系统中的OTA中间包,校验上述两种OTA中间包的格式是否正确,从配置文件中获取产品信息、相关属性值用于产生升级脚本中的校验语句, 用imgdiff、bsdiff命令计算两个版本的系统文件、boot下的虚拟硬盘及内核文件差异获得patch信息及相应的升级script语句,计算新版本(目标升级文件系统)的boot下的虚拟硬盘及内核文件和恢复模式(recovery)下的虚拟硬盘及内核文件之间的差异,获取recovery的patch及升级shell脚本。加载文件列表(filesmap)并解析协议相关的文件,获取协议文件的升级patch及升级script语句,最后对升级包进行签名获得最终的OTA差分升级包。
其中,待升级文件系统中的OTA中间包生成过程与步骤101、102、103的实现过程类似。
需要说明的是,本实施例中步骤103和步骤101不分先后顺序。
本实施例提供的系统固件升级包的生成方法,通过获取目标升级文件系统中的源文件;所述源文件包括:系统镜像文件、恢复模式下的镜像文件、开机引导模式boot下的镜像文件和协议文件;分别获取与所述目标升级文件系统中的源文件对应的目标文件;将所述目标文件和配置文件打包生成所述目标升级文件系统对应的OTA中间包,并根据所述OTA中间包生成所述目标升级文件系统对应的OTA升级包,相比现有技术而言,无需保存中间包,可以直接从工厂刷机包或终端的相关物理分区中获取源文件,不会占用服务器大量资源,而且OTA中间包丢失或者破坏时,也可以根据获取到的源文件获取目标文件,并根据目标文件生成OTA中间包,最终根据OTA中间包生成OTA升级包,避免了OTA中间包丢失或者破坏时,终端就无法通过OTA升级包升级,用户将无法通过OTA升级包升级到新的固件版本的问题。
在上述实施方式的基础上,实际应用中,获取目标升级文件系统中的源文件的具体方式有多种,可选地,具体可以通过下述两种方式实现:
第一种方式:
从工厂刷机包获取拆分后的系统镜像文件,并将拆分后的系统镜像文件转换为完整的系统镜像文件;
将完整的系统镜像文件转换为四级扩展文件系统ext4格式的系统镜像文件;或,
第二种方式:
从终端的第一物理分区中获取四级扩展文件系统ext4格式的系统镜像文 件。
具体来说,第一种方式中,可以从工厂刷机包获取拆分后的系统镜像文件(如工厂刷机包中包括system_1.img-system_30.img的系统镜像文件),由于工厂刷机包的系统镜像文件是根据设备快(chunk)类型进行拆分的,具体规则为系统镜像文件中需要解析的是两种chunk类型,一种chunk类型是raw类型,一种是don't care类型,其中raw类型的是需要写入到存储器(Embedded MultiMedia Card,简称EMMC)中的,而don't care类型则跳过不进行处理。为了提取得到系统文件,需要首先根据系统镜像文件拆分的规则做逆向处理,对于don't care类型chunk需要根据块长度作补零处理,获取未拆分的完整的系统镜像文件。
根据类型格式转换工具simg2img(Linux中的可执行应用程序),将获取到的完整的系统镜像文件转换为四级扩展文件系统(ext4)格式的系统镜像文件,得到ext4格式的镜像文件后,就可以利用Linux中的挂载(mount)指令执行获取系统文件。
第二种方式中,可以通过调试线将终端设备跟计算机相连,并打开调试功能。
调用Linux中的dd命令将系统分区对应的物理分区中的镜像文件从终端中导入外置存储设备中,并执行pull命令拷贝到计算机上。
由于此时获取的系统镜像文件本身即为ext4格式,所以无需进行格式转换,直接执行mount命令获取系统文件。
其中,此时的终端为已升级到目标升级文件系统的终端。
进一步的,在实际应用中,获取目标升级文件系统中恢复模式下的镜像文件,具体可以通过下述两种方式实现:
第一种方式:
从工厂刷机包获取恢复模式下的镜像文件;或,
第二种方式:
从终端的第二物理分区中获取恢复模式下的镜像文件。
具体来说,第一种方式中,恢复模式下的镜像文件如recovery.img,是一个镜像文件可以直接从工厂刷机包中获取到。
第二种方式中,可以通过调试线将终端设备跟计算机相连,并打开调试 功能。
调用Linux中的dd命令将恢复模式下的分区对应的物理分区中的镜像文件从终端中导入外置存储设备中,并执行pull命令拷贝到计算机上。
其中,此时的终端为已升级到目标升级文件系统的终端。
进一步的,在实际应用中,获取目标升级文件系统中boot下的镜像文件,具体可以通过下述两种方式实现:
第一种方式:
从工厂刷机包获取boot下的镜像文件;或,
第二种方式:
从终端的第三物理分区中获取boot下的镜像文件。
具体来说,第一种方式中,boot下的镜像文件如boot.img,是一个镜像文件可以直接从工厂刷机包中获取到。
第二种方式中,可以通过调试线将终端设备跟计算机相连,并打开调试功能。
调用Linux中的dd命令将boot下的分区对应的物理分区中的镜像文件从终端中导入外置存储设备中,并执行pull命令拷贝到计算机上。
其中,此时的终端为已升级到目标升级文件系统的终端。
上述具体实施方式中,通过从工厂刷机包或终端的相关物理分区中获取源文件中的镜像文件,从而获取到源文件。
在上述实施方式的基础上,实际应用中,分别获取与所述目标升级文件系统中的源文件对应的目标文件的具体方式有多种,可选地,作为一种可实施的方式,具体可以采用以下方式实现:
将获取到的系统镜像文件经过转换处理得到系统文件;
将获取到的所述恢复模式下的镜像文件经过转换处理得到恢复模式下的虚拟硬盘及内核文件;
将获取到的所述boot下的镜像文件经过转换处理得到所述boot下的虚拟硬盘及内核文件。
具体来说,由于直接获取的源文件是镜像文件,则需要将系统镜像文件经过转换处理得到系统文件,该转换处理的过程为将系统文件转换为系统镜 像文件的逆过程;获取恢复模式下的虚拟硬盘及内核文件以及开机模式下的虚拟硬盘及内核文件过程类似。此时目标文件包括:系统文件、恢复模式下的虚拟硬盘及内核文件、boot下的虚拟硬盘及内核文件。
其中,在实际应用中,经过转换处理得到系统文件,具体可以采用如下的实现方式:
将获取到的系统镜像文件执行挂载mount指令得到系统文件。
此时的系统镜像文件为ext4格式的系统镜像文件。
其中,在实际应用中,将获取到的恢复模式下的镜像文件经过转换处理得到恢复模式下的虚拟硬盘文件及内核文件,具体可以采用如下的实现方式:
从恢复模式下的镜像文件读取出内核文件,以及二进制的虚拟硬盘文件,并将二进制的虚拟硬盘文件转换为文件形式的虚拟硬盘文件。
具体来说,恢复模式下的镜像文件不同于系统镜像文件,其并不是一个完整的文件系统,它是一种操作系统自定义的文件格式,该格式包括了用gzip压缩过的内核和虚拟硬盘(ramdisk)。因此恢复模式下的镜像文件的转换方式跟系统镜像文件完全不同。
恢复模式下的虚拟硬盘文件及内核文件,如文件夹RECOVERY包括:文件夹RAMDISK、文件kernel等。
恢复模式下的镜像文件如recovery.img,先加载该镜像文件,略过开头的2K文件,分别从镜像文件中将内核(kernel)和二进制的虚拟硬盘(RAMDISK)读取出来,kernel即为所需的内核文件,内核文件无需转换,由于RAMDISK为二进制的文件,需要经过转换处理,首先创建RAMDISK文件夹,并切换到此目录下,通过gzip命令进行解压缩,然后经过cpio处理获取最终的文件形式的虚拟硬盘文件,该虚拟硬盘文件包括多个文件和文件夹。
现有的windows下的转换方式解出的文件并不完整,且由于操作系统的差异,文件内容也会存在差异,而OTA升级要求要保持文件的完整性,为此我们可以将上述功能制作一种linux工具,通过该工具将获取的恢复模式下的镜像文件得到恢复模式下的虚拟硬盘文件及内核文件。
其中,在实际应用中,将获取到的boot下的镜像文件经过转换处理得到boot下的虚拟硬盘文件及内核文件,具体可以采用如下的实现方式:
从boot下的镜像文件读取出内核文件,以及二进制的虚拟硬盘文件,并 将二进制的虚拟硬盘文件转换为文件形式的虚拟硬盘文件。
具体来说,boot下的虚拟硬盘文件及内核文件,如文件夹BOOT包括:文件夹RAMDISK、文件kernel等,文件夹RECOVERY和文件夹BOOT的区别是文件夹RAMDISK中的文件不同。
boot下的镜像文件如boot.img,先加载该镜像文件,略过开头的2K文件,分别从镜像文件中将内核(kernel)和虚拟硬盘(RAMDISK)读取出来,kernel即为所需的内核文件,内核文件无需转换,由于RAMDISK为二进制的文件,需要经过转换处理,首先创建RAMDISK文件夹,并切换到此目录下,通过gzip命令进行解压缩,然后经过cpio处理获取最终的文件形式的虚拟硬盘文件。
boot下的镜像文件转换处理与恢复模式下的镜像文件转换过程类似。
图2A为本发明系统固件升级包的生成装置一实施例的结构示意图。如图2A所示,本实施例的系统固件升级包的生成装置,可以包括:第一获取模块201、第二获取模块202、第三获取模块203和处理模块204;
其中,第一获取模块201,用于获取目标升级文件系统中的源文件;所述源文件包括:系统镜像文件、恢复模式下的镜像文件、开机引导模式boot下的镜像文件和协议文件;
第二获取模块202,用于分别获取与所述目标升级文件系统中的源文件对应的目标文件;
第三获取模块203,用于获取所述目标升级文件系统的配置文件;
处理模块204,用于将所述目标文件和配置文件打包生成所述目标升级文件系统对应的无线下载OTA中间包,并根据所述OTA中间包生成所述目标升级文件系统对应的OTA升级包。
可选的,作为一种可实施的方式,所述第一获取模块201,具体用于:
从工厂刷机包获取拆分后的系统镜像文件,并将所述拆分后的系统镜像文件转换为完整的系统镜像文件;
将所述完整的系统镜像文件转换为四级扩展文件系统ext4格式的系统镜像文件;或,
从终端的第一物理分区中获取四级扩展文件系统ext4格式的系统镜像文 件。
可选的,作为一种可实施的方式,所述第一获取模块201,具体用于:
从工厂刷机包获取恢复模式下的镜像文件;或,
从终端的第二物理分区中获取恢复模式下的镜像文件。
可选的,作为一种可实施的方式,所述第一获取模块201,具体用于:
从工厂刷机包获取boot下的镜像文件;或,
从终端的第三物理分区中获取boot下的镜像文件。
图2B为本发明系统固件升级包的生成装置另一实施例的结构示意图。在上述实施例的基础上,如图2B所示,本实施例的第二获取模块202,可以包括:
第一获取单元,用于将获取到的所述系统镜像文件经过转换处理得到系统文件;
第二获取单元,用于将获取到的所述恢复模式下的镜像文件经过转换处理得到恢复模式下的虚拟硬盘文件及内核文件;
第三获取单元,用于将获取到的所述boot下的镜像文件经过转换处理得到所述boot下的虚拟硬盘文件及内核文件。
可选的,作为一种可实施的方式,所述第一获取单元,具体用于:
将获取到的所述系统镜像文件执行挂载mount指令得到所述系统文件;
所述第二获取单元,具体用于:
从恢复模式下的镜像文件读取出内核文件,以及二进制的虚拟硬盘文件,并将所述二进制的虚拟硬盘文件转换为文件形式的虚拟硬盘文件;
所述第三获取单元,具体用于:
从boot下的镜像文件读取出内核文件,以及二进制的虚拟硬盘文件,并将所述二进制的虚拟硬盘文件转换为文件形式的虚拟硬盘文件。
可选的,作为一种可实施的方式,所述第三获取模块203,还用于:
获取待升级文件系统对应的OTA中间包;
所述处理模块204,具体用于:
根据所述OTA中间包生成所述目标升级文件系统对应的OTA完整升级包;或,
根据所述待升级文件系统对应的OTA中间包和所述目标升级文件系统 对应的OTA中间包,生成所述目标升级文件系统对应的OTA差分升级包。
需要说明的是,对于装置实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
图3为本发明系统固件升级包的生成设备一实施例的结构示意图。如图3所示,本实施例的系统固件升级包的生成设备,可以包括:存储器301、通信接口302和处理器303;
其中,存储器301,用于存储程序;具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器301可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
通信接口302,用于与其他设备进行通信,如终端;
处理器303,用于执行存储器存储的程序,用于执行本发明方法实施例所提供的技术方案,其实现原理和技术效果类似,可参考方法实施例部分的说明,此处不再赘述。
上述实施例中的第一获取模块、第二获取模块、第三获取模块和处理模块可以由处理器实现。
上述部件通过一条或多条总线进行通信。本领域技术人员可以理解,图3中示出的嵌入式设备的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方, 或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种系统固件升级包的生成方法,其特征在于,包括:
获取目标升级文件系统中的源文件;所述源文件包括:系统镜像文件、恢复模式下的镜像文件、开机引导模式boot下的镜像文件和协议文件;
分别获取与所述目标升级文件系统中的源文件对应的目标文件;
获取所述目标升级文件系统的配置文件;
将所述目标文件和所述配置文件打包生成所述目标升级文件系统对应的无线下载OTA中间包,并根据所述OTA中间包生成所述目标升级文件系统对应的OTA升级包。
2.根据权利要求1所述的方法,其特征在于,获取所述目标升级文件系统中的源文件,包括:
从工厂刷机包获取拆分后的系统镜像文件,并将所述拆分后的系统镜像文件转换为完整的系统镜像文件;
将所述完整的系统镜像文件转换为四级扩展文件系统ext4格式的系统镜像文件;或,
从终端的第一物理分区中获取四级扩展文件系统ext4格式的系统镜像文件。
3.根据权利要求2所述的方法,其特征在于,获取所述目标升级文件系统中的源文件,还包括:
从工厂刷机包获取恢复模式下的镜像文件;或,
从终端的第二物理分区中获取恢复模式下的镜像文件。
4.根据权利要求3所述的方法,其特征在于,获取所述目标升级文件系统中的源文件,还包括:
从工厂刷机包获取所述boot下的镜像文件;或,
从终端的第三物理分区中获取所述boot下的镜像文件。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述分别获取与所述目标升级文件系统中的源文件对应的目标文件,包括:
将获取到的所述系统镜像文件经过转换处理得到系统文件;
将获取到的所述恢复模式下的镜像文件经过转换处理得到恢复模式下的虚拟硬盘文件及内核文件;
将获取到的所述boot下的镜像文件经过转换处理得到所述boot下的虚拟硬盘文件及内核文件。
6.根据权利要求5所述的方法,其特征在于,将获取到的所述系统镜像文件经过转换处理得到系统文件,包括:
将获取到的所述系统镜像文件执行挂载mount指令得到所述系统文件;
将获取到的所述恢复模式下的镜像文件经过转换处理得到恢复模式下的虚拟硬盘文件及内核文件,包括:
从恢复模式下的镜像文件读取出内核文件,以及二进制的虚拟硬盘文件,并将所述二进制的虚拟硬盘文件转换为文件形式的虚拟硬盘文件;
将获取到的所述boot下的镜像文件经过转换处理得到所述boot下的虚拟硬盘文件及内核文件,包括:
从boot下的镜像文件读取出内核文件,以及二进制的虚拟硬盘文件,并将所述二进制的虚拟硬盘文件转换为文件形式的虚拟硬盘文件。
7.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
获取待升级文件系统对应的OTA中间包;
所述根据所述OTA中间包生成所述目标升级文件系统对应的OTA升级包,包括:
根据所述OTA中间包生成所述目标升级文件系统对应的OTA完整升级包;或,
根据所述待升级文件系统对应的OTA中间包和所述目标升级文件系统对应的OTA中间包,生成所述目标升级文件系统对应的OTA差分升级包。
8.一种系统固件升级包的生成装置,其特征在于,包括:
第一获取模块,用于获取目标升级文件系统中的源文件;所述源文件包括:系统镜像文件、恢复模式下的镜像文件、开机引导模式boot下的镜像文件和协议文件;
第二获取模块,用于分别获取与所述目标升级文件系统中的源文件对应的目标文件;
第三获取模块,用于获取所述目标升级文件系统的配置文件;
处理模块,用于将所述目标文件和所述配置文件打包生成所述目标升级文件系统对应的无线下载OTA中间包,并根据所述OTA中间包生成所述目标升级文件系统对应的OTA升级包。
9.根据权利要求8所述的装置,其特征在于,所述第一获取模块,具体用于:
从工厂刷机包获取拆分后的系统镜像文件,并将所述拆分后的系统镜像文件转换为完整的系统镜像文件;
将所述完整的系统镜像文件转换为四级扩展文件系统ext4格式的系统镜像文件;或,
从终端的第一物理分区中获取四级扩展文件系统ext4格式的系统镜像文件。
10.根据权利要求8所述的装置,其特征在于,所述第一获取模块,具体用于:
从工厂刷机包获取恢复模式下的镜像文件;或,
从终端的第二物理分区中获取恢复模式下的镜像文件。
11.根据权利要求8所述的装置,其特征在于,所述第一获取模块,具体用于:
从工厂刷机包获取boot下的镜像文件;或,
从终端的第三物理分区中获取boot下的镜像文件。
12.根据权利要求8-11任一项所述的装置,其特征在于,所述第二获取模块,包括:
第一获取单元,用于将获取到的所述系统镜像文件经过转换处理得到系统文件;
第二获取单元,用于将获取到的所述恢复模式下的镜像文件经过转换处理得到恢复模式下的虚拟硬盘文件及内核文件;
第三获取单元,用于将获取到的所述boot下的镜像文件经过转换处理得到所述boot下的虚拟硬盘文件及内核文件。
13.根据权利要求12所述的装置,其特征在于,所述第一获取单元,具体用于:
将获取到的所述系统镜像文件执行挂载mount指令得到所述系统文件;
所述第二获取单元,具体用于:
从恢复模式下的镜像文件读取出内核文件,以及二进制的虚拟硬盘文件,并将所述二进制的虚拟硬盘文件转换为文件形式的虚拟硬盘文件;
所述第三获取单元,具体用于:
从boot下的镜像文件读取出内核文件,以及二进制的虚拟硬盘文件,并将所述二进制的虚拟硬盘文件转换为文件形式的虚拟硬盘文件。
14.根据权利要求8-11任一项所述的装置,其特征在于,所述第三获取模块,还用于:
获取待升级文件系统对应的OTA中间包;
所述处理模块,具体用于:
根据所述OTA中间包生成所述目标升级文件系统对应的OTA完整升级包;或,
根据所述待升级文件系统对应的OTA中间包和所述目标升级文件系统对应的OTA中间包,生成所述目标升级文件系统对应的OTA差分升级包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510854542.XA CN105511911B (zh) | 2015-11-27 | 2015-11-27 | 系统固件升级包的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510854542.XA CN105511911B (zh) | 2015-11-27 | 2015-11-27 | 系统固件升级包的生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105511911A CN105511911A (zh) | 2016-04-20 |
CN105511911B true CN105511911B (zh) | 2019-02-12 |
Family
ID=55719918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510854542.XA Active CN105511911B (zh) | 2015-11-27 | 2015-11-27 | 系统固件升级包的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105511911B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108024002B (zh) * | 2016-10-31 | 2021-05-07 | 成都卫士通信息产业股份有限公司 | 一种基于rom的双域手机系统的构建方法 |
CN106791124B (zh) * | 2016-12-27 | 2020-10-20 | 北京奇虎科技有限公司 | 移动终端的刷机方法和刷机装置 |
CN106843956B (zh) * | 2017-01-17 | 2020-07-14 | 青岛海信移动通信技术股份有限公司 | 系统固件包的生成方法及装置 |
CN107105345A (zh) * | 2017-02-17 | 2017-08-29 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒升级方法以及机顶盒 |
CN106953746A (zh) * | 2017-02-28 | 2017-07-14 | 努比亚技术有限公司 | 集群节点升级系统及方法 |
CN107391184A (zh) * | 2017-07-11 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | 基于无线设备生成固件方法、系统及固件升级方法、系统 |
CN109426515A (zh) * | 2017-09-04 | 2019-03-05 | 中兴通讯股份有限公司 | 升级包的生成方法及装置 |
CN108170459B (zh) * | 2017-12-08 | 2021-08-10 | 惠州Tcl移动通信有限公司 | 软件升级方法、智能终端及具有存储功能的装置 |
CN108874406A (zh) * | 2018-06-28 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种升级包制作方法及装置 |
CN110032377B (zh) * | 2019-03-19 | 2024-06-07 | 芯讯通无线科技(上海)有限公司 | 通信模块软件升级方法、系统及通信模块 |
CN112230975A (zh) * | 2020-09-30 | 2021-01-15 | 厦门汉印电子技术有限公司 | 一种固件差分的升级方法、装置及设备 |
CN112486514B (zh) * | 2020-11-27 | 2024-01-16 | 广州视源电子科技股份有限公司 | eMMC烧录文件的制作方法、装置和计算机设备 |
CN113325297A (zh) * | 2021-05-17 | 2021-08-31 | 瑞芯微电子股份有限公司 | 一种芯片系统级测试系统和方法 |
CN114003266B (zh) * | 2021-10-14 | 2022-05-27 | 红石阳光(深圳)科技有限公司 | 一种基于Android刷机固件生成多个差分包的方法与装置 |
CN114296764A (zh) * | 2021-12-30 | 2022-04-08 | 北京字节跳动网络技术有限公司 | 系统升级方法、装置、存储介质和电子设备 |
CN114968312B (zh) * | 2022-07-12 | 2022-11-22 | 紫光同芯微电子有限公司 | 用于变更智能卡cap文件的方法、装置及系统 |
CN115756496B (zh) * | 2023-01-09 | 2023-04-14 | 苏州浪潮智能科技有限公司 | 镜像的编译方法、装置、计算机可读存储介质及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722386A (zh) * | 2012-05-28 | 2012-10-10 | 华为终端有限公司 | 生成无线固件升级包的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009110616A1 (ja) * | 2008-03-07 | 2009-09-11 | 日本電気株式会社 | 仮想マシンパッケージ生成システム、仮想マシンパッケージ生成方法および仮想マシンパッケージ生成プログラム |
-
2015
- 2015-11-27 CN CN201510854542.XA patent/CN105511911B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722386A (zh) * | 2012-05-28 | 2012-10-10 | 华为终端有限公司 | 生成无线固件升级包的方法和装置 |
Non-Patent Citations (1)
Title |
---|
"基于OMA标准的FOTA差分技术研究与实现";魏娟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20141115;第25-36页 |
Also Published As
Publication number | Publication date |
---|---|
CN105511911A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105511911B (zh) | 系统固件升级包的生成方法及装置 | |
CN106775723B (zh) | 基于Android平台的系统固件定制的方法和Android设备 | |
CN108614718B (zh) | 启动操作系统的方法、装置和实现装置 | |
CN105760201B (zh) | 一种嵌入式装置的启动方法和装置 | |
CN104932973B (zh) | 一种版本兼容测试方法和装置 | |
CN107632828B (zh) | 多dts文件支持方法、编译装置及嵌入式设备 | |
CN109558160A (zh) | 升级方法、嵌入式系统 | |
CN111045714B (zh) | 一种固件更新方法、装置、耳机及计算机可读存储介质 | |
CN108830720A (zh) | 智能合约运行方法、装置、系统和计算机可读存储介质 | |
CN103473067A (zh) | 嵌入式Linux分区与数据还原方法、系统及系统开发方法 | |
CN104679532B (zh) | 内核模块加载方法和装置 | |
CN103942065A (zh) | 用于更新固件兼容性数据的方法和系统 | |
CN103412767A (zh) | 一种应用版本的识别与升级方法以及系统 | |
WO2017033441A1 (ja) | システム構築支援システム、方法および記憶媒体 | |
CN108509215A (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN106796525A (zh) | 按需加载动态脚本语言代码以减少内存使用 | |
CN103853535A (zh) | 修改中间件的方法和装置 | |
CN107632901A (zh) | 一种应用程序运行异常的自修复方法及装置 | |
US10387124B2 (en) | System and method for creating domain specific language | |
CN110209420A (zh) | 一种更新引导加载程序的方法及装置 | |
CN106055375A (zh) | 应用程序安装方法及装置 | |
CN108694049B (zh) | 一种更新软件的方法和设备 | |
CN103514004A (zh) | Windows系统下的系统环境管理方法及装置 | |
CN112463596B (zh) | 测试用例数据的处理方法、装置、设备以及处理设备 | |
CN110333872A (zh) | 一种应用的处理方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |