CN102023881B - 一种软件升级方法、装置及嵌入式设备 - Google Patents

一种软件升级方法、装置及嵌入式设备 Download PDF

Info

Publication number
CN102023881B
CN102023881B CN 201010588201 CN201010588201A CN102023881B CN 102023881 B CN102023881 B CN 102023881B CN 201010588201 CN201010588201 CN 201010588201 CN 201010588201 A CN201010588201 A CN 201010588201A CN 102023881 B CN102023881 B CN 102023881B
Authority
CN
China
Prior art keywords
installation kit
item
upgrading
installation
software
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
Application number
CN 201010588201
Other languages
English (en)
Other versions
CN102023881A (zh
Inventor
叶建兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ruijie Networks Co Ltd
Original Assignee
Fujian Star Net Communication Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Star Net Communication Co Ltd filed Critical Fujian Star Net Communication Co Ltd
Priority to CN 201010588201 priority Critical patent/CN102023881B/zh
Publication of CN102023881A publication Critical patent/CN102023881A/zh
Application granted granted Critical
Publication of CN102023881B publication Critical patent/CN102023881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种软件升级的方法、装置及嵌入式设备。其中方法包括:依次读取软件升级安装包中的每个安装项;针对每个安装项,读取其中的策略文件,获取该安装项对应的程序的升级策略;升级策略预先指定;根据升级策略确定是否需要对该安装项对应的程序进行升级;并在确定需要对该程序进行升级时,使用该安装项中的软件映像对该程序进行升级。本发明实施例在软件升级包中除了携带软件映像之外,还根据实际的升级需要,携带对应的升级策略,实现按照预先指定的升级策略对软件进行升级。

Description

一种软件升级方法、装置及嵌入式设备
技术领域
本发明涉及嵌入式系统领域,尤其涉及一种软件升级的方法、装置及嵌入式设备。
背景技术
现在的嵌入式系统,越来越多地使用模块化技术(基于进程管理的操作系统技术)。每个进程可单独提供程序文件进行更新。嵌入式设备厂商为了方便产品发布,往往采取将引导程序和所有应用程序打成一个完整安装包提供给用户进行升级。每次升级的时候,往往都需要将安装包中的所有程序映像全部更新,一方面,在嵌入式设备中,系统运行往往由一个相对比较稳定的引导程序来引导,而厂商发行的安装包往往连同引导程序一起发布,而引导程序只有较少的情况下才需要升级,按照现在的软件升级方法,每次升级必然对引导程序进行升级,一旦升级过程中,引导程序升级失败,将导致整个设备崩溃,无法继续升级以及运行任何软件。另外一方面,用户可能只是想解决原有应用程序中的某些bug,只是想升级其中的一部分应用程序。因此,目前的升级方法无法实现按照实际需求进行升级。
另外,在软件升级过程中,如果出现意外掉电、网络异常或设备故障的情况导致部分软件升级失败的情况时,有可能会导致该应用程序被破坏而无法运行,这时需要针对该程序回滚到上一个版本,或者用户发觉新版本的一些功能运行不符合自己的预期,也希望能够回退到旧版本运行,在这种情况下,现有软件升级技术通常还需要再获取到上一个发行版本的完整的安装包,再重新升级一次,才能实现软件版本的回滚,但这种方法只能实现将安装包中的所有程序都回滚到上一个版本,而不能实现按照实际需求将部分程序回滚到上一个版本。
发明内容
本发明提供一种软件升级的方法、装置及嵌入式设备,用于实现按照实际需求对软件进行升级。
本发明提供的一种软件升级的方法,包括:
依次读取软件升级安装包中的每个安装项,所述软件升级安装包为主安装包或补丁安装包,所述主安装包中包含主程序的软件映像以及至少一个应用程序的安装项,且按照下述方式生成:针对每个待升级的应用程序,将该应用程序的升级策略写入对应的策略文件,将该策略文件与用于升级该应用程序的软件映像打包生成模块映像作为一个应用程序安装项;将用于升级所述主程序的软件映像和应用程序安装项打包生成主安装包;所述补丁安装包中的安装项包括至少一个应用程序的安装项,且按照下述方式生成:针对每个待升级的应用程序,将该应用程序的升级策略写入对应的策略文件,将该策略文件与用于升级该应用程序的软件映像打包生成模块映像作为该应用程序的安装项;将各个应用程序的安装项打包生成补丁安装包;
针对每个安装项,读取其中的策略文件,获取该安装项对应的程序的升级策略;所述升级策略预先指定;
根据所述升级策略确定是否需要对该安装项对应的程序进行升级;并在确定需要对所述程序进行升级时,使用该安装项中的软件映像对所述程序进行升级。
本发明实施例提供的软件升级的装置,包括:
安装项读取单元,用于依次读取软件升级安装包中的每个安装项,所述软件升级安装包为主安装包或补丁安装包,所述主安装包中包含主程序的软件映像以及至少一个应用程序的安装项,且按照下述方式生成:针对每个待升级的应用程序,将该应用程序的升级策略写入对应的策略文件,将该策略文件与用于升级该应用程序的软件映像打包生成模块映像作为一个应用程序安装项;将用于升级所述主程序的软件映像和应用程序安装项打包生成主安装包;所述补丁安装包中的安装项包括至少一个应用程序的安装项,且按照下述方式生成:针对每个待升级的应用程序,将该应用程序的升级策略写入对应的策略文件,将该策略文件与用于升级该应用程序的软件映像打包生成模块映像作为该应用程序的安装项;将各个应用程序的安装项打包生成补丁安装包;
升级策略获取单元,用于针对每个安装项,读取其中的策略文件,获取该安装项对应的程序的升级策略;所述升级策略预先指定;
升级单元,用于根据所述升级策略确定是否需要对该安装项对应的程序进行升级;并在确定需要对所述程序进行升级时,使用该安装项中的软件映像对所述程序进行升级。
本发明实施例提供的嵌入式设备,包括本发明实施例提供的上述软件升级的装置。
本发明实施例的有益效果包括:
本发明实施例提供的软件升级的方法、装置及嵌入式设备,在进行软件升级时,依次读取软件升级安装包中的每个安装项,针对每个安装项,读取其中的策略文件,获取该安装项对应的升级策略,根据升级策略判断是否需要对安装项对应的程序进行升级,在确定需要升级时,使用安装项中的软件映像对程序进行升级,本发明实施例可实现针对每个程序,根据实际的升级需要,分别设定相应的升级策略,更为灵活地按照不同的升级策略分别控制嵌入式设备中各个软件的升级操作,弥补了现有嵌入式设备升级过程中无法按照实际需要进行升级的缺陷。
附图说明
图1为本发明实施例提供的软件升级的方法的流程图;
图2为本发明实施例提供的主安装包的结构示意图;
图3为本发明实施例提供的补丁安装包的结构示意图;
图4为本发明实施例提供的对软件进行升级的步骤的具体流程图;
图5为本发明实施例提供的软件升级的装置的结构示意图。
具体实施方式
下面结合附图,对本发明实施例提供的一种软件升级的方法、装置及嵌入式设备分别进行详细地说明。
本发明实施例提供的软件升级的方法,如图1所示,包括下述步骤:
S101、依次读取软件升级安装包中的每个安装项;
S102、针对每个安装项,读取其中的策略文件,根据策略文件获取该安装项对应的程序的升级策略;该程序的升级策略预先指定;
S103、根据该升级策略确定是否需要对该安装项对应的程序进行升级;如果确定需要升级,那么执行下述步骤S104;否则,执行下述步骤S105;退出流程;
S104、使用该安装项中的软件映像对所述程序进行升级,然后转向S105;
S105;退出流程。
本发明实施例提供的软件升级安装包可以有两种,一种是主安装包,另一种为补丁安装包;主安装包是一个完整的软件映像,主体是主程序的软件映像,在主程序的软件映像之后,附加有至少一个应用程序的安装项。引导程序基本上不需要进行升级,如果需要对引导程序进行升级,主安装包中还可以包括引导程序的安装项。
补丁安装包中,只含有需要升级的至少一个应用程序的安装项。
主安装包的生成方式说明如下:
针对每个待升级的应用程序,将该应用程序的升级策略写入对应的策略文件,将该策略文件与用于升级的该应用程序的软件映像打包生成模块映像作为一个应用程序安装项;
将用于升级的所述主程序的软件映像和各个应用程序安装项打包生成主安装包。
如果主安装包中还包括引导程序的安装项的话,上述主安装包的生成过程中还包括针对待升级的引导程序,将该引导程序的升级策略写入对应的策略文件,将该策略文件与用于升级该引导程序的软件映像打包生成模块映像作为引导程序安装项;相应地,打包生成主安装包的过程还需要将引导程序安装项也打包在主安装包内。
补丁安装包的生成方式说明如下:
针对每个待升级的应用程序,将该应用程序的升级策略写入对应的策略文件,将该策略文件与用于升级该应用程序的软件映像打包生成模块映像作为该应用程序的安装项;
将各个应用程序的安装项打包生成补丁安装包。
图2是主安装包的结构示意图,其中模块映像1~3是应用程序1~3的安装项,Bootloader是引导程序的安装项。图3是补丁安装包的结构示意图,其中模块映像1~3是应用程序1~3的安装项。
本发明实施例中,每个安装项中的策略文件是可执行程序映像的形式,将升级策略按照指定格式写成。
一个典型的策略文件的内容如下:
[item1]
version=10.4(02***)*Release(62376)
cmp=range
policy=upgrade
[item2]
version=10.4(02***)*Release(62396)
该策略文件中的升级策略表明,将嵌入式设备上的程序的版本号介于10.4(2)62376~10.4(2)62396之间时,需要将该程序升级为当前安装项中的软件映像。
又如:
[item1]
version=10.4(02***)*Release(*)
cmp=<
policy=upgrade
[item2]
version=10.6(*****)*Release(*)
cmp=>=
policy=upgrade
该策略文件中的升级策略表明,当嵌入式设备上的程序的版本号小于10.4(2)版本或者在10.6版本以上时,需要对该程序都要升级为当前安装项中的软件映像。
当然,策略文件中的升级策略也可以指定程序在特定的版本上不进行任何升级,此种情况下,设置上述策略文件中的policy的值等于不升级(noupgrade)即可。
上述步骤S103和步骤S104中,根据根据升级策略确定是否需要对该安装项对应的程序进行升级,以及确定需要对所述程序进行升级时,使用该安装项中的软件映像对所述程序进行升级,具体执行过程如图4所示,包括:
S401、判断当前嵌入式系统中该程序的版本是否属于获取到的升级策略指定的需要升级的版本区间;若是,执行步骤S402,若否,执行步骤S404;
S402、确定需要对该安装项对应的程序进行升级,进一步判断该程序的软件映像是否完整无误,若完整无误,执行步骤S403,若否,执行步骤S405;
判断程序的软件映像是否完整无误,可以使用CRC校验的方式进行判断,具体方法属于现有技术,在此不再进行详述。
S403、使用安装项中的软件映像替换当前嵌入式系统中的程序;然后转向步骤S405;
S404、确定不需要对该安装项对应的程序进行升级;然后转向执行步骤S405;
S405、结束流程。
本发明实施例中,如果采用主安装包的方式对软件进行升级,那么需要在嵌入式设备启动后,由引导程序例如bootloader加载主安装包中主程序映像并运行,主程序运行之后,在读取各安装项的升级策略,判断是否需要对各个应用程序进行升级,如果需要升级,使用安装项中软件映像替换掉当前的嵌入式系统中的程序即可。在主程序和应用程序完成升级过程之后,嵌入式设备重启,之后就按照新的版本运行了。
在使用新的主安装包对软件升级过程之前,需要先使用当前升级使用的新的主安装包更新嵌入式设备中保存的主安装包。
在嵌入式设备出厂时,本地就保存有一个主安装包,此后,一旦使用主安装包或者使用补丁安装包对嵌入式设备的软件进行升级时,都相应地对该主安装包进行更新。对保存的主安装包进行更新的目的是使得当前保存的主安装包的安装项中软件映像的版本始终保持与嵌入式设备当前运行的软件的版本一致。
为了满足按需进行软件版本的回滚的要求,在对嵌入式设备保存的主安装包更新的步骤之前,还需要对嵌入式设备保存的该主安装包进行备份,生成一个备份主安装包,若如此经过多次升级操作后,嵌入式设备本地就会保存若干个历史的备份主安装包。
进一步地,生成备份主安装包的过程中,还可以判断存储的各历史备份主安装包的总数量是否超过设定的上限,若是,则删除各历史备份主安装包中保存时间最早的备份主安装包。这样可以尽可能备份比较新的版本的主安装包,满足版本回滚的需要,同时节约嵌入式系统的存储资源。
假设用户最多需要将程序回滚至前3个版本,那么本地只需要最多保存3个历史主安装包(不包括本次升级后生成的备份主装包),如果判断当前保存的历史主安装包的数量超过了3个,那么,删除各历史备份主安装包中保存时间最早的备份主安装包,也就是删掉各历史备份主安装包中软件版本最低的备份主安装包。
本发明实施例在使用主安装包进行升级的过程中,如果主程序升级失败,那么可以通过自动加载本次升级之前生成的备份安装包中的主程序,自动将主程序回滚至本次升级之前的版本状态。避免了升级过程中如果主程序升级失败导致整个设备无法正常启动的问题。
在使用主安装包对软件进行升级之后,需要根据用户的需要将指定的的程序回滚至指定版本时,执行下述流程:
1、从保存的各历史的备份主安装包中查找指定版本对应的备份主安装包;
2、依次读取该备份主安装包中的各安装项;
3、判断读取的安装项是否是该指定的程序对应的安装项;若是,执行下述步骤4;
4、将该安装项中的软件映像替换当前嵌入式系统中的该指定的程序。
在本发明实施例中,如果在使用主安装包进行软件升级后,还使用补丁安装包对软件进行升级,那么,在使用补丁安装包对软件升级的步骤之前,还包括:将嵌入式设备当前保存的主安装包进行备份,生成备份主安装包的步骤。
使用补丁安装包对软件进行升级的过程与使用主安装包进行软件升级的过程类似,不同之处在于,使用补丁安装包中的软件映像覆盖嵌入式系统中旧的软件映像之后,不需要重启整个操作系统,只需要重启升级过的应用程序即可。
在使用补丁安装包对软件升级的步骤之后,还可以执行将补丁安装包与保存主安装包进行合并的操作,具体地,用户可以使用操作系统的升级程序的合并命令进行操作。该合并的操作,即使用补丁安装包中的应用程序的安装项,更新当前保存的主安装包中应用程序的安装项,使得当前嵌入式设备保存的主安装包中的应用程序的安装项中软件映像的版本,在经过补丁安装包的升级之后,也能够随时与当前嵌入式系统中正在运行的程序的版本保持一致。
具体的合并方法包括:判断补丁安装包中的模块映像在保存的主安装包中是否有对应的模块映像,如果有,则进一步判断两者的版本号是否一致,若一致,则不替换,若不一致,则使用补丁安装包中的模块映像替换掉保存的主安装包中对应的模块映像。如果补丁安装包中的模块映像在保存的主安装包中不存在对应的模块映像,那么在保存的主安装包中新增该模块映像。
经过上述合并过程之后,补丁安装包可以不保存,在嵌入式设备中始终保存与当前正在运行的程序的版本一致的主安装包即可。如果下一次需要使用主安装包或者补丁安装包进行升级时,由于在升级之前,需要对嵌入式设备保存主安装包(经过合并之后的主安装包)进行备份,生成备份安装包,用户如果需要将软件版本回滚至经过补丁安装包升级后的软件版本,只要选择该备份安装包即可实现版本回滚。
较佳地,为了快速准确地诊断软件在升级过程中出现的各种故障,本发明实施例还提供了自动的记录升级日志的技术方案,升级程序执行各项升级操作时,将升级过程日志和升级失败日志,在输出的同时,记录在嵌入式设备本地存储介质中,每条日志记录日志发生的时间戳标识。用户如果未能及时查看输出的升级过程和升级失败的日志,事后也可以通过查询嵌入式设备保存的日志记录,快速准确地诊断出升级过程中出现故障的原因。
基于同一发明构思,本发明实施例还提供了一种软件升级的装置及嵌入式设备,由于该装置及设备解决问题的原理与前述一种软件升级的方法相似,因此该装置和嵌入式设备的实施可以参见方法的实施,重复之处不再赘述。
本发明实施例提供的软件升级的装置,如图5所示,包括:
安装项读取单元501,用于依次读取软件升级安装包中的每个安装项;
升级策略获取单元502,用于针对每个安装项,读取其中的策略文件,获取该安装项对应的程序的升级策略;所述升级策略预先指定;
升级单元503,用于根据所述升级策略确定是否需要对该安装项对应的程序进行升级;并在确定需要对所述程序进行升级时,使用该安装项中的软件映像对所述程序进行升级。
进一步地,如图5所示,本发明实施例提供的软件升级的装置,当使用为主安装包作为所述升级安装包进行升级时,还包括:
主安装包更新单元504,用于使用主安装包对软件升级过程之前,使用当前升级使用的主安装包更新嵌入式设备中保存的主安装包。
相应地,如图5所示,本发明实施例提供的软件升级的装置,进一步地还可以包括:主安装包备份单元505,用于在使用当前升级使用的主安装包更新嵌入式设备保存的主安装包之前,对所述嵌入式设备保存的主安装包进行备份,生成备份主安装包;并判断当前存储的各历史的主安装包的备份主安装包及当前备份主安装包的总数量是否超过设定的上限,若是,则删除各历史的备份主安装包中保存时间最早的备份主安装包。
相应地,如图5所示,本发明实施例提供的软件升级的装置,进一步地还可以包括:软件回滚处理单元506,用于从保存的各历史的备份主安装包中查找指定版本对应的备份主安装包;依次读取该备份主安装包中的各安装项;判断读取的安装项是否是该指定的程序对应的安装项;若是,将该安装项中的软件映像替换当前嵌入式系统中的该指定的程序。
进一步地,当使用为主安装包作为所述升级安装包进行软件升级之后,若还使用补丁安装包进行软件升级,上述主安装包更新单元504,还用于在使用补丁安装包对软件升级的步骤之后,使用所述补丁安装包中的应用程序的安装项,更新当前保存的主安装包中的应用程序的安装项。
相应地,主安装包备份单元505,还用于在使用补丁安装包对软件升级的步骤之前,将嵌入式设备当前保存的主安装包进行备份,生成备份主安装包。
本发明实施例还提供了一种嵌入式设备,该嵌入式设备中包括本发明实施例提供的软件升级的装置。
本发明实施例提供的软件升级的方法、装置及嵌入式设备,在进行软件升级时,依次读取软件升级安装包中的每个安装项,针对每个安装项,读取其中的策略文件,获取该安装项对应的升级策略,根据升级策略判断是否需要对安装项对应的程序进行升级,在确定需要升级时,使用安装项中的软件映像对程序进行升级,本发明实施例可实现针对每个程序,根据实际的升级需要,分别设定相应的升级策略,更为灵活地按照不同的升级策略分别控制嵌入式设备中各个软件的升级操作,弥补了现有嵌入式设备升级过程中无法按照实际需要进行升级的缺陷。
进一步地,本发明实施例提供了两种具体的软件升级安装包以及对应的升级方法,主安装包是包含主程序映像及各应用程序安装项的软件升级包,通过每次升级之前,对保存的主安装包进行备份的方式,可以方便地从保存的各个历史的备份主安装包中查找到对应版本的软件映像,从而实现按照实际需求进行部分软件的版本回滚,而无需像现有技术那样,需要将安装包中所有的程序都实现版本回滚。本发明实施例提供的另一种软件升级安装包即补丁安装包,仅包含应用程序的安装项,用户可以根据需要,只对补丁安装包中的软件全部或者部分进行升级,进一步地提高了软件升级的灵活度。并且在补丁安装包对软件升级完成后,将补丁安装包与当前主安装包进行合并,使得当前主安装包始终保持与当前嵌入式设备中运行的软件的版本一致,在嵌入式设备出现故障无法运行时,可使用主安装包进行升级操作,及时回到故障之前的状态。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (15)

1.一种软件升级的方法,其特征在于,包括:
依次读取软件升级安装包中的每个安装项,所述软件升级安装包为主安装包或补丁安装包,所述主安装包中包含主程序的软件映像以及至少一个应用程序的安装项,且按照下述方式生成:针对每个待升级的应用程序,将该应用程序的升级策略写入对应的策略文件,将该策略文件与用于升级该应用程序的软件映像打包生成模块映像作为一个应用程序安装项;将用于升级所述主程序的软件映像和应用程序安装项打包生成主安装包;所述补丁安装包中的安装项包括至少一个应用程序的安装项,且按照下述方式生成:针对每个待升级的应用程序,将该应用程序的升级策略写入对应的策略文件,将该策略文件与用于升级该应用程序的软件映像打包生成模块映像作为该应用程序的安装项;将各个应用程序的安装项打包生成补丁安装包;
针对每个安装项,读取其中的策略文件,并根据读取的策略文件获取该安装项对应的程序的升级策略,所述升级策略预先指定;
根据所述升级策略确定是否需要对该安装项对应的程序进行升级;并在确定需要对所述程序进行升级时,使用该安装项中的软件映像对所述程序进行升级。
2.如权利要求1所述的方法,其特征在于,使用所述主安装包进行软件升级时,在所述依次读取软件升级包中的每个安装项之前,还包括:
嵌入式设备启动后,引导程序加载主安装包中的主程序的软件映像并运行。
3.如权利要求1所述的方法,其特征在于,根据所述升级策略确定是否需要对该安装项对应的程序进行升级,包括:
判断当前嵌入式系统中所述程序的版本是否属于获取到的所述升级策略指定的需要升级的版本区间;
若是,确定需要对该安装项对应的程序进行升级,若否,确定不需要对该安装项对应的程序进行升级。
4.如权利要求3所述的方法,其特征在于,所述使用该安装项中的软件映像对所述程序进行升级,包括:
判断所述安装项中的软件映像是否完整无误;在判断安装项中的的软件映像完整无误时,使用安装项中的软件映像替换当前嵌入式系统中所述程序。
5.如权利要求2所述的方法,其特征在于,使用主安装包对软件升级过程之前,还包括:
使用当前升级使用的主安装包更新嵌入式设备中保存的主安装包。
6.如权利要求5所述的方法,其特征在于,使用当前升级使用的主安装包更新嵌入式设备保存的主安装包之前,还包括:
对所述嵌入式设备保存的主安装包进行备份,生成备份主安装包;
判断存储的各历史的备份主安装包的总数量是否超过设定的上限,若是,则删除各历史的备份主安装包中保存时间最早的备份主安装包。
7.如权利要求6所述的方法,其特征在于,在使用主安装包对软件升级的过程中,如果主程序升级失败,还包括:
自动加载本次升级之前生成的备份主安装包中的主程序。
8.如权利要求2所述的方法,其特征在于,在使用主安装包进行软件升级之后,若还使用补丁安装包对软件进行升级,在使用补丁安装包对软件升级的步骤之前,还包括:
将嵌入式设备当前保存的主安装包进行备份,生成备份主安装包;
在使用补丁安装包对软件升级的步骤之后,还包括:
使用所述补丁安装包中的应用程序的安装项,更新当前嵌入式设备保存的主安装包中的应用程序的安装项。
9.如权利要求6-8任一项所述的方法,其特征在于,用户需要将指定的程序回滚至指定版本时,还包括:
从保存的各历史的备份主安装包中查找指定版本对应的备份主安装包;
依次读取该备份主安装包中的各安装项;
判断读取的安装项是否是该指定的程序对应的安装项;
若是,将该安装项中的软件映像替换当前嵌入式系统中的该指定的程序。
10.一种软件升级的装置,其特征在于,包括:
安装项读取单元,用于依次读取软件升级安装包中的每个安装项,所述软件升级安装包为主安装包或补丁安装包,所述主安装包中包含主程序的软件映像以及至少一个应用程序的安装项,且按照下述方式生成:针对每个待升级的应用程序,将该应用程序的升级策略写入对应的策略文件,将该策略文件与用于升级该应用程序的软件映像打包生成模块映像作为一个应用程序安装项;将用于升级所述主程序的软件映像和应用程序安装项打包生成主安装包;所述补丁安装包中的安装项包括至少一个应用程序的安装项,且按照下述方式生成:针对每个待升级的应用程序,将该应用程序的升级策略写入对应的策略文件,将该策略文件与用于升级该应用程序的软件映像打包生成模块映像作为该应用程序的安装项;将各个应用程序的安装项打包生成补丁安装包;
升级策略获取单元,用于针对每个安装项,读取其中的策略文件,获取该安装项对应的程序的升级策略;所述升级策略预先指定;
升级单元,用于根据所述升级策略确定是否需要对该安装项对应的程序进行升级;并在确定需要对所述程序进行升级时,使用该安装项中的软件映像对所述程序进行升级。
11.如权利要求10所述的装置,其特征在于,当使用为主安装包作为所述升级安装包进行升级时,还包括:
主安装包更新单元,用于使用主安装包对软件升级过程之前,使用当前升级使用的主安装包更新嵌入式设备中保存的主安装包。
12.如权利要求11所述的装置,其特征在于,还包括:主安装包备份单元,用于在使用当前升级使用的主安装包更新嵌入式设备保存的主安装包之前,对所述嵌入式设备保存的主安装包进行备份,生成备份主安装包;并判断当前存储的各历史的主安装包的备份主安装包及当前备份主安装包的总数量是否超过设定的上限,若是,则删除各历史的备份主安装包中保存时间最早的备份主安装包。
13.如权利要求12所述的装置,其特征在于,当使用为主安装包作为所述升级安装包进行软件升级之后,若还使用补丁安装包进行软件升级,所述主安装包更新单元,还用于在使用补丁安装包对软件升级的步骤之后,使用所述补丁安装包中的应用程序的安装项,更新当前保存的主安装包中的应用程序的安装项;
所述主安装包备份单元,还用于在使用补丁安装包对软件升级的步骤之前,将嵌入式设备当前保存的主安装包进行备份,生成备份主安装包。
14.如权利要求12或13所述的装置,其特征在于,还包括:
软件回滚处理单元,用于在用户需要将指定的程序回滚至指定版本时,从保存的各历史的备份主安装包中查找指定版本对应的备份主安装包;依次读取该备份主安装包中的各安装项;判断读取的安装项是否是该指定的程序对应的安装项;若是,将该安装项中的软件映像替换当前嵌入式系统中的该指定的程序。
15.一种嵌入式设备,其特征在于,包括如权利要求10~14任一项所述的软件升级的装置。
CN 201010588201 2010-12-14 2010-12-14 一种软件升级方法、装置及嵌入式设备 Active CN102023881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010588201 CN102023881B (zh) 2010-12-14 2010-12-14 一种软件升级方法、装置及嵌入式设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010588201 CN102023881B (zh) 2010-12-14 2010-12-14 一种软件升级方法、装置及嵌入式设备

Publications (2)

Publication Number Publication Date
CN102023881A CN102023881A (zh) 2011-04-20
CN102023881B true CN102023881B (zh) 2013-06-05

Family

ID=43865203

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010588201 Active CN102023881B (zh) 2010-12-14 2010-12-14 一种软件升级方法、装置及嵌入式设备

Country Status (1)

Country Link
CN (1) CN102023881B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402445A (zh) * 2011-11-21 2012-04-04 北京星网锐捷网络技术有限公司 一种程序升级的方法、装置及嵌入式设备
CN103678032B (zh) * 2012-09-17 2017-10-31 腾讯科技(深圳)有限公司 系统文件的修复方法及装置
CN102957695A (zh) * 2012-10-25 2013-03-06 北京奇虎科技有限公司 一种企业内网终端安全维护方法以及装置
CN103530150B (zh) * 2013-10-10 2017-03-01 上海爱数信息技术股份有限公司 一种Linux操作系统远程更新的方法
CN105302586A (zh) * 2014-06-24 2016-02-03 中兴通讯股份有限公司 软件升级处理方法、装置、终端及服务器
CN104133698A (zh) * 2014-07-15 2014-11-05 中国电子科技集团公司第四十一研究所 一种智能仪器的软件在线升级方法
CN104731626B (zh) * 2015-03-31 2018-11-13 百度在线网络技术(北京)有限公司 应用的安装方法及装置
CN106325901A (zh) * 2015-06-24 2017-01-11 南宁富桂精密工业有限公司 软件版本管理方法及系统
CN105607933A (zh) * 2015-12-24 2016-05-25 杭州电梦网络科技有限公司 一种移动游戏的热更新方法
CN105677427A (zh) * 2016-01-12 2016-06-15 浪潮通用软件有限公司 一种模块升级的方法及装置
CN107423033A (zh) * 2016-05-23 2017-12-01 中兴通讯股份有限公司 设备维护方法及装置
CN107291511A (zh) * 2017-06-30 2017-10-24 百度在线网络技术(北京)有限公司 用于车载安卓系统的应用程序升级的方法和装置
CN108376083A (zh) * 2018-01-17 2018-08-07 深圳市宏电技术股份有限公司 一种app回滚方法和系统
CN109101256A (zh) * 2018-08-01 2018-12-28 北京奇安信科技有限公司 一种代理Agent动态加载方法及装置
CN111158719B (zh) * 2019-12-26 2023-06-16 湖南快乐阳光互动娱乐传媒有限公司 应用软件升级方法及装置
CN111338667B (zh) * 2020-02-10 2023-08-01 浙江大华技术股份有限公司 一种应用程序app的升级方法与升级装置
CN114675872A (zh) * 2021-05-21 2022-06-28 腾讯云计算(北京)有限责任公司 一种对应用程序的数据处理方法、装置、设备及存储介质
CN113238791A (zh) * 2021-05-19 2021-08-10 上海艾拉比智能科技有限公司 一种主从架构的ota差分升级方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889041A (zh) * 2006-08-02 2007-01-03 华为技术有限公司 一种软件升级及回退方法
CN101472050A (zh) * 2007-12-27 2009-07-01 Tcl集团股份有限公司 一种软件升级方法、系统、数字电视接收终端及服务器
CN101533356A (zh) * 2009-04-21 2009-09-16 华为技术有限公司 一种实现软件在线升级的方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889041A (zh) * 2006-08-02 2007-01-03 华为技术有限公司 一种软件升级及回退方法
CN101472050A (zh) * 2007-12-27 2009-07-01 Tcl集团股份有限公司 一种软件升级方法、系统、数字电视接收终端及服务器
CN101533356A (zh) * 2009-04-21 2009-09-16 华为技术有限公司 一种实现软件在线升级的方法、装置及系统

Also Published As

Publication number Publication date
CN102023881A (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
CN102023881B (zh) 一种软件升级方法、装置及嵌入式设备
KR101143112B1 (ko) 페일세이프 방식으로 맞춤 소프트웨어 영상 갱신을불휘발성 저장 장치에 적용하는 시스템 및 방법
CN100395707C (zh) 升级程序的方法
CN102622298B (zh) 一种软件测试系统及方法
US8886995B1 (en) Fault tolerant state machine for configuring software in a digital computer
US20140310698A1 (en) Apparatus and method for upgrading firmware of mobile terminal
CN103473067A (zh) 嵌入式Linux分区与数据还原方法、系统及系统开发方法
CN102207879B (zh) Lua脚本热更新方法及系统
US10795688B2 (en) System and method for performing an image-based update
CN103530150A (zh) 一种Linux操作系统远程更新的方法
CN104239082A (zh) 嵌入式系统的热补丁实现方法
CN101853172A (zh) 复杂可编程逻辑器件cpld动态升级装置及方法
CN101556547A (zh) 一种安全远程升级嵌入式Linux内核的方法及系统
CN101437106A (zh) 一种机顶盒系统及其自行修复的方法
CN101647013A (zh) 用于安装序列的书签和配置文件
CN104915226A (zh) 一种网络设备软件启动方法、装置及网络设备
EP2329368B1 (en) Updating content without using a mini operating system
CN101719074A (zh) 补丁实现方法及装置
CN113934471A (zh) 计算机系统的基板管理控制器和启动方法
CN101877655A (zh) 网络管理系统、网管服务器和方法
US20090319738A1 (en) System, method and computer program product for storing transient state information
KR102106449B1 (ko) 함수 결함을 복구하는 방법, 장치 및 서버
CN111651304B (zh) 基于双芯智能电表的软件恢复方法、装置和计算机设备
CN110990177B (zh) 故障修复方法、装置、系统、存储介质及电子设备
CN104699569B (zh) 一种mqx操作系统映像结构、mqx操作系统、用电信息采集终端及映像更新方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor

Patentee after: RUIJIE NETWORKS Co.,Ltd.

Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor

Patentee before: Beijing Star-Net Ruijie Networks Co.,Ltd.