CN105488419A - 一种固件安全升级方法及路由设备 - Google Patents

一种固件安全升级方法及路由设备 Download PDF

Info

Publication number
CN105488419A
CN105488419A CN201510906709.2A CN201510906709A CN105488419A CN 105488419 A CN105488419 A CN 105488419A CN 201510906709 A CN201510906709 A CN 201510906709A CN 105488419 A CN105488419 A CN 105488419A
Authority
CN
China
Prior art keywords
firmware
flash
flag
space
upgrading method
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
Application number
CN201510906709.2A
Other languages
English (en)
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.)
Shanghai Feixun Data Communication Technology Co Ltd
Original Assignee
Shanghai Feixun Data Communication Technology 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 Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201510906709.2A priority Critical patent/CN105488419A/zh
Publication of CN105488419A publication Critical patent/CN105488419A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种固件安全升级方法,包括:S10保存固件至flash中;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。本发明利用固件openwrt的JFFS2文件系统的可读写特性,在升级过程中在flash中暂时保存固件,在升级完成后自动删除固件,保证了升级过程可以顺利完成,同时flash空间可以正确释放。

Description

一种固件安全升级方法及路由设备
技术领域
本发明涉及数据通信领域,特别是涉及一种固件安全升级方法及路由设备。
背景技术
目前openwrt路由器和传统路由器固件升级方法基本类似,可以通过串口或者web服务器将固件首先读入到SDRAM当中,然后擦除flash,将固件写入到flash当中,最后重启路由器。
与传统路由器不同,openwrt的flash中的固件区域分为SquashFS和JFFS2两种文件系统,其中SquashFS是只读区域,而JFFS2具有可读写的特性。
OpenWrt的包管理提供了一个完全可写的文件系统。用户可以从远程仓库下载ipk,并安装到路由器当中,扩展自己的功能,这点与安卓手机在应用市场下载apk应用相类似。利用这个特性用户可以便捷地升级部分功能,然而在软件快速迭代的现在,用户还是有相当多地场景是需要升级整个固件的。
在目前绝大多数的路由器中,是不支持固件升级失败回退功能的,用户在升级固件的过程中,往往是小心翼翼.这限制了我司的固件快速推广.同时用户一旦因为意外情况,固件升级失败,由于无法再次进入web配置页面,导致用户路由器只能返厂维修或者自认倒霉。
当前针对固件安全升级,解决方案主要是通过在flash中划定一块区域存放备份固件,当升级过程中发生意外情况,要么将备份区域的固件拷贝到uboot的启动位置,要么将uboot的启动位置换到备份固件的首地址。
总之,当前方案都会对flash空间造成一定的浪费。
发明内容
本发明的目的是提供一种安全的固件升级的方法,能够保证用户升级顺利完成,同时flash存储空间可以正确释放。
本发明提供的技术方案如下:
本发明提供一种固件安全升级方法,包括:S10保存固件至flash中;S20从flash中将固件读入到SDRAM(SynchronousDynamicRandomAccessMemory,同步动态随机存储器)中;S30升级固件;S40当固件升级完成后,清理flash空间。
本发明还提供另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10保存固件至flash中;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。
进一步优选的,所述步骤S10保存固件至flash中是指将固件分段式地保存到flash中。
本发明还提供另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10将固件分段式地保存到flash中;S12判断固件完整性;若判断为否,则返回执行步骤S10;否则,将flag区域中的标志位置1,保存固件首地址;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。
本发明还提供另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10将固件分段式地保存到flash中;S12判断固件完整性;若判断为否,则返回执行步骤S10;否则,将flag区域中的标志位置1,保存固件首地址;S14读取并判断flag标志位;若flag的标志位为1,执行步骤S20;若flag的标志位为0,则读取flag地址位,进一步判断所述地址位是否为有效地址位;当flag地址位为有效地址,清理flash空间;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。
本发明还提供另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10将固件分段式地保存到flash中;S12判断固件完整性;若判断为否,则返回执行步骤S10;否则,将flag区域中的标志位置1,保存固件首地址;S14读取并判断flag标志位;若flag的标志位为1,执行步骤S20;若flag的标志位为0,则读取flag地址位,进一步判断所述地址位是否为有效地址位;当flag地址位为有效地址,清理flash空间;S16判断清理flash空间是否完毕;若是,升级结束;否则,返回执行步骤S14;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。
进一步优选的,所述步骤S30升级固件还包括:判断升级是否完成;若是,执行步骤S40;否则,重复执行步骤S14。
进一步优选的,所述步骤S40当固件升级完成后,清理flash空间还包括:将flag标志位置0,返回执行步骤S16。
本发明还提供一种路由设备,应用上述固件安全升级方法。
与现有技术相比,本发明利用openwrt的JFFS2文件系统的可读写特性,在升级过程中在flash中暂时保存固件,在升级完成后自动删除固件.保证了升级过程可以顺利完成,同时flash空间可以正确释放。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种固件安全升级方法及路由设备的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1为本发明一种固件安全升级方法的步骤示意图;
图2为本发明一种固件安全升级方法的固件的flash分布图;
图3为本发明一种固件安全升级方法的固件在flash中保存形式图;
图4为本发明一种固件安全升级方法的流程图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
图1为本发明一种固件安全升级方法的步骤示意图,作为本发明的一个具体实施例,如图1所示,包括:S10保存固件至flash中;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。
对上述实施例进行改进,得到另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10保存固件至flash中;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。
进一步优选的,所述步骤S10保存固件至flash中是指将固件分段式地保存到flash中。
图2为本发明一种固件安全升级方法的固件的flash分布图。如图2所示:
flash被分为5个区域:uboot;uboot-env;factory;firmware;config.
Firmware被分为kernel和rootfs两个区域。其中rootfs又可以分为SquashFS和JFFS2两种文件类型。
用户通过串口或者web页面将用于升级的临时备份固件分段式地保存到flash中的rootfs_data区域,这个区域的文件类型是JFFS2类型,可以自由地擦写。标志位flag将会保存在uboot-env区域中,供uboot来读取。
在flag区域中将会保存两个数据:
Boolupdate-prepared//用于保存固件是否需要升级的标志位
Unsignedintaddress//用于保存固件在flash中的首地址
固件部分在flash是分布式存储的,每个部分包含数据头和数据段两个部分,其中数据头包含3个数据:
1.intsize//表示本段连续保存固件的长度.即uboot从这个地址向后读取多少数据
2.intCRC//存储本段连续存储的数据的CRC校验值,从而保证了固件的完整性和正确性.
3.unsignedintaddress//存储了下一段存储文件的首地址
具体的,在正常使用的过程中,flash的使用不是连续的,所以针对目前大小在8M~32M中很难找到连续的空间来存放固件。本发明使用一种分段式的存储方式来存储固件。以使用flash中不连续的3段空间来保存固件为例,其在flash保存形式如图3所示:
将固件分为3个部分,同时加入head头部,头部包含了data长度,CRC校验值,下一个数据段的首地址,其中data长度保证可以读取正确长度的数据,CRC校验值保证数据段的正确性和完整性。下下一个数据段的首地址保证了可以通过地址找到下一个数据段。
对上述实施例进行改进,得到另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10将固件分段式地保存到flash中;S12判断固件完整性;若判断为否,则返回执行步骤S10;否则,将flag区域中的标志位置1,保存固件首地址;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。
对上述实施例进行改进,得到另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10将固件分段式地保存到flash中;S12判断固件完整性;若判断为否,则返回执行步骤S10;否则,将flag区域中的标志位置1,保存固件首地址;S14读取并判断flag标志位;若flag的标志位为1,执行步骤S20;若flag的标志位为0,则读取flag地址位,进一步判断所述地址位是否为有效地址位;当flag地址位为有效地址,清理flash空间;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。
对上述实施例进行改进,得到另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10将固件分段式地保存到flash中;S12判断固件完整性;若判断为否,则返回执行步骤S10;否则,将flag区域中的标志位置1,保存固件首地址;S14读取并判断flag标志位;若flag的标志位为1,执行步骤S20;若flag的标志位为0,则读取flag地址位,进一步判断所述地址位是否为有效地址位;当flag地址位为有效地址,清理flash空间;S16判断清理flash空间是否完毕;若是,升级结束;否则,返回执行步骤S14;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。
进一步优选的,所述步骤S30升级固件还包括:判断升级是否完成;若是,执行步骤S40;否则,重复执行步骤S14。
进一步优选的,所述步骤S40当固件升级完成后,清理flash空间还包括:将flag标志位置0,返回执行步骤S16。
下面详细介绍本发明的工作流程。图4为本发明一种固件安全升级方法的流程图。如图4所示:
200开始。
201判断flash的存储空间是否大于固件所需空间;若判断结果为否,则执行步骤211;否则,则继续执行下一步
202将固件分段式地保存到flash中的rootfs_data区域。
203判断固件的完整性;若是,则执行下一步;否则,提示用户重试,重复执行步骤201。
204将flag区域中的标志位置1,同时保存固件首地址。
205重启系统,由uboot读取flag标志位。
206判断标志位是否为1;若是,则执行下一步;否则,执行步骤214。
207依次从flash中将固件读入到SDRAM中,启动升级流程。
208判断升级是否完成;若是,执行下一步;否则,重复执行步骤205。
209将flag标志位置0。
210清理flash存储空间。
211判断是否清理完毕;若是,执行步骤212;否则重复执行步骤205。
212正常启动系统。
213结束。
214读取并判断flag地址位是否有效;若地址位为有效地址位,则执行步骤210;否则执行步骤212。
本发明还提供一种路由设备,应用上述固件安全升级方法。
原先没有双固件或者固件备份的路由器中,在升级过程中,一旦断电或者断网,路由器则必须返厂维修,对用户而言是个巨大的负担。
而本发明提供的一种路由设备,应用上述固件安全升级方法,在升级过程中的任意时刻断电或者断网都不会影响用户的正常使用。对用户而言,路由器一直都是可用的,不会因为升级过程中的任何意外而导致路由器无法正常启动。对于快速迭代的互联网,本发明有积极意义。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种固件安全升级方法,其特征在于,包括:
S10保存固件至flash中;
S20从flash中将固件读入到SDRAM中;
S30升级固件;
S40当固件升级完成后,清理flash空间。
2.如权利要求1所述的固件安全升级方法,其特征在于,所述步骤S10保存固件至flash中之前还包括S00:
判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20。
3.如权利要求2所述的固件安全升级方法,其特征在于,所述步骤S10保存固件至flash中是指将固件分段式地保存到flash中。
4.如权利要求3所述的固件安全升级方法,其特征在于,所述步骤S10保存固件至flash中之后还包括S12:
判断固件完整性;若判断为否,则返回执行步骤S10;否则,将flag区域中的标志位置1,保存固件首地址。
5.如权利要求4所述的固件安全升级方法,其特征在于,所述步骤S12之后还包括S14:
读取并判断flag标志位;
若flag的标志位为1,执行步骤S20;若flag的标志位为0,则读取flag地址位,进一步判断所述地址位是否为有效地址;
当flag地址位为有效地址,清理flash空间。
6.如权利要求5所述的固件安全升级方法,其特征在于,所述步骤S14之后还包括S16:
判断清理flash空间是否完毕;若是,升级结束;否则,返回执行步骤S14。
7.如权利要求6所述的固件安全升级方法,其特征在于,所述步骤S30升级固件还包括:
判断升级是否完成;若是,执行步骤S40;否则,重复执行步骤S14。
8.如权利要求7所述的固件安全升级方法,其特征在于,所述步骤S40当固件升级完成后,清理flash空间还包括:
将flag标志位置0,返回执行步骤S16。
9.一种路由设备,其特征在于,应用上述1-8任意一项权利要求所述的固件安全升级方法。
CN201510906709.2A 2015-12-09 2015-12-09 一种固件安全升级方法及路由设备 Pending CN105488419A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510906709.2A CN105488419A (zh) 2015-12-09 2015-12-09 一种固件安全升级方法及路由设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510906709.2A CN105488419A (zh) 2015-12-09 2015-12-09 一种固件安全升级方法及路由设备

