升级包的生成方法及装置制造方法及图纸

技术编号:20517600 阅读:29 留言:0更新日期:2019-03-06 02:33
本发明专利技术提供了一种升级包的生成方法及装置,其中,该方法包括:判断根目录下是否存在签名目标文件;在存在所述签名目标文件时,解压所述签名目标文件,删除其中的IMAGES目录,并修改待升级的文件内容;使用指定脚本重新生成系统镜像,并生成升级包。通过本发明专利技术,解决了相关技术中在基于块制作升级包时不能生成特定大小的升级包的问题。

Generation Method and Device of Upgrade Package

The invention provides a method and device for generating an upgrade package, which includes: judging whether there is a signature target file in the root directory; decompressing the signature target file, deleting the IMAGES directory and modifying the content of the file to be upgraded when the signature target file exists; using the specified script to regenerate the system image and generate the upgrade package. The invention solves the problem that a specific size upgrade package can not be generated in block-based upgrade package making in related technology.

【技术实现步骤摘要】
升级包的生成方法及装置
本专利技术涉及计算机领域,具体而言,涉及一种升级包的生成方法及装置。
技术介绍
随着Android版本不断的更新,移动终端的软件版本一般也需要随之更新,这样能满足用户的使用需求,提高用户体验等。一般Android移动设备都有空中升级的应用软件,这个应用软件会跟对应的服务器交互,搜索到服务器上面存放的升级包,下载此升级包并且通过移动终端的recovery模式升级到新的版本,从而达到更新系统版本的目的。据我们所知,Google的升级方案是把升级包通过Gota(Google自己的空中下载软件升级)服务器下载到移动终端的cache分区中(如果cache分区不够会下载到data分区中),现在Google的L和M平台都是基于块设备进行制作升级包的,所做出来的升级包比较大,尤其是跨平台的升级,比如AndroidL升级到M,做出来的升级包都达到1G左右。即使在同平台上面制作的升级包,一般也都在20M以上,大都是在20M到250M之间,这样问题就来了,要是需要制作3M左右的升级包难度会比较大,实际上为了解决某些特定的问题,或者满足用户的特定需求,升级包大小只能为特定的大小(比如说美国运行商AT&T需要3M,50M,500M大小的升级包)。为了解决这个问题比较容易想到的方法就是一直编译特定需求的版本,然后再次去做升级包,这样反复尝试去做版本,再做包,也许可能可以做出符合容量大小的升级包,这样会浪费很多时间,50M和500M大小的升级包可以做出来,但3M大小的升级包几乎是不能制作出来,原因是重新编译的一个版本,其中的system镜像是一个ext4的文件系统,即便内容完全相同,从二进制的角度来看是完全不相同的,比如一个文件/system/build.prop存放块的绝对地址是不一样,甚至一个文件可能存放在不同的物理地址上面,所以前后两个版本基于块设备做包差异一般都是非常大的,这就是很难做出3M大小包的原因。有关制作特定大小升级包方面的方案还没有出现。针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
技术实现思路
本专利技术实施例提供了一种升级包的生成方法及装置,以至少解决相关技术中在基于块制作升级包时不能生成特定大小的升级包的问题。根据本专利技术的一个实施例,提供了一种升级包的生成方法,包括:判断根目录下是否存在签名目标文件;在存在所述签名目标文件时,解压所述签名目标文件,删除其中的IMAGES目录,并修改待升级的文件内容;使用指定脚本重新生成系统镜像,并生成升级包。可选地,所述方法还包括:在根目录下不存在所述签名目标文件时,把系统镜像转换为ext4格式,并通过system.map查找待修改文件的绝对地址;使用winhex工具修改system目录中的文件内容,生成新的系统镜像后转换为sparse格式,并生成升级包。可选地,修改升级的文件内容包括以下至少之一:修改SYSTEM文件;修改build.prop文件;修改SYSTEM文件的外部版本号信息;修改build.prop文件的外部版本号信息。可选地,在生成升级包之后,所述方法还包括:在所述升级包中加入预定容量的二进制数据得到指定升级包;使用签名脚本给所述指定升级包签名。可选地,在解压所述签名目标文件之前,所述方法还包括:拷贝一份所述签名目标文件到指定存储设备,并重新命名拷贝版本的签名目标文件;将所述拷贝版本的签名目标文件确定为待解压的签名目标文件。根据本专利技术的另一个实施例,提供了一种升级包的生成装置,包括:判断模块,用于判断根目录下是否存在签名目标文件;第一处理模块,用于在存在所述签名目标文件时,解压所述签名目标文件,删除其中的IMAGES目录,并修改待升级的文件内容;第一生成模块,用于使用指定脚本重新生成系统镜像,并生成升级包。可选地,所述装置还包括:第二处理模块,用于在根目录下不存在所述签名目标文件时,把系统镜像转换为ext4格式,并通过system.map查找待修改文件的绝对地址;第二生成模块,用于使用winhex工具修改system目录中的文件内容,生成新的系统镜像后转换为sparse格式,并生成升级包。可选地,所述装置还包括:添加模块,用于在生成升级包之后,在所述升级包中加入预定容量的二进制数据得到指定升级包;签名模块,用于使用签名脚本给所述指定升级包签名。根据本专利技术的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:判断根目录下是否存在签名目标文件;在存在所述签名目标文件时,解压所述签名目标文件,删除其中的IMAGES目录,并修改待升级的文件内容;使用指定脚本重新生成系统镜像,并生成升级包。通过本专利技术,在存在签名目标文件时,解压签名目标文件,删除其中的IMAGES目录,并修改待升级的文件内容,使用指定脚本重新生成系统镜像,并生成升级包。解决了相关技术中在基于块制作升级包时不能生成特定大小的升级包的问题。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据本专利技术实施例的升级包的生成方法的流程图;图2是根据本专利技术实施例的升级包的生成装置的结构框图;图3是本专利技术实施例的数据流程示意图;图4是本专利技术本实施例提供的方法的流程示意图。具体实施方式下文中将参考附图并结合实施例来详细说明本专利技术。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。实施例1在本实施例中提供了一种升级包的生成方法,图1是根据本专利技术实施例的升级包的生成方法的流程图,如图1所示,该流程包括如下步骤:步骤S102,判断根目录下是否存在签名目标文件;步骤S104,在存在签名目标文件时,解压签名目标文件,删除其中的IMAGES目录,并修改待升级的文件内容;步骤S106,使用指定脚本重新生成系统镜像,并生成升级包。通过上述步骤,在存在签名目标文件时,解压签名目标文件,删除其中的IMAGES目录,并修改待升级的文件内容,使用指定脚本重新生成系统镜像,并生成升级包。解决了相关技术中在基于块制作升级包时不能生成特定大小的升级包的问题。可选地,上述步骤的执行主体可以为终端,升级工具等,但不限于此。本实施例中的指定脚本可以是img_from_target_files脚本。可选地,本实施例中,作为另外一个实施场景,包括:S11,在根目录下不存在签名目标文件时,把系统镜像转换为ext4格式,并通过system.map查找待修改文件的绝对地址;S12,使用winhex工具修改system目录中的文件内容,生成新的系统镜像后转换为sparse格式,并生成升级包。在本实施例中,修改升级的文件内容包括以下至少之一:修改SYSTEM文件;修改build.prop文件;修改SYSTEM文件的外部版本号信息;修改build.prop文件的外部版本号信息。在本实施例中,在生成升级包之后,在前一次生成的升级包没有符合特定大小的要求时,还包括:S21,在升级包中加入预定容量的二进制数据得到指定升级包;加本文档来自技高网
...

