[发明专利]一种安全灵活的固件升级方法无效
申请号: | 201310144727.2 | 申请日: | 2013-04-24 |
公开(公告)号: | CN103207800A | 公开(公告)日: | 2013-07-17 |
发明(设计)人: | 冯万健 | 申请(专利权)人: | 厦门亿联网络技术股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 厦门市新华专利商标代理有限公司 35203 | 代理人: | 朱凌 |
地址: | 361009 福建省厦门市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 安全 灵活 升级 方法 | ||
技术领域
本发明属于计算机软件领域,具体涉及一种安全灵活的固件升级方法。
背景技术
固件是一种对电子设备进行内部控制的软件。典型的具有固件的电子设备包括:针对个人用户的终端产品,例如遥控器、计算器、手机、数码相机;与计算机相关的组件或设备,例如硬盘、键盘、光驱、显示器、存储卡;科学仪器;工业机器人等。固件为电子设备提供非常基础的、低水平的操作;一旦离开固件,电子设备将完全无法工作。
固件通常存储于电子设备的非易失性存储器中,例如ROM、PROM或Flash等。固件需要升级,升级通常是为了改正原有固件的错误、或为电子设备增加新的功能等。固件的升级通常是由电子设备制造商提供二进制的映像文件,使电子设备加载该固件文件并按照一定程序进行升级。
对于嵌入式设备,为了提高扩展性和灵活性等,通常需要具备固件升级的能力。固件升级失败通常将会引发嵌入式设备无法使用需要返厂维修严重后果。
有鉴于此,本发明人针对现有技术的缺陷深入研究,并有本案产生。
发明内容
本发明所要解决的技术问题在于提供一种安全灵活的固件升级方法。
本发明是这样实现的:
一种安全灵活的固件升级方法,
包括如下步骤:
步骤1:用户触发进入升级,此时启动升级程序,名称p1;
步骤2:p1根据用户提供的固件地址去下载固件头;
步骤3:固件头下载完成后,p1判断用户提供的固件数据是否正确,如果固件数据错误,转入步骤4,如果正确,则转入步骤5;
步骤4:p1停止升级并反馈用户错误信息;
步骤5: p1杀死除自己以外的全部进程,来让出整个设备的内存,并且这样避免了其他程序对升级的干扰;
步骤6、p1此时开始下载整个固件到内存;
步骤7:整个固件下载完成后,p1设置和保存同步信息;
步骤8:p1对固件中子升级程序所在的分区数据进行解密和解压缩,提取出自带的子升级程序,名称p2;
步骤9:p1调用p2去完成升级动作,p1等待升级完成;
步骤10:p2检测固件是否合法,是,转入步骤12,否,则转入步骤11;
步骤11:停止升级,并通知p1;
步骤12:p2对分区数据进行解密和解压缩,转入步骤13;
步骤13:p2开始对设备进行具体的升级动作;
步骤14:当p2完成后通知p1,然后重启设备升级完成。
进一步地,所述固件包括:
用于判断固件数据包是否合法的固件头;
经过加密的子升级程序p2;
经过加密的各个分区数据。
进一步地,所述步骤2中,判断用户提供的固件数据是否正确采用以下方式进行:
判断固件的设备id是否和设备匹配,不匹配则不升级;
判断固件的oem号是否和设备匹配,不匹配则不升级;
判断固件的版本号是否和设备相同,相同则不升级。
进一步地,所述子升级程序P2包括:
分区头校验正确;
分区是否强制升级,强制则不判断分区版本号,否则分区版本号和设备分区版本号相同则不升级;
根据分区数据压缩类型进行数据解压;
根据分区数据加密类型进行数据解密;
根据分区数据类型将数据写入设备;
如此循环遍历升级全部的分区数据。
进一步地,所述固件数据,是根据设备的分区划分为不同的数据分区,每一个分区都有分区头来标记该分区的信息,所述信息包括分区版本,分区大小,分区数据类型,分区加密方式,分区压缩方式,分区校验值;其中分区数据类型包括:bin文件,普通文件,nand数据,nand带oob数据,nor数据,可执行程序,配置表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门亿联网络技术股份有限公司,未经厦门亿联网络技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310144727.2/2.html,转载请声明来源钻瓜专利网。