一种终端软件升级方法及装置的制造方法

文档序号:9217050阅读:722来源:国知局
一种终端软件升级方法及装置的制造方法
【技术领域】
[0001] 本发明涉及差分升级技术,特别涉及一种专门针对内存空间很小的设备的分治差 分升级方案。
【背景技术】
[0002] 很多终端设备需要进行相应的固件升级,但是由于存储空间的限制导致不能容纳 一个完整的版本数据进行升级,所以需要根据两个版本之间的差异性,制作差分升级包,以 减少存储空间的开销。
[0003] 但是目前主流的差分方案提供厂商并不开源,而开源的差分方案实际上并不能解 决内存空间开销上过大,而实际的通讯设备如数据卡、uFi类设备,它们出于成本的考虑,用 于放置版本数据的flash空间都比较小,要想在这一类设备上进行版本升级,就需要一个 针对有限内存空间设备的差分算法方案。

【发明内容】

[0004] 本发明的目的在于提供一种终端软件升级方法及装置,能更好地解决在内存空间 较小的设备上实现软件升级的问题。
[0005] 根据本发明的一个方面,提供了一种终端软件升级方法,包括:
[0006] 持有源版本软件的终端获取用于升级源版本软件的差分包;
[0007] 通过解析所述差分包,得到由多个具有控制命令的元素组成的差分信息集合;
[0008] 按照各元素在所述差分信息集合中的顺序和各自具有的控制命令,依次对源版本 软件中相应区域的数据进行更新,从而使源版本软件升级为目标版本软件。
[0009] 优选地,所述的持有源版本软件的终端获取用于升级源版本软件的差分包的步骤 包括:
[0010] 终端从网络侧下载所述用于升级源版本软件的差分包,并将所述差分包读取到内 存。
[0011] 优选地,所述控制命令包括用来指示数据复制的控制命令和用来指示数据替换的 控制命令,所述的按照各元素在所述差分信息集合中的顺序和各自具有的控制命令,依次 对源版本软件中相应区域的数据进行更新的步骤包括:
[0012] 终端利用当前元素所具有的用来指示数据替换的控制命令,获取用来替换源版本 软件中指定区域数据的目标版本软件数据,并将所述目标版本软件数据覆盖写入到所述指 定区域;
[0013] 所述目标版本软件数据覆盖写入到所述指定区域后,终端按照所述差分信息集合 中的元素顺序,对下一个元素指定区域的数据进行更新。
[0014] 优选地,当当前元素具有用来指示数据复制的控制命令,则直接按照所述差分信 息集合中的元素顺序,对下一个元素指定区域的数据进行更新。
[0015] 优选地,还包括网络侧生成所述差分包的步骤,包括:
[0016] 对源版本软件和目标版本软件的二进制数据分别进行处理,得到具有多个属性元 素的源版本多重元素集合和目标版本多重元素集合;
[0017] 按照源版本多重元素集合中各元素的升级顺序,依次计算所述源版本多重元素集 合和目标版本多重元素集合之间的各对应元素的差分信息;
[0018] 根据所述源版本多重元素集合和目标版本多重元素集合之间的各对应元素的差 分信息,生成用于终端软件升级的差分包。
[0019] 优选地,所述的根据所述源版本多重元素集合和目标版本多重元素集合之间的各 对应元素的差分信息,生成用于终端软件升级的差分包的步骤包括:
[0020] 利用所述源版本多重元素集合和目标版本多重元素集合之间的各对应元素的差 分信息,生成相应的控制命令;
[0021] 按照预定格式,对所生成的控制命令和所述差分信息进行封装并压缩,形成成差 分包输出。
[0022] 优选地,所述差分信息用于标识源版本软件和目标版本软件之间的匹配区域或非 匹配区域。
[0023] 优选地,当所述差分信息用于标识源版本软件和目标版本软件之间的匹配区域 时,生成用来指示数据复制的控制命令。
[0024] 优选地,当所述差分信息用于标识源版本软件和目标版本软件之间的非匹配区域 时,生成用来指示数据替换的控制命令。
[0025] 根据本发明的另一方面,提供了一种终端软件升级装置,包括:
[0026] 差分包获取模块,用于获取用来升级终端源版本软件的差分包;
[0027] 差分包解析模块,用于通过解析所述差分包,得到由多个具有控制命令的元素组 成的差分信息集合;
[0028] 软件升级模块,用于按照各元素在所述差分信息集合中的顺序和各自具有的控制 命令,依次对源版本软件中相应区域的数据进行更新,从而使源版本软件升级为目标版本 软件。
[0029] 与现有技术相比较,本发明的有益效果在于:
[0030] 本发明采用分治的思路节省了内存开销,解决了在内存空间很小的设备上进行原 地差分升级的问题,并且利用各项优化措施在一定程度上提升了压缩效率和做包时间,减 小了差分包尺寸,提升了工作效率,节约了人力成本,使得差分升级技术可以得到进一步推 广和应用。
【附图说明】
[0031] 图1是本发明提供的终端软件升级方法原理框图;
[0032] 图2是本发明提供的终端软件升级装置框图;
[0033] 图3是本发明实施例提供的分治差分算法示意图;
[0034] 图4是本发明实施例提供的差分模块示意图;
[0035] 图5是本发明实施例提供的差分方案的模块示意图;
[0036] 图6是本发明实施例提供的元数据中控制区域的结构示意图;
[0037] 图7是本发明实施例提供的分治差分方案的详细过程;
[0038]图8是本发明实施例提供的终端利用差分包更新软件版本的流程图;
[0039] 图9是本发明实施例提供的终端利用差分数据更新版本数据元素的示意图;
[0040] 图10是本发明实施例提供的控制命令结构组成图;
[0041] 图11是本发明实施例提供的setPointerCache作为命令的缓存器,该缓存器的各 项值表征意义的示意图;
[0042] 图12是本发明实施例提供的SET_PTR_DELTA_COMMAND控制命令所用到的各项 cache的索引值示意图;
[0043] 图13是本发明实施例提供的所使用的几种Set命令对应的命令编码值示意图;
[0044] 图14是本发明实施例提供的对所有表示长度的数据实施优化编码后的数据长 度,即对各项值编码所需要用到的数据长度的示意图;
[0045] 图15是本发明实施例提供的控制命令中代表长度的数据值在经过编码后的数据 组成结构示意图。
【具体实施方式】
[0046] 以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优 选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0047] 图1是本发明提供的终端软件升级方法原理框图,如图1所述,步骤包括:
[0048] 步骤S101:持有源版本软件的终端获取用于升级源版本软件的差分包;
[0049] 在所述步骤S101中,终端从网络侧下载所述用于升级源版本软件的差分包,并将 所述差分包读取到内存。
[0050] 步骤S102:通过解析所述差分包,得到由多个具有控制命令的元素组成的差分信 息集合;
[0051] 步骤S103 :按照各元素在所述差分信息集合中的顺序和各自具有的控制命令,依 次对源版本软件中相应区域的数据进行更新,从而使源版本软件升级为目标版本软件。
[0052] 在所述步骤S103中,所述控制命令包括用来指示数据复制的控制命令和用来指 示数据替换的控制命令,终端利用当前元素所具有的用来指示数据替换的控制命令,获取 用来替换源版本软件中指定区域数据的目标版本软件数据,并将所述目标版本软件数据覆 盖写入到所述指定区域;所述目标版本软件数据覆盖写入到所述指定区域后,终端按照所 述差分信息集合中的元素顺序,对下一个元素指定区域的数据进行更新。进一步地,当当前 元素具有用来指示数据复制的控制命令,则直接按照所述差分信息集合中的元素顺序,对 下一个元素指定区域的数据进行更新。
[0053] 上述差分包在网络侧生成,具体步骤包括:对源版本软件和目标版本软件的二进 制数据分别进行处理,得到具有多个属性元素的源版本多重元素集合和目标版本多重元素 集合;按照源版本多重元素集合中各元素的升级顺序,依次计算所述源版本多重元素集合 和目标版本多重元素集合之间的各对应元素的差分信息;根据所述源版本多重元素集合和 目标版本多重元素集合之间的各对应元素的差分信息,生成用于终端软件升级的差分包。 进一步地,利用所述源版本多重元素集合和目标版本多重元素集合之间的各对应元素的差 分信息,生成相应的控制命令;按照预定格式,对所生成的控制命令和所述差分信息进行封 装并压缩,形成成差分包输出。其中,所述差分信息用于标识源版本软件和目标版本软件之 间的匹配区域或非匹配区域。当所述差分信息用于标识源版本软件和目标版本软件之间的 匹配区域时,生成用来指示数据复制的控制命令。当所述差分信息用于标识源版本软件和 目标版本软件之间的非匹配区域时,生成用来指示数据替换的控制命令。
[0054] 图2是本
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1