CN104991796B - 一种连续升级的方法及装置 - Google Patents
一种连续升级的方法及装置 Download PDFInfo
- Publication number
- CN104991796B CN104991796B CN201510347257.9A CN201510347257A CN104991796B CN 104991796 B CN104991796 B CN 104991796B CN 201510347257 A CN201510347257 A CN 201510347257A CN 104991796 B CN104991796 B CN 104991796B
- Authority
- CN
- China
- Prior art keywords
- upgrade package
- upgrading
- version
- upgrade
- terminal
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种连续升级的方法及装置,涉及软件升级领域,用以实现连续升级,并降低开发成本。该方法包括:获取并存储原始版本到目标版本所需的升级包集合;升级包集合中包含至少一个升级包;将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包;终端的当前版本在连续升级的过程中根据第一升级包的新版本动态变化;根据第一升级包升级recovery分区,重新加载升级后的recovery分区到内存,根据第一升级包升级系统分区,并跳转至将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包,重新确定新的第一升级包,直至在升级包集合中确定不出新的第一升级包为止。
Description
技术领域
本发明涉及软件升级领域,尤其涉及一种连续升级的方法及装置。
背景技术
空中下载技术(Over the Air Technology,OTA)是一种通过无线网络进行数据下载的技术,现已被广泛应用于手机、平板电脑等设备的网络升级中。目前均是通过下载服务器端提供的针对客户端当前软件版本的差分文件并将差分文件通过打补丁的方式更新到当前软件版本中,从而实现OTA的升级。差分文件一般只包含了需要升级的文件信息,例如,差分文件V2-V1,只包含了版本V2相对版本V1发生变化的应用信息,若要通过差分文件V2-V1实现升级,客户端的当前版本必须为V1,升级完成后客户端的版本就变为V2。
假设终端的现在使用的原始版本为V3,需要升级的目标版本为V5,现有技术中通常采用的第一种OTA升级方法是,终端获取差分文件V4-V3,并根据差分文件V4-V3将当前版本由V3升级到V4,在此次升级完成后正常工作,直至下一次开机或者再次打开应用程序,再终端获取差分文件V5-V4,并根据差分文件V5-V4将当前版本由V4升级到V5。这种OTA升级方法的缺点是在版本升级时,一次升级只能将升级一个版本,无法实现连续升级。
为了能够实现将原始版本一次性升级到目标版本,现有技术中第二种OTA升级方法采用的方式是:根据不同的目标版本,提供原始版本到不同目标版本的不同差分文件。例如,若目标版本为V5,则在服务器上配置V5-V1、V5-V2、V5-V3、V5-V4这四种差分文件;若目标版本为V4,则在服务器上配置V4-V1、V4-V2、V4-V3这三种差分文件。终端通过下载对应的差分文件则能实现一步到位的升级。但这种OTA升级方法的缺点是,需要制作大量的差分文件,若最新版本为Vn(n为正整数),生厂商共需制作n(n-1)/2种差分文件,而每种差分文件都需要进行测试验证,开发成本大。
发明内容
本发明的实施例提供一种连续升级的方法及装置,通过获取包含多个升级包的升级包集合,一次将终端从原始版本升级为目标版本,实现连续升级,并降低开发成本。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种连续升级的方法,包括:获取并存储原始版本到目标版本所需的升级包集合;原始版本是终端在连续升级前使用的版本;升级包集合中包含至少一个升级包;将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包;终端的当前版本是终端当前使用的版本,终端的当前版本在连续升级的过程中根据第一升级包的新版本动态变化;根据第一升级包升级恢复recovery分区,重新加载升级后的recovery分区到内存,根据第一升级包升级系统分区,并跳转至将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包,重新确定新的第一升级包,直至在升级包集合中确定不出新的第一升级包为止。
第二方面,本发明实施例提供了一种连续升级的装置,包括:获取单元,用于获取并存储原始版本到目标版本所需的升级包集合;原始版本是终端在连续升级前使用的版本;升级包集合中包含至少一个升级包;确定单元,用于将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包;终端的当前版本是终端当前使用的版本,终端的当前版本在连续升级的过程中根据第一升级包的新版本动态变化;处理单元,同于根据第一升级包升级恢复recovery分区,重新加载升级后的recovery分区到内存,根据第一升级包升级系统分区,并跳转至将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包,触发确定单元重新确定新的第一升级包,直至在升级包集合中确定单元确定不出新的第一升级包为止。
本发明实施例提供了一种连续升级的方法及装置,获取并存储原始版本到目标版本所需的升级包集合;将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包;根据第一升级包升级恢复recovery分区,重新加载升级后的recovery分区到内存,根据第一升级包升级系统分区,并跳转至将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包,重新确定新的第一升级包,直至在升级包集合中确定不出新的第一升级包为止。这样,在最新版本为Vn的情况下,终端从原始版本一次性升级到任一目标版本时,生厂商最多只需要制作及测试n个升级包即可,大大减少了需要制作及测试的升级包,降低了开发成本。例如,最新版本为V5,生厂商只需要制作并测试V2-V1、V3-V2、V4-V3、V5-V4的四个升级包,若目标版本为V5,则使用V2-V1、V3-V2、V4-V3、V5-V4四个升级包即可;若目标版本为V4,则需要使用V2-V1、V3-V2、V4-V3三个升级包即可。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种连续升级的方法的流程示意图;
图2为本发明实施例提供的另一种连续升级的方法的流程示意图;
图3为本发明实施例提供的一种连续升级的装置的功能示意图;
图4为本发明实施例提供的另一种连续升级的装置的功能示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种连续升级的方法,如图1所示,包括:
101、获取并存储原始版本到目标版本所需的升级包集合。
其中,原始版本是终端在连续升级前使用的版本;升级包集合中包含至少一个升级包。
需要说明的是,目标版本是终端在连续升级后预计达到的版本。本发明实施例中的目标版本可以是已发布的所有版本中的最新版本,也可以不是最新版本,只要目标版本是比原始版本高的版本即可。示例性的,若终端的原始版本为V1,已发布的最新版本为V5,那么目标版本可以是V5,也可以是V2、V3或者V4。
需要说明的是,升级包集合包括从原始版本升级到目标版本所需的所有升级包。升级包集合中的每一升级包都有携带有两个版本号:在先版本号和新版本号,分别对应在先版本和新版本,其中,在先版本号用于指示该升级包需要对哪一版本进行升级,新版本号用于指示根据该升级包将终端升级到哪一版本。升级包集合中的升级包中一定有一个升级包的在先版本为原始版本,一定有一个升级包的新版本为目标版本,一个升级包的新版本对应另一升级包的原始版本。
需要说明的是,升级包集合中的升级包可以是全包升级包,也可以是差分升级包,本发明对此不做限定。升级包集合中的每一升级包可以是相邻两个版本之间的升级包,也可以是不相邻两个版本的升级包。示例性的,若原始版本为V1,目标版本为V5,中间版本有V2、V3、V4,则可以是升级包集合中的所有升级包都是相邻两个版本之间的升级包,如升级包集合包括:V2-V1升级包、V3-V2升级包、V4-V3升级包、V5-V4升级包;也可以是升级包集合中部分升级包是相邻两个版本的升级包,部分升级包不是相邻两个版本的升级包,如升级包集合包括:V2-V1升级包、V3-V2升级包、V5-V3升级包;还可以是升级包集合中部分升级包都是不相邻两个版本的升级包,如升级包集合包括:V3-V1升级包、V5-V3升级包。其中,优选的是升级包集合中的所有升级包都是相邻两个版本之间的升级包,这样服务器只需要配置两个相邻版本的升级包即可,例如从V1升级至Vn,只需要制作n-1种升级包即可,也只需要测试n-1种升级包,大大降低了开发成本。
具体的,获取升级包集合的过程可以是终端向服务器发送携带原始版本的升级请求消息,服务器根据升级请求消息获得终端的原始保本,并检测目标版本,将原始版本升级到目标版本所需的所有升级包打包发送给终端,终端接收服务器发送的升级包集合;获取升级包集合的过程也可以是,服务器检测更新版本,新版本的信息发送至终端,提示终端是否升级,在终端选择升级的情况下,服务器检测终端的原始版本,并将原始版本升级到目标版本所需的所有升级包打包发送给终端接收服务器发送的升级包集合;获取升级包集合的过程还可以是用户手动从服务器下载丛原版版本升级到目标版本的所有升级包。
102、将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包。
其中,终端的当前版本是终端当前使用的版本,终端的当前版本在连续升级的过程中根据第一升级包的新版本动态变化。
需要说明的是,在终端连续升级之前,终端的当前版本就是原始版本。在连续升级过程中,在每次根据第一升级包成功升级后,终端的当前版本就是第一升级包中的新版本。在终端成功进行连续升级后,终端的当前版本就是目标版本。
具体的,从终端获取终端当前使用的版本的版本号,然后确定升级包集合中是否有升级包的在先版本号与终端的当前版本的版本号相同,在确定有相同的情况下,将确定出的升级包认定为第一升级包。
需要说明的是,由于升级包集合中包含从原始版本升级到目标版本所需的所有升级包,各升级包之间的版本号的连续的,从升级包集合中依次确定出的第一升级包就是将终端从原始版本升级至目标版本依次所需的升级包。
需要说明的是,若能够确定出第一升级包,则说明终端的当前版本还不是目标版本,所以终端还需要继续升级;若不能够确定出第一升级包,则说明终端的当前版本就是目标版本,此时连续升级完毕。
103、根据第一升级包升级恢复recovery分区,重新加载升级后的recovery分区到内存;根据第一升级包升级系统分区,并跳转至将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包,重新确定新的第一升级包,直至在升级包集合中确定不出新的第一升级包为止。
需要说明的是,在升级过程中,终端必须先进入工程模式(即恢复(recovery)模式),在工程模式下才能够升级recovery分区,然后升级recovery分区,并且升级recovery分区之后需要重新启动recovery分区并进入工程模式,即将升级后的recovery加载到运行内存中,以使操作系统挂载升级后的recovery分区,然后才能够升级系统分区。
具体的,进入工程模式,终端根据第一升级包中升级recovery分区的部分文件升级终端的recovery分区,recovery分区升级完成后,终端重新启动,在启动过程中操作系统加载升级后的recovery分区到内存,然后终端根据第一升级包中升级系统分区的部分文件升级终端的系统分区。此时终端根据第一升级包升级完毕,终端需要跳转至步骤102,重新确定出新的第一升级包,直到确定不出新的第一升级包为止,终端此次连续升级才完毕。
需要说明的是,现有技术中recovery分区的升级通常是先升级引导(英语:boot)分区,然后根据引导分区与recovery分区的差分包升级recovery分区,这种升级方式必须经过一次正常开机,recovery分区才会真正被升级,而利用本申请在连续升级过程中并没有开机的过程,而是通过全包升级的方式升级recovery分区。
需要说明的是,在根据第一升级包升级的过程中,终端需要根据第一升级包的类型确定进行全包升级还是差分升级。不论是全包升级还是差分升级,终端根据第一升级包升级的具体过程可参考现有技术中全包升级或差升级的过程,在此不再赘述。
需要说明的是,在第一升级包是通过差分升级的情况下,差分包中可能不携带升级recovery分区的文件,那么在执行步骤103的过程中,就不需要根据第一升级包升级recovery分区,也不用重新加载recovery分区,而是直接升级系统分区。
需要说明的是,第一升级包中除了包括升级recovery分区和系统分区所需的文件之外,还可以包括升级其他分区(如boot分区等)所需的文件。那么在recovery分区升级完成后,还可以根据第一升级包升级其他分区。
需要说明的是,终端在连续升级的过程中,可能某一次根据第一升级包升级失败,那么就可能导致连续升级的失败。为了避免其中一次升级失败后,终端继续升级,所以在每一根据第一升级包升级之后,还可以加入检测步骤,检测此次升级是否成功,在一次升级成功的情况下,才跳转至步骤102重新确定新的第一升级包;在一次升级失败的情况下,可以提示用户升级失败,不执行之后的升级。
本发明实施例提供了一种连续升级的方法,获取并存储原始版本到目标版本所需的升级包集合;将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包;根据第一升级包升级恢复recovery分区,重新加载升级后的recovery分区到内存,根据第一升级包升级系统分区,并跳转至将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包,重新确定新的第一升级包,直至在升级包集合中确定不出新的第一升级包为止。这样,在最新版本为Vn的情况下,终端从原始版本一次性升级到任一目标版本时,生厂商最多只需要制作及测试n个升级包即可,大大减少了需要制作及测试的升级包,降低了开发成本。
实施例二
本发明实施例提供了一种连续升级的方法,如图2所示,包括:
201、确定终端是否支持连续升级。
具体的,终端可以设置标志位,并根据该标识位判断终端是否支持连续升级,或者服务器中存储有能够支持连续升级的终端的产品型号,在获取到终端型号的情况下,确定终端是否支持连续升级。
需要说明的是,根据确定出的结果不同执行不同的步骤,在确定终端支持连续升级的情况下,执行步骤202;在确定终端不支持连续升级的情况下,终端可以根据现有技术中的方式进行升级。
202、在确定终端支持连续升级的情况下,获取并存储原始版本到目标版本所需的升级包集合。
具体的,获取并存储原始版本到目标版本所需的升级包集合的方法可参考步骤101,在此不再说明。
203、获取升级包集合的存储路径。
其中,升级包集合的存储路径中每一升级包存储路径按照升级包的升级顺序依次排列。
需要说明的是,为了终端从升级包集合中方便的确定出第一升级包,可以是按照升级包的升级顺序获取升级包集合中的升级包的存储路径。也可以是服务器在配置升级包集合时,已经按照升级顺序将各升级包打包为升级包集合,终端在获取到升级包集合之后,只需要按照升级包集合中已有顺序将升级包集合中的各升级包依次存储,在获取升级包集合的存储路径时,只需要依次获取各升级包的存储路径即可获取到按照升级顺序排列的各升级包的存储路径。
可选的,由于在升级过程中缓存分区不会发生进行升级,所以可以将获取的存储路径保存在缓存分区中。
204、初始化升级标识为第一值。
其中,升级标识用于指示终端升级recovery分区或者升级系统分区。
需要说明的是,在根据第一升级包升级的过程中,为了使终端能够判断是进行recovery分区升级,还是系统分区升级,所以设置升级标识。
需要说明的是,升级标识可以设置两个可选值,第一值用于指示终端升级recovery分区,第二值用于升级系统分区。例如,用1bit(比特)表示升级标识,该升级标识为0用于指示升级recovery分区,该升级标识为1用于指示升级系统分区。
需要说明的是,在根据第一升级包升级时,先升级recovery分区,然后升级系统分区,所以在初始化升级标识时,将升级标识设置为第一值。
可选的,由于连续升级过程中会重新加载升级后的recovery分区,为了获知本次升级是升级recovery分区还是升级整个系统,将升级标识设置在MISC分区中。
205、将升级包集合的存储路径中排序第一的升级包确定为第一升级包。
具体的,由于获取到的升级包集合中的存储路径是按升级顺序依次排列的,所以可以将存户路径中的第一个升级包的存储路径对应的升级包确定为第一升级包。
206、确定升级标识是否为第一值。
需要说明的是,在根据第一升级包进行升级时,终端需要根据升级标识判断进入何种模式,对哪一部分进行升级。并且根据判断的记过不同执行不同的步骤,在升级标识是第一值的情况下,执行步骤207;在升级标识不是第一值,而是第二值的情况下,执行步骤208。
207、在升级标识是第一值的情况下,根据第一升级包升级recovery分区,将升级标识更新为第二值,重新加载升级后的recovery分区到内存,并跳转至确定升级标识是否为第一值。
需要说明的是,由于在升级完recovery分区后,终端还需要对系统分区进行升级,所以需要将升级标识置为第二值,以便在终端加载升级后的recovery分区之后,终端能够判断出需要对系统分区进行升级。
具体的,关于“根据第一升级包升级recovery分区,重新加载升级后的recovery分区到内存”的描述,可参考步骤103,在此不再赘述。
208、在升级标识是第二值的情况下,根据第一升级包升级系统分区,将升级标识更新为第一值,将存储路径中第一升级包的存储路径删除,并跳转至将升级包集合中排序第一的升级包确定为第一升级包,重新确定新的第一升级包,直至确定存储路径为空。
需要说明的是,由于在系统分区升级完成后,终端根据第一升级包升级完成,终端在确定新的第一升级包后,需要首先对系统分区进行升级,所以需要将升级标识置为第一值,以便在确定新的第一升级包之后,终端能够判断出需要进入工程模式对recovery分区进行升级。
需要说明的是,由于步骤205中总是将升级包集合的存储路径中排序第一的升级包确定为第一升级包,为了避免将已经使用过的升级包确定为第一升级包,所以需要将存储路径中第一个升级包(当前的第一升级包)的存储路径删除。
需要说明的是,由于升级包的存储路径中每一升级包的路径按升级顺序排列,所以存储路径为空,就说明终端已经按升级包集合中的所有升级包升级完毕,此时结束连续升级。
具体的,关于“根据第一升级包升级系统分区”的描述,可参考步骤103,在此不再赘述。
需要说明的是,在连续升级结束后,终端中存储的升级包集合已经使用完毕。为了节省存储空间,可以将升级包集合删除。在连续升级结束后,还可以将升级过程的log(日志)存储至终端,以便终端的后续维护。
本发明实施例提供了一种连续升级的方法,获取并存储原始版本到目标版本所需的升级包集合;获取升级包集合的存储路径,升级包集合的存储路径中每一升级包存储路径按照升级包的升级顺序依次排列;初始化升级标识为第一值;将升级包集合的存储路径中排序第一的升级包确定为第一升级包;确定升级标识是否为第一值;在升级标识是第一值的情况下,根据第一升级包升级recovery分区,将升级标识更新为第二值,重新加载升级后的recovery分区到内存,并跳转至确定升级标识是否为第一值;在升级标识是第二值的情况下,根据第一升级包升级系统分区,将升级标识更新为第一值,将存储路径中第一升级包的存储路径删除,并跳转至将升级包集合中排序第一的升级包确定为第一升级包,重新确定新的第一升级包,直至确定存储路径为空。这样,在最新版本为Vn的情况下,终端从原始版本一次性升级到任一目标版本时,生厂商最多只需要制作及测试n个升级包即可,大大减少了需要制作及测试的升级包,降低了开发成本。进一步的,通过将升级包集合中的升级包按升级顺序排列,终端只需要根据存储路径就能够判断出第一升级包,以及升级是否完成,简化了确定第一升级包的过程,便于实现。
实施例三
图3为本发明实施例提供的一种连续升级的装置的功能示意图。参考图3所示,该装置包括:获取单元301、确定单元302和处理单元303。
获取单元301,用于获取并存储原始版本到目标版本所需的升级包集合。
其中,原始版本是终端在连续升级前使用的版本。升级包集合中包含至少一个升级包。
确定单元302,用于将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包。
其中,终端的当前版本是终端当前使用的版本,终端的当前版本在连续升级的过程中根据第一升级包的新版本动态变化。
处理单元303,用于根据第一升级包升级恢复recovery分区,重新加载升级后的recovery分区到内存,根据第一升级包升级系统分区,并跳转至将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包,触发确定单元302重新确定新的第一升级包,直至在升级包集合中确定单元302确定不出新的第一升级包为止。
进一步的,如图4所示,该装置还包括:初始化单元304。
初始化单元304,用于初始化升级标识为第一值。
其中,升级标识用于指示终端升级recovery分区或者升级系统分区;可选的,升级标识设置在MISC分区。
确定单元302,还用于确定升级标识是否为第一值;
可选的,存储路径设置在缓存分区。
相应的,处理单元303,具体用于在升级标识是第一值的情况下,根据第一升级包升级recovery分区,将升级标识更新为第二值,重新加载升级后的recovery分区到内存,并跳转至确定升级标识是否为第一值;
处理单元303,具体用于在升级标识是第二值的情况下,根据第一升级包升级系统分区,将升级标识更新为第一值。
进一步的,获取单元301,还用于获取升级包集合的存储路径;
其中,升级包集合的存储路径中每一升级包存储路径按照升级包的升级顺序依次排列;
相应的,确定单元302,具体用于将升级包集合的存储路径中排序第一的升级包确定为第一升级包;
处理单元303,还用于将存储路径中第一升级包的存储路径删除;
确定单元302,具体用于确定存储路径为空。
进一步的,确定单元302,还用于确定终端是否支持连续升级;
相应的,获取单元301,具体用于在确定终端支持连续升级的情况下,获取并存储原始版本到目标版本所需的升级包集合。
本发明实施例提供了一种连续升级的装置,获取并存储原始版本到目标版本所需的升级包集合;将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包;根据第一升级包升级恢复recovery分区,重新加载升级后的recovery分区到内存,根据第一升级包升级系统分区,并跳转至将升级包集合中升级包的在先版本与终端的当前版本相同的升级包确定为第一升级包,重新确定新的第一升级包,直至在升级包集合中确定不出新的第一升级包为止。这样,在最新版本为Vn的情况下,终端从原始版本一次性升级到任一目标版本时,生厂商最多只需要制作及测试n个升级包即可,大大减少了需要制作及测试的升级包,降低了开发成本。进一步的,可以通过将升级包集合中的升级包按升级顺序排列,终端只需要根据存储路径就能够判断出第一升级包,以及升级是否完成,简化了确定第一升级包的过程,便于实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种连续升级的方法,其特征在于,包括:
获取并存储原始版本到目标版本所需的升级包集合;所述原始版本是终端在连续升级前使用的版本;所述升级包集合中包含至少一个升级包;
将所述升级包集合中升级包的在先版本与所述终端的当前版本相同的升级包确定为第一升级包;所述终端的当前版本是所述终端当前使用的版本,所述终端的当前版本在连续升级的过程中根据所述第一升级包的新版本动态变化;
根据所述第一升级包升级恢复recovery分区,重新加载升级后的recovery分区到内存,根据所述第一升级包升级系统分区,并跳转至所述将所述升级包集合中升级包的在先版本与所述终端的当前版本相同的升级包确定为第一升级包,重新确定新的第一升级包,直至在所述升级包集合中确定不出新的第一升级包为止。
2.根据权利要求1所述的方法,其特征在于,
在所述根据所述第一升级包升级所述recovery分区之前,还包括:初始化升级标识为第一值;所述升级标识用于指示所述终端升级recovery分区或者升级系统分区;
在所述将所述升级包集合中升级包的在先版本与所述终端的当前版本相同的升级包确定为第一升级包之后,所述根据所述第一升级包升级所述recovery分区之前,还包括:确定所述升级标识是否为第一值;
所述根据所述第一升级包升级所述recovery分区,重新加载升级后的recovery分区到内存包括:
在所述升级标识是所述第一值的情况下,根据所述第一升级包升级所述recovery分区,将所述升级标识更新为第二值,重新加载升级后的recovery分区到内存,并跳转至所述确定所述升级标识是否为所述第一值;
所述根据所述第一升级包升级所述系统分区包括:
在所述升级标识是所述第二值的情况下,根据所述第一升级包升级所述系统分区,将所述升级标识更新为所述第一值。
3.根据权利要求1所述的方法,其特征在于,在所述将所述升级包集合中升级包的在先版本与所述终端的当前版本相同的升级包确定为第一升级包之前,还包括:
获取所述升级包集合的存储路径;其中,所述升级包集合的存储路径中每一升级包存储路径按照升级包的升级顺序依次排列;
所述将所述升级包集合中升级包的在先版本与所述终端的当前版本相同的升级包确定为第一升级包包括:
将所述升级包集合的存储路径中排序第一的升级包确定为所述第一升级包;
在所述根据所述第一升级包升级所述recovery分区,重新加载升级后的recovery分区到内存,根据所述第一升级包升级所述系统分区之后,所述跳转至所述将所述升级包集合中升级包的在先版本与所述终端的当前版本相同的升级包确定为第一升级包之前,还包括:
将所述存储路径中所述第一升级包的存储路径删除;
在所述升级包集合中确定不出所述第一升级包包括:
确定所述存储路径为空。
4.根据权利要求2所述的方法,其特征在于,所述升级标识设置在MISC分区。
5.根据权利要求3所述的方法,其特征在于,所述存储路径设置在缓存分区。
6.根据权利要求2所述的方法,其特征在于,在所述获取并存储原始版本到目标版本所需的升级包集合之前,还包括:
确定所述终端是否支持连续升级;
所述获取并存储原始版本到目标版本所需的升级包集合包括:
在确定所述终端支持连续升级的情况下,获取并存储原始版本到目标版本所需的升级包集合。
7.根据权利要求1所述的方法,其特征在于,
所述升级包集合中的每一升级包是相邻两个版本之间的升级包。
8.一种连续升级的装置,其特征在于,包括:
获取单元,用于获取并存储原始版本到目标版本所需的升级包集合;所述原始版本是终端在连续升级前使用的版本;所述升级包集合中包含至少一个升级包;
确定单元,用于将所述升级包集合中升级包的在先版本与所述终端的当前版本相同的升级包确定为第一升级包;所述终端的当前版本是所述终端当前使用的版本,所述终端的当前版本在连续升级的过程中根据所述第一升级包的新版本动态变化;
处理单元,用于根据所述第一升级包升级恢复recovery分区,重新加载升级后的recovery分区到内存,根据所述第一升级包升级系统分区,并跳转至所述将所述升级包集合中升级包的在先版本与所述终端的当前版本相同的升级包确定为第一升级包,触发所述确定单元重新确定新的第一升级包,直至在所述升级包集合中所述确定单元确定不出新的第一升级包为止。
9.根据权利要求8所述的装置,其特征在于,还包括:初始化单元;
所述初始化单元,用于初始化升级标识为第一值;所述升级标识用于指示所述终端升级recovery分区或者升级系统分区;
所述确定单元,还用于确定所述升级标识是否为第一值;
所述处理单元,具体用于在所述升级标识是所述第一值的情况下,根据所述第一升级包升级所述recovery分区,将所述升级标识更新为第二值,重新加载升级后的recovery分区到内存,并跳转至所述确定所述升级标识是否为所述第一值;
所述处理单元,具体用于在所述升级标识是所述第二值的情况下,根据所述第一升级包升级所述系统分区,将所述升级标识更新为所述第一值。
10.根据权利要求8所述的装置,其特征在于,
所述获取单元,还用于获取所述升级包集合的存储路径;其中,所述升级包集合的存储路径中每一升级包存储路径按照升级包的升级顺序依次排列;
所述确定单元,具体用于将所述升级包集合的存储路径中排序第一的升级包确定为所述第一升级包;
所述处理单元,还用于将所述存储路径中所述第一升级包的存储路径删除;
所述确定单元,具体用于确定所述存储路径为空。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510347257.9A CN104991796B (zh) | 2015-06-19 | 2015-06-19 | 一种连续升级的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510347257.9A CN104991796B (zh) | 2015-06-19 | 2015-06-19 | 一种连续升级的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104991796A CN104991796A (zh) | 2015-10-21 |
CN104991796B true CN104991796B (zh) | 2018-05-25 |
Family
ID=54303612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510347257.9A Active CN104991796B (zh) | 2015-06-19 | 2015-06-19 | 一种连续升级的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104991796B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648798A (zh) * | 2016-12-30 | 2017-05-10 | 歌尔科技有限公司 | 一种跨版本ota动态升级方法 |
CN109002313A (zh) * | 2018-09-12 | 2018-12-14 | 青岛海信移动通信技术股份有限公司 | 基于ota的软件升级方法、装置、设备及存储介质 |
CN110569058B (zh) * | 2019-09-09 | 2023-06-30 | Oppo(重庆)智能科技有限公司 | 系统升级方法、装置、终端及计算机可读存储介质 |
CN111478897A (zh) * | 2020-04-03 | 2020-07-31 | 爱瑟福信息科技(上海)有限公司 | 车辆ecu的ota升级方法及其系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1310388A (zh) * | 2000-02-21 | 2001-08-29 | 英业达股份有限公司 | 借由增量的方式来使数据文件升级的方法 |
CN101356519A (zh) * | 2006-06-19 | 2009-01-28 | 三星电子株式会社 | 用于可利用空中机制的便携式设备的程序升级系统及方法 |
CN103473099A (zh) * | 2013-09-13 | 2013-12-25 | 惠州Tcl移动通信有限公司 | 一种移动终端的软件升级方法和系统 |
CN104021018A (zh) * | 2014-06-06 | 2014-09-03 | 上海卓悠网络科技有限公司 | 终端、生成升级包的方法及识别升级包的方法 |
-
2015
- 2015-06-19 CN CN201510347257.9A patent/CN104991796B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1310388A (zh) * | 2000-02-21 | 2001-08-29 | 英业达股份有限公司 | 借由增量的方式来使数据文件升级的方法 |
CN101356519A (zh) * | 2006-06-19 | 2009-01-28 | 三星电子株式会社 | 用于可利用空中机制的便携式设备的程序升级系统及方法 |
CN103473099A (zh) * | 2013-09-13 | 2013-12-25 | 惠州Tcl移动通信有限公司 | 一种移动终端的软件升级方法和系统 |
CN104021018A (zh) * | 2014-06-06 | 2014-09-03 | 上海卓悠网络科技有限公司 | 终端、生成升级包的方法及识别升级包的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104991796A (zh) | 2015-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104991796B (zh) | 一种连续升级的方法及装置 | |
CN105718268A (zh) | 一种ota多包升级的校验方法及装置 | |
CN106484448A (zh) | 一种软件升级方法及装置 | |
US20070294686A1 (en) | Program upgrade system and method for ota-capable device | |
CN104918114B (zh) | 一种操作系统升级方法及装置 | |
CN104899066A (zh) | 一种连续升级的方法及装置 | |
CN104572206A (zh) | 应用程序自更新和备份恢复的方法 | |
CN104965736B (zh) | 一种连续升级的方法及装置 | |
CN110474977B (zh) | 智能门锁的固件升级方法、固件升级系统和智能门锁 | |
CN102929768B (zh) | 提示误装软件的方法和客户端 | |
CN103580908A (zh) | 服务器的配置方法及系统 | |
CN108235763B (zh) | 检测系统、方法及相关装置 | |
WO2004086196A2 (en) | Electronic device supporting multiple update agents | |
KR20130094208A (ko) | 근접-기반 피어-개시 장치 구성을 위한 방법 및 시스템 | |
CN110597542A (zh) | 软件自动ota升级方法及装置、电子设备 | |
CN105930197A (zh) | 一种软件升级的方法及电子设备 | |
CN108536464A (zh) | 一种应用程序的热修复方法及装置 | |
CN110647337A (zh) | 物联网mcu空中固件升级方法 | |
CN112202920A (zh) | 车机系统升级方法及装置 | |
CN109002305B (zh) | 一种设备程序的更新方法及其系统 | |
CN106201588A (zh) | 终端的软件升级方法和终端 | |
CN106775874B (zh) | 终端设备的系统升级方法 | |
CN106708494B (zh) | Jar升级方法及装置 | |
CN106470114B (zh) | 一种ota升级包的配置方法及装置 | |
CN110750286A (zh) | OTA升级Mbn的管理方法、装置、系统、设备和介质 |
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 |