Publications (1)

Publication Number Publication Date
CN105488419A true CN105488419A (zh) 2016-04-13

Family

ID=55675393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510906709.2A Pending CN105488419A (zh) 2015-12-09 2015-12-09 一种固件安全升级方法及路由设备

Country Status (1)

Country Link
CN (1) CN105488419A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020905A (zh) * 2016-05-31 2016-10-12 上海庆科信息技术有限公司 一种微控制器固件开发与更新的方法及系统
CN107566169A (zh) * 2017-08-24 2018-01-09 上海斐讯数据通信技术有限公司 一种基于openwrt的固件升级方法及路由器
CN111538513A (zh) * 2020-04-16 2020-08-14 深圳比特微电子科技有限公司 一种虚拟货币矿机电源的批量固件更新方法和系统
CN112996026A (zh) * 2021-04-27 2021-06-18 深圳市乙辰科技股份有限公司 一种无线网络设备的双备份升级方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050229172A1 (en) * 2004-04-09 2005-10-13 Li-Chun Tu Method and related device for updating firmware code stored in non-volatile memory
CN101425018A (zh) * 2008-12-05 2009-05-06 深圳创维数字技术股份有限公司 基于分段式的嵌入式固件升级方法及装置
CN102945174A (zh) * 2012-11-08 2013-02-27 大连捷成实业发展有限公司 通过接着片外Flash实现单片机程序升级的方法
CN104077167A (zh) * 2014-07-11 2014-10-01 杭州华三通信技术有限公司 基于nand flash的启动加载方法和装置
CN104216791A (zh) * 2013-05-30 2014-12-17 上海斐讯数据通信技术有限公司 一种校验Flash存储数据的方法
CN104331312A (zh) * 2014-11-24 2015-02-04 东软熙康健康科技有限公司 一种固件升级方法及嵌入式设备
CN104573529A (zh) * 2015-01-28 2015-04-29 加弘科技咨询(上海)有限公司 一种bios固件的划分、更新方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050229172A1 (en) * 2004-04-09 2005-10-13 Li-Chun Tu Method and related device for updating firmware code stored in non-volatile memory
CN101425018A (zh) * 2008-12-05 2009-05-06 深圳创维数字技术股份有限公司 基于分段式的嵌入式固件升级方法及装置
CN102945174A (zh) * 2012-11-08 2013-02-27 大连捷成实业发展有限公司 通过接着片外Flash实现单片机程序升级的方法
CN104216791A (zh) * 2013-05-30 2014-12-17 上海斐讯数据通信技术有限公司 一种校验Flash存储数据的方法
CN104077167A (zh) * 2014-07-11 2014-10-01 杭州华三通信技术有限公司 基于nand flash的启动加载方法和装置
CN104331312A (zh) * 2014-11-24 2015-02-04 东软熙康健康科技有限公司 一种固件升级方法及嵌入式设备
CN104573529A (zh) * 2015-01-28 2015-04-29 加弘科技咨询(上海)有限公司 一种bios固件的划分、更新方法和系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020905A (zh) * 2016-05-31 2016-10-12 上海庆科信息技术有限公司 一种微控制器固件开发与更新的方法及系统
CN107566169A (zh) * 2017-08-24 2018-01-09 上海斐讯数据通信技术有限公司 一种基于openwrt的固件升级方法及路由器
CN107566169B (zh) * 2017-08-24 2021-04-09 台州市吉吉知识产权运营有限公司 一种基于openwrt的固件升级方法及路由器
CN111538513A (zh) * 2020-04-16 2020-08-14 深圳比特微电子科技有限公司 一种虚拟货币矿机电源的批量固件更新方法和系统
CN111538513B (zh) * 2020-04-16 2021-08-27 深圳比特微电子科技有限公司 一种虚拟货币矿机电源的批量固件更新方法和系统
CN112996026A (zh) * 2021-04-27 2021-06-18 深圳市乙辰科技股份有限公司 一种无线网络设备的双备份升级方法及系统
CN112996026B (zh) * 2021-04-27 2021-09-10 深圳市乙辰科技股份有限公司 一种无线网络设备的双备份升级方法及系统