【技术保护点】
1.一种升级包的生成方法,其特征在于,包括:判断根目录下是否存在签名目标文件;在存在所述签名目标文件时,解压所述签名目标文件,删除其中的IMAGES目录,并修改待升级的文件内容;使用指定脚本重新生成系统镜像,并生成升级包。

【技术特征摘要】
1.一种升级包的生成方法,其特征在于,包括:判断根目录下是否存在签名目标文件;在存在所述签名目标文件时,解压所述签名目标文件,删除其中的IMAGES目录,并修改待升级的文件内容;使用指定脚本重新生成系统镜像,并生成升级包。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在根目录下不存在所述签名目标文件时,把系统镜像转换为ext4格式,并通过system.map查找待修改文件的绝对地址;使用winhex工具修改system目录中的文件内容,生成新的系统镜像后转换为sparse格式,并生成升级包。3.根据权利要求1所述的方法,其特征在于,修改升级的文件内容包括以下至少之一:修改SYSTEM文件;修改build.prop文件;修改SYSTEM文件的外部版本号信息;修改build.prop文件的外部版本号信息。4.根据权利要求1或2所述的方法,其特征在于,在生成升级包之后,所述方法还包括:在所述升级包中加入预定容量的二进制数据得到指定升级包;使用签名脚本给所述指定升级包签名。5.根据权利要求1所述的方法,其特征在于,在解压所述签名目标文件之前,所述方法还包括:拷贝一份所述签名目标文件到指定存储设备,并重新命名拷贝版本的签名目标文件;将所述拷贝版...

【专利技术属性】
技术研发人员:刘路
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1