一种基于最小系统备份实现的安全模式自动升级方法与流程

文档序号:16207070发布日期:2018-12-08 07:14阅读:358来源:国知局
一种基于最小系统备份实现的安全模式自动升级方法与流程

本发明涉及系统升级技术领域,具体涉及一种基于最小系统备份实现的安全模式自动升级方法。



背景技术:

目前,市面上许多电子产品会带有固件升级功能,由于升级时固件写入闪存是需要一定时间的,因此在写入过程中如出现拔电,跳闸等情况设备就很容易变砖,无法再自行启动。

而现有技术中,某些产品带有恢复升级功能,如电脑在升级变砖情况下,大多采用光驱或者u盘来重新安装系统,即先让电脑进入升级引导程序,然后使用带有系统文件的光驱或者u盘手动进行系统恢复升级。再如iphone手机升级时变砖也是使用类型方法,借助itunes工具恢复升级。该类恢复升级方案与本文所说的安全模式自动升级方案的相同点是:升级一半断电后,都可以再重新升级到目标系统。还有一些用户会使用备份当前系统的功能,如一键ghost功能,当升级变砖后,可以通过该功能恢复到原来备份的系统。

对于通过引导程序进行恢复升级的产品,当升级变砖情况下,还需要借助磁盘工具再手动升级,操作繁琐,用户体验不佳。对于使用备份功能进行恢复升级的产品,不仅所需备份空间很大,而且事先也需要手动进行系统备份,操作上也比较繁琐。



技术实现要素:

本发明的目的在于提供一种基于最小系统备份实现的安全模式自动升级方法,其在固件升级失败后,能够自动完成固件升级。

为实现上述目的,本发明采用的技术方案是:

一种基于最小系统备份实现的安全模式自动升级方法,其具体如下:

通过autop方式对固件进行升级时,设置环境变量url,用于保存url路径;启动升级后,若升级成功,则设置环境变量updatestate为0;若升级失败,设置环境变量updatestate为1;

升级结束后,系统重启到uboot时,判断环境变量updatestate是否为1,如果不为1,则系统正常启动;如果为1,则说明升级失败,设置环境变量bootmode等于safemode,并从分区中读取bin和rfs到内存中引导系统,进入安全模式升级;

进入安全模式升级后,从环境变量中读取bootmode的值,如果bootmode的值等于safemode,则通过url方式升级,即先从环境变量中读取url的值,然后通过url路径下载固件进行升级;

升级成功后系统进行自动备份最小系统的动作,若在备份最小系统时断电,系统记住相应状态,下一次再上电的时候uboot引导程序根据该状态再重新备份一遍最小系统。

采用上述方案后,本发明具有以下有益效果:

1、本发明在固件升级失败后能够自动完成固件升级,即本发明在升级失败后进入安全模式,安全模式启动后无需用户多余的操作即可实现重新自动升级到固件,优化用户体验。

2、本发明在升级完成后都自动进行最小系统备份,只需备份基础系统和升级模块,少去业务层大量程序,从而减少备份的占用空间。

附图说明

图1为本发明autop升级流程图;

图2为本发明安全模式升级流程图。

具体实施方式

本发明揭示了一种基于最小系统备份实现的安全模式自动升级方法,当用户开始通过autop(autoprovision,自动配置)升级时,升级配置和升级标志将会被写入闪存中,若升级固件过程中断电导致升级失败,则升级标志将不会被清除。当下一次启动设备时,系统引导程序检测到升级标志被置,将自动去引导所备份的最小系统,即进入安全模式完成固件的自动升级,其中,最小系统包括操作系统、文件系统和最小升级模块。

本发明的基于最小系统备份实现的安全模式自动升级方法,其具体如下:

如图1所示,用户通过autop方式进行固件升级的时候,会设置环境变量url,用于保存url路径。启动升级后,如果升级成功,则设置环境变量updatestate为0;升级失败的时候,会设置环境变量updatestate为1。升级结束后,系统重启到uboot的时候,会判断环境变量updatestate是否为1,如果不为1,则系统正常启动。如果为1,则说明升级失败,设置环境变量bootmode等于safemode,并从分区中读取bin和rfs到内存中引导系统,进入安全模式升级。

如图2所示,进入安全模式升级后,从环境变量中读取bootmode的值,如果bootmode的值等于safemode,则通过url方式升级,即先从环境变量中读取url的值,然后通过url路径下载固件进行升级。

升级成功后均会做自动备份最小系统的动作,即复制闪存分区中已经升级完的数据到指定的另一个闪存分区(该分区即专门用于备份的分区),备份内容包括操作系统,文件系统和最小升级模块(不包括所有业务层的模块),以便下次升级变砖又可以进入安全模式。而如果在备份最小系统时断电,系统也会记住相应状态,下一次再上电的时候uboot引导程序会根据该状态再重新备份一遍最小系统,保证可持续性。

如图2所示,当bootmode不等于safemode的情况下,采用的是其他升级方式,如tftp网络恢复升级和usb恢复升级功能。这两种升级方式也可以恢复已经升级失败的设备(已经升级失败的设备,通过启动时长按快捷键可以进入这两种升级方式),但是这两种方式属于手动恢复。当bootmode等于tftpmode时,由于升级失败只是系统损坏,而bootloader引导程序并未损坏,所以可在bootloader引导程序中通过tftp的网络通信方式下载目标升级固件进行恢复升级。当bootmode等于usbmode时,由于升级失败只是系统损坏,而bootloader引导程序并未损坏,所以可在bootloader引导程序中通过usb的通信方式从u盘中下载目标升级固件进行恢复升级。

因本发明在升级失败时,就将环境变量bootmode的值设置为safemode,所以在采用本发明进行固件升级而升级失败后,进行恢复升级时,环境变量bootmode的值一定会等于safemode,也就是说,进行回复升级时,一定会进入安全模式升级,完成固件的自动升级。

本发明关键在于,本发明通过autop方式升级,当升级失败时,设置环境变量bootmode使其等于safemode,从而进入安全模式升级,通过url方式对固件升级。安全模式启动后无需用户多余的操作即可实现重新自动升级到目标固件,优化用户体验。此外,本发明在固件升级完成后,进行最小系统的备份,只需备份基础系统和升级模块,少去业务层大量程序。

以上所述,仅是本发明实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。



技术特征:

技术总结
本发明涉及一种基于最小系统备份实现的安全模式自动升级方法,其通过autop方式升级,当升级失败时,设置环境变量bootmode使其等于safemode,从而进入安全模式升级,通过url方式对固件升级。安全模式启动后无需用户多余的操作即可实现重新自动升级到目标固件,优化用户体验。此外,本发明在固件升级完成后,进行最小系统的备份,只需备份基础系统和升级模块,少去业务层大量程序。

技术研发人员:周继伟;郑光暖;江虎
受保护的技术使用者:厦门亿联网络技术股份有限公司
技术研发日:2018.06.21
技术公布日:2018.12.07
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1