Similar Documents

Publication Publication Date Title
CN103677947B (zh) 基于linux的设备双系统保护及升级方法
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
ES2824830T3 (es) Procedimiento de actualización de software para un dispositivo integrado
CN105488419A (zh) 一种固件安全升级方法及路由设备
TWI515660B (zh) 韌體變量更新方法
CN109032632B (zh) 一种fota升级方法、无线通信终端及存储介质
US8812910B2 (en) Pilot process method for system boot and associated apparatus
US20190287626A1 (en) Data overwriting device and data overwriting method
CN108170495B (zh) 一种bios升级方法、系统、设备及计算机可读存储介质
CN104572229A (zh) 嵌入式系统的固件升级方法以及固件升级装置
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
CN102411523A (zh) 文件备份存储方法、装置及其文件系统备份方法
CN107678762B (zh) 一种系统版本升级方法及装置
CN107566169A (zh) 一种基于openwrt的固件升级方法及路由器
WO2018145392A1 (zh) 差分升级方法及装置、终端、存储介质、处理器
CN104915226A (zh) 一种网络设备软件启动方法、装置及网络设备
CN108572830A (zh) 一种嵌入式系统及其引导程序的升级方法、系统
CN109582332B (zh) 互联网摄像机的系统升级方法及装置
CN105404533A (zh) 程序升级方法和装置
CN102650949A (zh) 一种存储设备的固件升级的方法及装置
CN111045712A (zh) 一种具有备份功能的单系统升级方法及系统
CN110704236B (zh) 芯片flash数据的在线校验方法及计算机存储介质
WO2018049798A1 (zh) 一种缓存分区重构的方法和装置
CN107329699B (zh) 一种纠删重写方法及系统
CN108664255B (zh) 一种软件升级方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20190625

AD01 Patent right deemed abandoned