本申请公开了一种实现升级包制作的方法及装置,包括:根据确定的用于制作升级包的数据块的大小,分别对升级前的镜像文件和升级的镜像文件进行数据块划分,并按照相同的排序方式对划分的数据块进行排序;对排序位置相同的升级的镜像文件的数据块和升级前的镜像文件的数据块,分别计算各对应数据块的偏移量;根据计算出的偏移量对发生偏移的升级的镜像文件的数据块进行调整,以制作升级包。本发明专利技术通过对升级的镜像文件进行数据块划分并排序,计算各对应数据块的偏移量,对数据块进行调整,满足了系统镜像完整性校验功能的规范,通过偏移量对发生改变的数据块进行调整,节省了升级包制作的耗时,使升级文件的制作满足生产要求。
【技术实现步骤摘要】
本申请涉及软件升级技术,尤指一种基于块设备的实现升级包制作的方法及装置。
技术介绍
随着智能手机愈来愈普及,人们对智能手机的要求也越来越高,尤其是手机的信息安全更是备受重视。系统开发者以及设备制造商也在从各个方面尝试加强手机的安全性。Android智能手机系统开发商Google在最新版本中推出了系统镜像完整性校验功能,该功能通过每次开机对系统镜像进行完整性校验的方法确保智能手机系统没有被攻击者进行恶意篡改,但是这一机制不能与目前android系统广泛应用的空中下载技术(OTA)升级机制兼容工作。图1为现有的升级机制示意图,如图1所示,现有Android终端系统升级的方法大致包括:在生产过程中比较系统中对应文件的差别,通过计算出相应的二进制差分数据,根据二进制差分数据将升级文件打包成OTA升级包;移动终端根据升级包将系统中对应文件升级至新版本,达到整个系统升级的目的。虽然升级后系统文件的内容保持与新版本一致,但是由于升级过程中每个具体文件的修改顺序,修改方法都不同。即,在升级过程中将系统文件的镜像文件由旧版本更新至新版本,每个文件更新的顺序是由升级程序决定。旧的系统的镜像文件的升级顺序与重新构建一个完整的新的系统的镜像文件是完全不同的,并且更新后的文件具体写入物理存储设备的位置、也是由文件系统根据自己的算法以及当前设备可用空间位置计算出来的。这些都会导致由旧版本到新构建的系统镜像文件在文件系统底层是不相同的,即导致关于系统文件的元数据被修改了。这样,是不满足系统镜像完整性校验功能的规范的,会导致升级后系统镜像校验失败。为解决这一问题,Android提出的方法主要是将整个升级的镜像文件作为一个单独的文件,从块设备层面上进行二进制差分比较。这样虽然可以满足系统镜像完整性校验功能的规范,但是,android系统镜像非常大(一般大约在600M-1G字节左右),将整个升级的镜像文件与升级前的镜像文件作为整体进行二进制差分,整个升级过程对资源和时间消耗巨大,通过验证确定,采用一般个人电脑完成上述过程大约需要几天的时间。也就是说,将升级文件作为单独文件进行二进制差分的方法,虽然能满足系统镜像完整性校验功能的规范,但并不具备可生产性即不可行。
技术实现思路
为了解决上述问题,本专利技术提供一种实现升级包制作的方法及装置,能够满足系统镜像完整性校验功能的规范,同时减少升级包制作时长,适用于生产。为了达到本专利技术的目的,本申请提供一种升级包制作的方法;包括:根据确定的用于制作升级包的数据块的大小,分别对升级前的镜像文件和升级的镜像文件进行数据块划分,并按照相同的排序方式对划分的数据块进行排序;对排序位置相同的升级的镜像文件的数据块和升级前的镜像文件的数据块,分别计算各对应数据块的偏移量;根据计算出的偏移量对发生偏移的升级的镜像文件的数据块进行调整,以制作升级包。进一步地,该方法之前还包括:根据升级的镜像文件大小确定用于制作升级包的数据块的大小。进一步地,根据升级的镜像文件大小确定用于制作升级包的数据块的大小具体包括:当升级的镜像文件小于600兆Μ时,确定所述用于制作升级包的数据块的大小为4Μ ;当升级的镜像文件大于等于600Μ且小于1.2G时,确定所述用于制作升级包的数据块的大小为8Μ ;当升级的镜像文件大于等于1.2G且小于1.8G时,确定所述用于制作升级包的数据块的大小为12Μ ;当升级的镜像文件大于等于1.8G且小于2.4G时,确定所述用于制作升级包的数据块的大小为16Μ ;当升级的镜像文件大于等于2.4G且小于3G时,确定所述用于制作升级包的数据块的大小为20Μ ;当升级的镜像文件大于等于3G时,确定所述用于制作升级包的数据块的大小为24Μ。进一步地,分别对升级前的镜像文件和升级的镜像文件进行数据块划分,并按照相同的排序方式对划分的数据块进行排序具体包括:分别对所述升级前的镜像文件和升级的镜像文件划分的若干个大小相同的数据块,按照递增排序的排序方式对所述划分的数据块进行排序。进一步地,计算各对应数据块的偏移量包括:对排序位置相同的升级的镜像文件的数据块和升级前的镜像文件的数据块,分别计算各对应数据块相对应的偏移量。进一步地,根据计算出的偏移量对发生偏移的升级的镜像文件的数据块进行调整,以制作升级包包括:以计算出的偏移量作为参数,对升级的镜像文件的发生偏移的各数据块的数据通过二进制差分进行调整,以制作升级包。另一方面,本申请还提供一种实现升级包制作的装置,包括:数据块划分单元、偏移量计算单元和升级包制作单元;其中,数据块划分单元,用于根据确定的用于制作升级包的数据块的大小,分别对升级前的镜像文件和升级的镜像文件进行数据块划分,并按照相同的排序方式对划分的数据块进打排序;偏移量计算单元,用于对排序位置相同的升级的镜像文件的数据块和升级前的镜像文件的数据块,分别计算各对应数据块的偏移量;升级包制作单元,用于根据计算出的偏移量对发生偏移的升级的镜像文件的数据块进行调整,以制作升级包。进一步地,该装置还包括确定单元,用于根据升级系统的镜像文件大小设置用于制作升级包的数据块的大小。进一步地,确定单元具体用于:当升级的镜像文件小于600兆(M)时,设置所述用于制作升级包的数据块的大小为4M ;当升级的镜像文件大于等于600M且小于1.2G时,设置所述用于制作升级包的数据块的大小为8M ;当升级的镜像文件大于等于1.2G且小于1.SG时,设置所述用于制作升级包的数据块的大小为12M ;当升级的镜像文件大于等于1.SG且小于2.4G时,设置所述用于制作升级包的数据块的大小为16M ;当升级的镜像文件大于等于2.4G且小于3G时,设置所述用于制作升级包的数据块的大小为20M ;当升级的镜像文件大于等于3G时,设置所述用于制作升级包的数据块的大小为24M。进一步地,数据块划分单元具体用于:根据确定的用于制作升级包的数据块的大小,分别对升级前的镜像文件和升级的镜像文件划分划分为若干个大小相同的数据块,并按照相同的递增排序的排序方式对划分的数据块进行排序。进一步地,偏移量计算单元具体用于,对排序位置相同的升级的镜像文件的数据块和升级前的镜像文件的数据块,分别计算各对应数据块相对应的偏移量。进一步地,升级包制作单元具体用于,以计算出的偏移量作为参数,对升级的镜像文件的发生偏移的各数据块的数据通过二进制差分进行调整,以制作升级包。与现有技术相比,本专利技术提供的技术方案,包括:根据确定的用于制作升级包的数据块的大小,分别对升级前的镜像文件和升级的镜像文件进行数据块划分,并按照相同的排序方式对划分的数据块进行排序;对排序位置相同的升级的镜像文件的数据块和升级前的镜像文件的数据块,分别计算各对应数据块的偏移量;根据计算出的偏移量对发生偏移的升级的镜像文件的数据块进行调当前第1页1 2 3 本文档来自技高网...
【技术保护点】
一种实现升级包制作的方法,其特征在于,包括:根据确定的用于制作升级包的数据块的大小,分别对升级前的镜像文件和升级的镜像文件进行数据块划分,并按照相同的排序方式对划分的数据块进行排序;对排序位置相同的升级的镜像文件的数据块和升级前的镜像文件的数据块,分别计算各对应数据块的偏移量;根据计算出的偏移量对发生偏移的升级的镜像文件的数据块进行调整,以制作升级包。
【技术特征摘要】
【专利技术属性】
技术研发人员:宋沈阳,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。