CN111190627A - ***升级方法及装置 - Google Patents
***升级方法及装置 Download PDFInfo
- Publication number
- CN111190627A CN111190627A CN201911399119.XA CN201911399119A CN111190627A CN 111190627 A CN111190627 A CN 111190627A CN 201911399119 A CN201911399119 A CN 201911399119A CN 111190627 A CN111190627 A CN 111190627A
- Authority
- CN
- China
- Prior art keywords
- partition
- upgrade
- upgrading
- erasable
- program
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了***升级方法及装置,该方法包括:预先将擦写升级程序保存到第一不可擦写分区中,其中,第一不可擦写分区为用于存储程序的不可擦写分区,接收服务端发来的升级包;将升级包保存到第二不可擦写分区中,其中,第二不可擦写分区为用于存储数据的不可擦写分区;根据升级包和擦写升级程序,对待升级***进行升级。本方案不会在***升级过程中因为异常断电导致分区损坏,无法启动。
Description
技术领域
本发明涉及计算机技术领域,特别涉及***升级方法及装置。
背景技术
随着嵌入式操作***技术的发展,在网络终端设备中有越来越广泛的应用。在实际使用中,为了扩展业务功能、解决软件中存在的问题和提升设备性能,或者为了满足设备的定制业务,需要对嵌入式设备的软件***进行及时更新,就是软件***常知的升级业务。
程序运行过程中,有读写配置文件保存当前位置信息的操作。如果异常断电,或者异常终止程序,文件缓冲区中数据还未写入文件,就会出现配置文件内容出错或者文件直接损坏而无法打开。
通过上述描述可见,***在升级过程中异常断电可能会导致分区损坏,无法启动。
现有技术还公开了以下内容:
专利申请号为CN201410003631的中国专利申请文件,公开了一种基于linux的设备双***保护及升级方法,通过在linux文件***存储空间中建立一个备用***对***进行升级。
专利申请号为CN201510186648的中国专利申请文件,公开了一种基于嵌入式Linux设备双***的启动方法,通过装有操作***文件的U盘进行***升级和恢复。
专利申请号为CN201810208261的中国专利申请文件,公开了一种嵌入式容错***及其容错方法,通过在嵌入式容错***中设置中央处理器,在***发生故障时实现备用***的切换。
发明内容
本发明实施例提供了***升级方法及装置,不会在***升级过程中因为异常断电导致分区损坏,无法启动。
第一方面,本发明实施例提供了***升级方法,预先将擦写升级程序保存到第一不可擦写分区中,其中,所述第一不可擦写分区为用于存储程序的不可擦写分区,包括:
接收服务端发来的升级包;
将所述升级包保存到第二不可擦写分区中,其中,所述第二不可擦写分区为用于存储数据的不可擦写分区;
根据所述升级包和所述擦写升级程序,对待升级***进行升级。
优选地,
在所述接收服务端发来的升级包之前,进一步包括:
给所述服务端发送升级请求,以使所述服务端返回所述待升级***的云端版本号;
获取所述服务端发来的所述云端版本号;
根据所述服务端发来的所述云端版本号和所述待升级***的本地版本号,确定是否能够升级,若是,则向所述服务端请求所述升级包,执行所述接收服务端发来的升级包,若否,退出本次升级;
优选地,
在所述接收服务端发来的升级包之后,进一步包括:
对所述升级包进行校验,如果校验通过,则执行所述将所述升级包保存到第二不可擦写分区中,如果校验不通过,则删除所述升级包,并退出本次升级。
优选地,
所述第一不可擦写分区,包括:引导分区;
所述预先将擦写升级程序保存到第一不可擦写分区中,包括:
预先将所述擦写升级程序保存到所述引导分区中;
所述根据所述升级包和所述擦写升级程序,对待升级***进行升级,包括:
重新启动所述待升级***;
从所述引导分区启动所述擦写升级程序;
利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
优选地,
所述第一不可擦写分区,包括:装载分区;
所述预先将擦写升级程序保存到第一不可擦写分区中,包括:
预先将所述擦写升级程序保存到所述装载分区中;
所述根据所述升级包和所述擦写升级程序,对待升级***进行升级,包括:
重新启动所述待升级***;
从所述装载分区启动所述擦写升级程序;
利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
优选地,
所述第一不可擦写分区,包括:共同分区,所述共同分区为保存有引导程序和装载程序的不可擦写分区;
所述预先将擦写升级程序保存到第一不可擦写分区中,包括:
预先将所述擦写升级程序保存到所述共同分区中;
所述根据所述升级包和所述擦写升级程序,对待升级***进行升级,包括:
重新启动所述待升级***;
从所述共同分区启动所述擦写升级程序;
利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
第二方面,本发明提供了***升级装置,包括:
接收模块,用于接收服务端发来的升级包;
保存模块,用于将所述升级包保存到第二不可擦写分区中,其中,所述第二不可擦写分区为用于存储数据的不可擦写分区;
升级模块,用于根据所述升级包和所述擦写升级程序,对待升级***进行升级,其中,所述擦写升级程序保存在第一不可擦写分区中,所述第一不可擦写分区为用于存储程序的不可擦写分区。
优选地,
进一步包括:
请求模块,用于给所述服务端发送升级请求,以使所述服务端返回所述待升级***的云端版本号;
获取模块,用于获取所述服务端发来的所述云端版本号;
确定模块,用于根据所述云端版本号和所述待升级***的本地版本号,确定是否能够升级,若是,则向所述服务端请求所述升级包,触发所述接收模块,若否,退出本次升级;
优选地,
进一步包括:
校验模块,用于对所述接收模块接收的所述升级包进行校验,如果校验通过,则触发所述保存模块,如果校验不通过,则删除所述升级包,并退出本次升级。
优选地,
所述第一不可擦写分区,包括:引导分区;
所述升级模块,包括:
第一重启单元,用于重新启动所述待升级***;
第一启动单元,用于从所述引导分区启动所述预先保存在所述引导分区的所述擦写升级程序;
第一读取单元,用于利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
优选地,
所述第一不可擦写分区,包括:装载分区;
所述升级模块,包括:
第二重启单元:用于重新启动所述待升级***;
第二启动单元,用于从所述装载分区启动所述预先保存在所述装载分区的所述擦写升级程序;
第二读取单元,用于利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
优选地,
所述第一不可擦写分区,包括:共同分区,所述共同分区为保存有引导程序和装载程序的不可擦写分区;
所述升级模块,包括:
第三重启单元,用于重新启动所述待升级***;
第三启动单元,用于从所述共同分区启动所述预先保存在所述共同分区的所述擦写升级程序;
第三读取单元,用于利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
本发明实施例提供了***升级方法及装置,由于升级***可以对原有***的部分功能进行优化和完善,故需定期对***进行更新,使***运行更加流畅。***升级包具有配置文件,可以使用一个升级包实现对多个设备***的升级,故在升级***的过程中,需要先从服务端获取升级包。在获取到升级包之后需要将升级包保存至用于存储数据的第二不可擦写分区,基于不可擦写分区本身的特性,升级包保存在第二不可擦写分区可以避免升级过程中被改写和删除,保证升级包的安整性。擦写升级程序对于***升级至关重要,故需预先将擦写升级程序保存到第一不可擦写分区中,避免擦写升级程序被损坏导致***无法正常启动。在***升级的过程中,擦写升级程序从第二不可擦写分区读取升级包,可对待升级的***进行擦写升级。由于擦写升级过程只对升级包进行读操作,所以任何中断都不会损坏该升级包,可以避免***升级过程中异常断电导致分区损坏,无法启动。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种***升级方法的流程图;
图2是本发明一实施例提供的另一种***升级方法的流程图;
图3是本发明又一实施例提供的一种***升级方法的流程图;
图4是本发明另一实施例提供的一种***升级方法的流程图;
图5是本发明一实施例提供的一种***升级装置的结构示意图;
图6是本发明另一实施例提供的一种***升级装置的结构示意图;
图7是本发明又一实施例提供的一种***升级装置的结构示意图;
图8是本发明再一实施例提供的一种***升级装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了***升级方法,该方法可以包括以下步骤:
步骤101:预先将擦写升级程序保存到第一不可擦写分区中,其中,第一不可擦写分区为用于存储程序的不可擦写分区;
步骤102:接收服务端发来的升级包;
步骤103:将升级包保存到第二不可擦写分区中,其中,第二不可擦写分区为用于存储数据的不可擦写分区;
步骤104:根据升级包和擦写升级程序,对待升级***进行升级。
在本发明实施例中,由于升级***可以对原有***的部分功能进行优化和完善,故需定期对***进行更新,使***运行更加流畅。***升级包具有配置文件,可以使用一个升级包实现对多个设备***的升级。在升级***的过程中,需要先从服务端获取升级包。在获取到升级包之后需要将升级包保存至用于存储数据的第二不可擦写分区,基于不可擦写分区本身的特性,升级包保存在第二不可擦写分区可以避免升级过程中被改写和删除,保证升级包的完整性。擦写升级程序对于***升级至关重要,故需预先将擦写升级程序保存到第一不可擦写分区中,避免擦写升级程序被损坏导致***无法正常启动。在***升级的过程中,擦写升级程序从第二不可擦写分区读取升级包,可对待升级的***进行擦写升级。由于擦写升级过程只对升级包进行读操作,所以任何中断都不会损坏该升级包,可以避免***升级过程中异常断电导致分区损坏,无法启动。
为了确定能否对待升级***进行升级,在本发明一实施例中,在所述接收服务端发来的升级包之前,进一步包括:
给所述服务端发送升级请求,以使所述服务端返回所述待升级***的云端版本号;
获取所述服务端发来的所述云端版本号;
根据所述服务端发来的所述云端版本号和所述待升级***的本地版本号,确定是否能够升级,若是,则向所述服务端请求所述升级包,执行所述接收服务端发来的升级包,若否,退出本次升级。
在本发明实施例中,由于待升级***本身具有自己的操作***,在升级***之前无法确定待升级***是否是最新的操作***,而每一个***对应一个版本号,故需向服务端发送升级请求,以使服务端返回待升级***的云端版本号。通过比对云端版本号与待升级***的本地版本号,确定本地版本号与云端版本号是否相同,进而判断是否需要对待升级***进行升级。如果本地版本号不是最新的云端版本号,则需要对待升级***进行升级,向服务端请求升级包,并接收服务端发来的升级包;如果本地版本号是最新的云端版本号,则不需要对***进行升级,直接退出本次升级。
为了校验升级包的完整性,在本发明一实施例中,在所述接收服务端发来的升级包之后,进一步包括:
对所述升级包进行校验,如果校验通过,则执行所述将所述升级包保存到第二不可擦写分区中,如果校验不通过,则删除所述升级包,并退出本次升级。
在本发明实施例中,针对获取到的服务端发来的升级包需要对其进行校验,以确保升级包的完整性,不会在***运行的过程中影响***的稳定性。如果校验通过,则说明升级包是完整的,则可以将完整的升级包保存至用于存储数据的第二不可擦写分区;如果校验不通过,则说明升级包是不完整的,则无法进行本次升级,需要将不完整的升级包删除,并退出本次升级。
为了避免程序异常中断导致***无法正常启动,在本发明一实施例中,所述第一不可擦写分区,包括:引导分区;
所述预先将擦写升级程序保存到第一不可擦写分区中,包括:
预先将所述擦写升级程序保存到所述引导分区中;
所述根据所述升级包和所述擦写升级程序,对待升级***进行升级,包括:
重新启动所述待升级***;
从所述引导分区启动所述擦写升级程序;
利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
在本发明实施例中,擦写升级程序对于***升级至关重要,故预先将擦写升级程序保存到引导分区中,引导分区为不可擦写分区,可以避免擦写升级程序被损坏。由于擦写升级过程只对升级包进行读操作,所以任何中断都不会损坏该升级包,升级擦写不会擦写擦写升级程序所在分区及其前置启动项目所在的分区。将擦写升级程序放在较底层分区,所以不用启动应用,后续分区都可以进行升级。然后再执行重启流程,从引导分区启动擦写升级程序,并从第二不可擦写分区读取升级包,对待升级***进行升级。
为了避免程序异常中断导致***无法正常启动,在本发明一实施例中,所述第一不可擦写分区,包括:装载分区;
所述预先将擦写升级程序保存到第一不可擦写分区中,包括:
预先将所述擦写升级程序保存到所述装载分区中;
所述根据所述升级包和所述擦写升级程序,对待升级***进行升级,包括:
重新启动所述待升级***;
从所述装载分区启动所述擦写升级程序;
利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
在本发明实施例中,也可预先将擦写升级程序保存到装载分区中。然后再执行重启流程,***重启的过程中先启动引导分区,再依次启动装载分区,从装载分区启动擦写升级程序,并从第二不可擦写分区读取升级包,对待升级的***进行升级。由于引导分区和装载分区为不可擦写分区,不会被擦写升级,装载分区的后置分区都可以被擦写升级。
为了避免程序异常中断导致***无法正常启动,在本发明一实施例中,所述第一不可擦写分区,包括:共同分区,所述共同分区为保存有引导程序和装载程序的不可擦写分区;
所述预先将擦写升级程序保存到第一不可擦写分区中,包括:
预先将所述擦写升级程序保存到所述共同分区中;
所述根据所述升级包和所述擦写升级程序,对待升级***进行升级,包括:
重新启动所述待升级***;
从所述共同分区启动所述擦写升级程序;
利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
在本发明实施例中,在待升级***中,引导程序和装载程序可以设置在同一个不可擦写分区中,也就是共同分区。擦写升级程序也可以和保存有引导程序、装载程序所在的共同分区作为一个整体一起启动,故也可预先将擦写升级程序保存到有引导程序和装载程序的共同分区中。然后再执行重启流程,***重启的过程中先启动共同分区,再依次启动内核分区,从共同分区启动擦写升级程序,并从第二不可擦写分区读取升级包,对待升级***进行升级。由于擦写升级程序位于共同分区,故共同分区的后置分区可以被擦写升级。而内核分区控制着***的内存管理、数据的输入输出操作和中断处理。当***启动时,内核程序就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域,故需设置擦写升级程序在待升级***的内核之前启动。
如图2所示,为了更加清楚的说明本发明的技术方案及优点,下面对本发明提供了***升级方法进行详细说明,具体可以包括以下步骤:
步骤201:预先将擦写升级程序保存到引导分区中,其中,引导分区为用于存储程序的不可擦写分区。
具体地说,擦写升级程序对于***升级至关重要,将擦写升级程序保存至不可擦写分区(flash地址区域),可以防止程序异常中断对擦写升级程序的破坏,从而影响***的正常启动,而引导分区位于较底层,所以我们不用启动应用,后续分区都可以进行升级,而且该部分及其前置启动在升级时不会进行擦写所以也不会损坏。
步骤202:给服务端发送升级请求,以使服务端返回待升级***的云端版本号。
步骤203:获取服务端发来的云端版本号。
步骤204:根据服务端发来的云端版本号和待升级***的本地版本号,确定是否能够升级,若是,则向服务端请求升级包,执行步骤205,若否,退出本次升级。
具体地说,对于***升级,需要先判断待升级的***是否是最新的***,而判断***是否最新需要根据待升级***的本地版本号和云端版本号进行比对,如果本地版本号和云端版本号相同,则不需要升级,如果版本号不相同,则可以升级。
举例来说,设置云端版本号为13.5,***的本地版本号为12.2.
由于***的本地版本号和云端版本号不一样,则可以进行***升级。
步骤205:接收服务端发来的升级包。
步骤206:对升级包进行校验,如果校验通过,则执行步骤207,如果校验不通过,则删除升级包,并退出本次升级。
具体地说,确认***可以升级之后,需要获取服务端的升级包,并对升级包进行校验以确保升级包的完整性,如果校验通过,则可以正常升级,如果校验不通过,则需要删除升级包,退出本次升级。
举例来说,如果校验到升级包缺少运行程序A的文件A1,则删除该升级包,并退出本次升级。
步骤207:将升级包保存到第二不可擦写分区中,其中,第二不可擦写分区为用于存储数据的不可擦写分区。
具体地说,获取到服务端发来的升级包需要将升级包保存至用于存储数据的分区,以防止升级过程中损坏升级包,影响***的稳定性。此分区同时可以存储用户数据,例如用户的个人信息和用户的配置信息。
步骤208:重新启动待升级***。
步骤209:从引导分区启动擦写升级程序。
步骤210:利用擦写升级程序从第二不可擦写分区中读取升级包,实现对待升级***的升级。
具体来说,升级包保存好之后,需要重启***,由于预先将擦写升级程序保存在引导分区中,故在重启过程中,擦写升级程序需要从第二不可擦写分区中读取升级包,并对待升级***进行升级。重启时按分区逐步启动,启动到擦写功能所在启动项时将进行检测有无升级包,有则读出,校验升级包的完整性,进行后续启动流程。应用层启动成功后将检测第二不可擦写分区内是否有升级包,并进行删除,避免重启时反复升级。
如图3所示,本发明提供了另一种***升级方法,具体可以包括以下步骤:
步骤301:预先将擦写升级程序保存到装载分区中,其中,装载分区为用于存储程序的不可擦写分区。
步骤302:给服务端发送升级请求,以使服务端返回待升级***的云端版本号。
步骤303:获取服务端发来的云端版本号。
步骤304:根据服务端发来的云端版本号和待升级***的本地版本号,确定是否能够升级,若是,则向服务端请求升级包,执行步骤205,若否,退出本次升级。
步骤305:接收服务端发来的升级包。
步骤306:对升级包进行校验,如果校验通过,则执行步骤207,如果校验不通过,则删除所述升级包,并退出本次升级。
步骤307:将升级包保存到第二不可擦写分区中,其中,第二不可擦写分区为用于存储数据的不可擦写分区;
步骤308:重新启动待升级***。
步骤309:从装载分区启动擦写升级程序。
步骤310:利用擦写升级程序从第二不可擦写分区中读取升级包,实现对待升级***的升级。
如图4所示,本发明提供了又一种***升级方法,具体可以包括以下步骤:
步骤401:预先将擦写升级程序保存到共同分区中,其中,共同分区为保存有引导程序和装载程序的不可擦写分区。
步骤402:给服务端发送升级请求,以使服务端返回待升级***的云端版本号。
步骤403:获取服务端发来的云端版本号。
步骤404:根据服务端发来的云端版本号和待升级***的本地版本号,确定是否能够升级,若是,则向服务端请求升级包,执行步骤205,若否,退出本次升级。
步骤405:接收服务端发来的升级包。
步骤406:对升级包进行校验,如果校验通过,则执行步骤207,如果校验不通过,则删除升级包,并退出本次升级。
步骤407:将升级包保存到第二不可擦写分区中,其中,第二不可擦写分区为用于存储数据的不可擦写分区;
步骤408:重新启动待升级***。
步骤409:从共同分区启动擦写升级程序。
步骤410:利用擦写升级程序从第二不可擦写分区中读取升级包,实现对待升级***的升级。
如图5所示,本发明实施例提供了***升级装置,包括:
接收模块501,用于接收服务端发来的升级包;
保存模块502,用于将所述升级包保存到第二不可擦写分区中,其中,所述第二不可擦写分区为用于存储数据的不可擦写分区;
升级模块503,用于根据所述升级包和所述擦写升级程序,对待升级***进行升级,其中,所述擦写升级程序保存在第一不可擦写分区中,所述第一不可擦写分区为用于存储程序的不可擦写分区。
在本发明实施例中,由于升级***可以对原有***的部分功能进行优化和完善,故需定期对***进行更新,使***运行更加流畅。***升级包具有配置文件,可以使用一个升级包实现对多个设备***的升级,故在升级***的过程中,需要先从服务端获取升级包。接收模块在获取到升级包之后需要保存模块将升级包保存至用于存储数据的第二不可擦写分区,基于不可擦写分区本身的特性,升级包保存在第二不可擦写分区可以避免升级过程中被改写和删除,保证升级包的安整性。擦写升级程序对于***升级至关重要,故需设置模块预先将擦写升级程序保存到第一不可擦写分区中,避免擦写升级程序被损坏导致***无法正常启动。在升级模块升级的过程中,擦写升级程序从第二不可擦写分区读取升级包,可对待升级的***进行擦写升级。由于擦写升级过程只对升级包进行读操作,所以任何中断都不会损坏该升级包,可以避免***升级过程中异常断电导致分区损坏,无法启动。
在本发明一实施例中,进一步包括:
请求模块504,用于给所述服务端发送升级请求,以使所述服务端返回所述待升级***的云端版本号;
获取模块505,用于获取所述服务端发来的所述云端版本号;
确定模块506,用于根据所述云端版本号和所述待升级***的本地版本号,确定是否能够升级,若是,则向所述服务端请求所述升级包,触发所述接收模块501,若否,退出本次升级。
在本发明一实施例中,进一步包括:
校验模块507,用于对所述接收模块501接收的所述升级包进行校验,如果校验通过,则触发所述保存模块502,如果校验不通过,则删除所述升级包,并退出本次升级。
在本发明一实施例中,所述第一不可擦写分区,包括:引导分区;
所述升级模块503,包括:
第一重启单元5031,用于重新启动所述待升级***;
第一启动单元5032,用于从所述引导分区启动所述预先保存在所述引导分区的所述擦写升级程序;
第一读取单元5033,用于利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
在本发明一实施例中,所述第一不可擦写分区,包括:装载分区;
所述升级模块503,包括:
第二重启单元5034:用于重新启动所述待升级***;
第二启动单元5035,用于从所述装载分区启动所述预先保存在所述装载分区的所述擦写升级程序;
第二读取单元5036,用于利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
在本发明一实施例中,所述第一不可擦写分区,包括:共同分区,所述共同分区为保存有引导程序和装载程序的不可擦写分区;
所述升级模块503,包括:
第三重启单元5037,用于重新启动所述待升级***;
第三启动单元5038,用于从所述共同分区启动所述预先保存在所述共同分区的所述擦写升级程序;
第三读取单元5039,用于利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
本发明实施例还提供了***升级装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行本发明任一实施例中的***升级方法。
本发明实施例还提供了一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行本发明任一实施例中的***升级方法。具体地,可以提供配有存储介质的***或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该***或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作***等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到***计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
可以理解的是,本发明实施例示意的结构并不构成对***升级装置的具体限定。在本发明的另一些实施例中,***升级装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明各个实施例至少具有如下有益效果:
1、在本发明一实施例中,由于升级***可以对原有***的部分功能进行优化和完善,故需定期对***进行更新,使***运行更加流畅。***升级包具有配置文件,可以使用一个升级包实现对多个设备***的升级,故在升级***的过程中,需要先从服务端获取升级包。在获取到升级包之后需要将升级包保存至用于存储数据的第二不可擦写分区,基于不可擦写分区本身的特性,升级包保存在第二不可擦写分区可以避免升级过程中被改写和删除,保证升级包的安整性。擦写升级程序对于***升级至关重要,故需预先将擦写升级程序保存到第一不可擦写分区中,避免擦写升级程序被损坏导致***无法正常启动。在***升级的过程中,擦写升级程序从第二不可擦写分区读取升级包,可对待升级的***进行擦写升级。由于擦写升级过程只对升级包进行读操作,所以任何中断都不会损坏该升级包,可以避免***升级过程中异常断电导致分区损坏,无法启动。
2、在本发明一实施例中,由于待升级***本身具有自己的操作***,在升级***之前无法确定待升级***是否是最新的操作***,而每一个***对应一个版本号,故需向服务端发送升级请求,以使服务端返回待升级***的云端版本号。通过比对云端版本号与待升级***的本地版本号,确定本地版本号与云端版本号是否相同来判断是否需要对待升级***进行升级。如果本地版本号不是最新的云端版本号,则需要对待升级***进行升级,向服务端请求升级包,并接收服务端发来的升级包;如果本地版本号是最新的云端版本号,则不需要对***进行升级,直接退出本次升级。
3、在本发明实施例中,针对获取到的服务端发来的升级包需要对其进行校验,以确保升级包的完整性,不会在***运行的过程中影响***的稳定性。如果校验通过,则说明升级包是完整的,则可以将完整的升级包保存至用于存储数据的第二不可擦写分区;如果校验不通过,则说明升级包是不完整的,则无法进行本次升级,需要将不完整的升级包删除并退出本次升级。
需要说明的是,上述各流程和各***结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的***结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (10)
1.***升级方法,其特征在于,预先将擦写升级程序保存到第一不可擦写分区中,其中,所述第一不可擦写分区为用于存储程序的不可擦写分区,包括:
接收服务端发来的升级包;
将所述升级包保存到第二不可擦写分区中,其中,所述第二不可擦写分区为用于存储数据的不可擦写分区;
根据所述升级包和所述擦写升级程序,对待升级***进行升级。
2.根据权利要求1所述的***升级方法,其特征在于,
在所述接收服务端发来的升级包之前,进一步包括:
给所述服务端发送升级请求,以使所述服务端返回所述待升级***的云端版本号;
获取所述服务端发来的所述云端版本号;
根据所述服务端发来的所述云端版本号和所述待升级***的本地版本号,确定是否能够升级,若是,则向所述服务端请求所述升级包,执行所述接收服务端发来的升级包,若否,退出本次升级;
和/或,
在所述接收服务端发来的升级包之后,进一步包括:
对所述升级包进行校验,如果校验通过,则执行所述将所述升级包保存到所述第二不可擦写分区中,如果校验不通过,则删除所述升级包,并退出本次升级。
3.根据权利要求1所述的***升级方法,其特征在于,
所述第一不可擦写分区,包括:引导分区;
所述预先将擦写升级程序保存到第一不可擦写分区中,包括:
预先将所述擦写升级程序保存到所述引导分区中;
所述根据所述升级包和所述擦写升级程序,对待升级***进行升级,包括:
重新启动所述待升级***;
从所述引导分区启动所述擦写升级程序;
利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
4.根据权利要求1所述的***升级方法,其特征在于,
所述第一不可擦写分区,包括:装载分区;
所述预先将擦写升级程序保存到第一不可擦写分区中,包括:
预先将所述擦写升级程序保存到所述装载分区中;
所述根据所述升级包和所述擦写升级程序,对待升级***进行升级,包括:
重新启动所述待升级***;
从所述装载分区启动所述擦写升级程序;
利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
5.根据权利要求1所述的***升级方法,其特征在于,
所述第一不可擦写分区,包括:共同分区,所述共同分区为保存有引导程序和装载程序的不可擦写分区;
所述预先将擦写升级程序保存到第一不可擦写分区中,包括:
预先将所述擦写升级程序保存到所述共同分区中;
所述根据所述升级包和所述擦写升级程序,对待升级***进行升级,包括:
重新启动所述待升级***;
从所述共同分区启动所述擦写升级程序;
利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
6.***升级装置,其特征在于,包括:
接收模块,用于接收服务端发来的升级包;
保存模块,用于将所述升级包保存到第二不可擦写分区中,其中,所述第二不可擦写分区为用于存储数据的不可擦写分区;
升级模块,用于根据所述升级包和所述擦写升级程序,对待升级***进行升级,其中,所述擦写升级程序保存在第一不可擦写分区中,所述第一不可擦写分区为用于存储程序的不可擦写分区。
7.根据权利要求6所述的***升级装置,其特征在于,
进一步包括:
请求模块,用于给所述服务端发送升级请求,以使所述服务端返回所述待升级***的云端版本号;
获取模块,用于获取所述服务端发来的所述云端版本号;
确定模块,用于根据所述云端版本号和所述待升级***的本地版本号,确定是否能够升级,若是,则向所述服务端请求所述升级包,触发所述接收模块,若否,退出本次升级;
和/或,
进一步包括:
校验模块,用于对所述接收模块接收的所述升级包进行校验,如果校验通过,则触发所述保存模块,如果校验不通过,则删除所述升级包,并退出本次升级。
8.根据权利要求6所述的***升级装置,其特征在于,
所述第一不可擦写分区,包括:引导分区;
所述升级模块,包括:
第一重启单元,用于重新启动所述待升级***;
第一启动单元,用于从所述引导分区启动所述预先保存在所述引导分区的所述擦写升级程序;
第一读取单元,用于利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
9.根据权利要求6所述的***升级装置,其特征在于,
所述第一不可擦写分区,包括:装载分区;
所述升级模块,包括:
第二重启单元:用于重新启动所述待升级***;
第二启动单元,用于从所述装载分区启动所述预先保存在所述装载分区的所述擦写升级程序;
第二读取单元,用于利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
10.根据权利要求6所述的***升级装置,其特征在于,
所述第一不可擦写分区,包括:共同分区,所述共同分区为保存有引导程序和装载程序的不可擦写分区;
所述升级模块,包括:
第三重启单元,用于重新启动所述待升级***;
第三启动单元,用于从所述共同分区启动所述预先保存在所述共同分区的所述擦写升级程序;第三读取单元,用于利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级;
第三读取单元,用于利用所述擦写升级程序从所述第二不可擦写分区中读取所述升级包,实现对所述待升级***的升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911399119.XA CN111190627A (zh) | 2019-12-30 | 2019-12-30 | ***升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911399119.XA CN111190627A (zh) | 2019-12-30 | 2019-12-30 | ***升级方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111190627A true CN111190627A (zh) | 2020-05-22 |
Family
ID=70707939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911399119.XA Pending CN111190627A (zh) | 2019-12-30 | 2019-12-30 | ***升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190627A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407211A (zh) * | 2021-06-20 | 2021-09-17 | 杭州登虹科技有限公司 | 一种基于嵌入式设备无需冗余空间的升级方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477471A (zh) * | 2009-01-07 | 2009-07-08 | 杭州海康威视数字技术股份有限公司 | 一种嵌入式***固件在线升级方法 |
CN101520734A (zh) * | 2008-12-17 | 2009-09-02 | 康佳集团股份有限公司 | 一种升级闪存中数据的方法及其网络电视和交互式机顶盒 |
CN106227568A (zh) * | 2012-11-09 | 2016-12-14 | 青岛海信移动通信技术股份有限公司 | 终端设备开机、升级方法和设备 |
US20180204008A1 (en) * | 2012-01-12 | 2018-07-19 | Facebook, Inc. | Multiple system images for over-the-air updates |
CN108845819A (zh) * | 2018-08-10 | 2018-11-20 | 百度在线网络技术(北京)有限公司 | 用于设备的程序升级方法和装置 |
-
2019
- 2019-12-30 CN CN201911399119.XA patent/CN111190627A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520734A (zh) * | 2008-12-17 | 2009-09-02 | 康佳集团股份有限公司 | 一种升级闪存中数据的方法及其网络电视和交互式机顶盒 |
CN101477471A (zh) * | 2009-01-07 | 2009-07-08 | 杭州海康威视数字技术股份有限公司 | 一种嵌入式***固件在线升级方法 |
US20180204008A1 (en) * | 2012-01-12 | 2018-07-19 | Facebook, Inc. | Multiple system images for over-the-air updates |
CN106227568A (zh) * | 2012-11-09 | 2016-12-14 | 青岛海信移动通信技术股份有限公司 | 终端设备开机、升级方法和设备 |
CN108845819A (zh) * | 2018-08-10 | 2018-11-20 | 百度在线网络技术(北京)有限公司 | 用于设备的程序升级方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407211A (zh) * | 2021-06-20 | 2021-09-17 | 杭州登虹科技有限公司 | 一种基于嵌入式设备无需冗余空间的升级方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094927B (zh) | 一种设备固件升级方法和装置 | |
US20110004871A1 (en) | Embedded electronic device and firmware updating method thereof | |
WO2014146256A1 (zh) | 一种升级方法、智能终端及升级*** | |
CN105760200A (zh) | 终端设备及其***升级方法 | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN112612524A (zh) | Linux***启动的方法、装置、设备及存储介质 | |
CN102184111B (zh) | 操作***在线升级方法及带操作***的设备 | |
CN103970564A (zh) | 嵌入式操作***自动修复升级功能的方法及其*** | |
CN110647333A (zh) | 固件升级方法及配置成对其中的固件进行升级的设备 | |
CN111190627A (zh) | ***升级方法及装置 | |
CN103455750A (zh) | 一种嵌入式设备的高安验证方法及装置 | |
CN113032183A (zh) | ***管理方法、装置、计算机设备和存储介质 | |
CN111124760B (zh) | 一种基于uboot的嵌入式设备启动方法及装置 | |
CN113114730B (zh) | 升级方法、装置、终端设备及存储介质 | |
CN115827069A (zh) | 服务器主板的启动控制方法、***及装置 | |
CN115481405A (zh) | 一种嵌入式***的安全启动和优化升级方法 | |
CN111611000B (zh) | 一种高可靠的固件空中升级方法及*** | |
CN113190244A (zh) | 无线模组升级的方法、装置、计算机设备和存储介质 | |
CN113703801A (zh) | 一种车载终端固件升级方法及电子装置 | |
CN108920210B (zh) | 一种加载存储控制软件的方法、***及相关组件 | |
CN117270914B (zh) | 一种终端设备的***升级方法、装置、设备和介质 | |
CN113064608A (zh) | 一种ota升级方法、装置、设备和介质 | |
CN114296770A (zh) | 差分升级方法、装置、设备及可读存储介质 | |
CN115686919A (zh) | 一种非易失存储装置、固件损坏处理方法、升级方法 | |
CN113986261A (zh) | 一种数据刷写的方法、相关装置、设备以及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200522 |
|
RJ01 | Rejection of invention patent application after publication |