首页> 中国专利> 一种基于flash写保护的防止SD使用过程中flash被意外篡改的方法

一种基于flash写保护的防止SD使用过程中flash被意外篡改的方法

摘要

本发明公开了一种基于flash写保护的防止SD使用过程中flash被意外篡改的方法,包括(S1)当所述SD设备启动时,将flash写保护指令集和flash去保护指令集全部载入SD设备的内存中保存;(S2)检测bootloader分区是否需要升级,若需要,则(S3)从外部载入待升级的bootloader内容,同时在该过程中当flash与内存之间的串行接口空闲时,从内存中向该bootloader分区一次性写入所述flash去保护指令集,对该bootloader分区进行去保护操作;(S4)升级bootloader内容;(S6)从内存中一次性写入flash写保护指令集,对所述bootloader分区进行flash写保护操作。本发明巧妙利用flash写保护保证了SD设备中bootloader分区不被意外篡改,也不会被破坏,即便其他分区部分出现被篡改的情况,也能够通过应急通道进行升级,恢复SD设备的功能。

著录项

  • 公开/公告号CN106293531A

    专利类型发明专利

  • 公开/公告日2017-01-04

    原文格式PDF

  • 申请/专利权人 深圳市蜂联科技有限公司;

    申请/专利号CN201610648520.2

  • 发明设计人 崔营;周庆伟;

    申请日2016-08-10

  • 分类号G06F3/06;G06F11/10;G11C29/42;G06F9/24;

  • 代理机构成都众恒智合专利代理事务所(普通合伙);

  • 代理人刘华平

  • 地址 518000 广东省深圳市前海深港合作区前湾一路鲤鱼门街1号前海深港合作区管理局综合办公楼A201室(入驻深圳市前海商务秘书有限公司)

  • 入库时间 2023-06-19 01:14:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-19

    未缴年费专利权终止 IPC(主分类):G06F 3/06 专利号:ZL2016106485202 申请日:20160810 授权公告日:20190906

    专利权的终止

  • 2019-09-06

    授权

    授权

  • 2017-02-01

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20160810

    实质审查的生效

  • 2017-01-04

    公开

    公开

说明书

技术领域

本发明涉及智能设备技术领域,具体地讲,是涉及一种基于flash写保护的防止SD使用过程中flash被意外篡改的方法。

背景技术

目前很多公司都纷纷尝试智能设备(SD,Smart Device)领域,SD设备功能越来越多,硬件集成度越来越高。但是因为一些成本控制或者设计方案不那么完善,以及一些难以避免的原因(如突然停电)导致了SD使用过程中flash(闪存)上固件被意外篡改,SD设备无法正常工作。

SD在使用过程中,由于硬件设备老化、正常使用突然断电等原因,导致了flash中存放的固件被意外篡改,使SD无法正常使用。图1所示,是常规的flash布局,具体的SD设备制造厂商可能略有不同。第一个分区一定是Bootloader分区,对系统进行引导,同时系统镜像分区也一定会有,实现设备主要的功能。其他区域按照各设备的需求而定。

由于某些特殊原因(如突然断电),flash中的镜像文件被篡改,导致SD无法正常启动。遇到这种情况用户只能选择退换货或者自认倒霉。Flash被意外篡改的情况导致退换货在SD设备制造公司非常普遍。如果能够有效减少flash被意外篡改的发生,可以有效的减少公司的损失。从源头上来减少flash被意外篡改,各大flash厂商正在努力的去改正,但是却无法避免。

发明内容

针对上述现有技术的不足,本发明提供一种基于flash写保护的防止SD使用过程中flash被意外篡改的方法。

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

一种基于flash写保护的防止SD使用过程中flash被意外篡改的方法,所述flash内包括bootloader分区、参数区和系统内核根文件分区,其中,对所述bootloader分区进行flash写保护;

(S1)当所述SD设备启动时,将flash写保护指令集和flash去保护指令集全部载入SD设备的内存中保存;

(S2)检测bootloader分区是否需要升级,若需要,则进行下一步,否则保持所述bootloader分区处于写保护状态;

(S3)从外部载入待升级的bootloader内容,同时在该过程中当flash与内存之间的串行接口空闲时,从内存中向该bootloader分区一次性写入所述flash去保护指令集,对该bootloader分区进行去保护操作;

(S4)对bootloader分区内数据进行擦写操作,升级bootloader内容;

(S5)从flash中读取升级后的bootloader内容进行校验,并与升级前的bootloader的校验值进行对比,判断是否升级成功,若是,则进行下一步,否则跳转至步骤(S4);

(S6)从内存中一次性写入flash写保护指令集,对所述bootloader分区进行flash写保护操作。

进一步地,所述flash中还设有一校验区,用于保存升级前的bootloader内容的校验值。

作为一种优选,所述校验值为ECC校验值。

作为一种优选,所述检验值为MD5码。

与现有技术相比,本发明具有以下有益效果:

(1)本发明巧妙利用flash写保护保证了SD设备中bootloader分区不被意外篡改,也不会被破坏,从而使得SD设备在使用时能够至少启动bootloader,即便其他分区部分出现被篡改的情况,也能够通过应急通道进行升级,恢复SD设备的功能,避免了现有技术中因flash出现意外而导致整个SD设备报废的情况,可有效减少SD设备制造公司的损失,同时本发明中在进行写保护和去保护操作时,均先将相关的指令集载入内存再在SPI空闲时一次性写入flash,实现了纳秒级操作,相比现有技术中多条指令分别下达flash的毫秒级操作有极大的提升,在有效提升操作效率的同时更是避免了毫秒级操作更容易造成flash损害的问题,并且本发明构思巧妙新颖,易于实现,应用性好,成本低廉,具有广泛的应用前景,适合推广应用。

(2)本发明利用校验区单独保存升级前的bootloader校验值,保证了升级成功的准确度,有效避免错误进行flash写保护的情况发生。

附图说明

图1为现有技术中flash内的分区布局示意图。

图2为本发明的流程示意图。

图3为本发明中的flash分区布局示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。

实施例

如图2至图3所示,该基于flash写保护的防止SD使用过程中flash被意外篡改的方法,所述flash内包括bootloader分区、参数区和系统内核根文件分区,其中,对所述bootloader分区进行flash写保护;

(S1)当所述SD设备启动时,将flash写保护指令集和flash去保护指令集全部载入SD设备的内存中保存;

(S2)检测bootloader分区是否需要升级,若需要,则进行下一步,否则保持所述bootloader分区处于写保护状态;

(S3)从外部载入待升级的bootloader内容,同时在该过程中当flash与内存之间的串行接口空闲时,从内存中向该bootloader分区一次性写入所述flash去保护指令集,对该bootloader分区进行去保护操作;

(S4)对bootloader分区内数据进行擦写操作,升级bootloader内容;

(S5)从flash中读取升级后的bootloader内容进行校验,并与升级前的bootloader的校验值进行对比,判断是否升级成功,若是,则进行下一步,否则跳转至步骤(S4);

(S6)从内存中一次性写入flash写保护指令集,对所述bootloader分区进行flash写保护操作。

其中,所述flash中还设有一校验区,用于保存升级前的bootloader内容的校验值。优选地,所述校验值为ECC校验值或MD5码。

所述flash写保护是指通过设置flash内置的寄存器,保证flash在没有收到特定的指令时,保护特定区域执行擦除或写入操作不会生效。现有的flash写保护基于硬件特点,只能随机保护一个块或者flash头部或尾部的一个区域。针对SD设备内的flash设置情况,我们选择通过flash写保护保护其flash头部区域,即从bootloader分区起的区域,但是由于SD设备flash中参数区在使用过程中需要频繁擦写,因而其进行flash写保护的意义不大,对其进行flash写保护反而会影响参数读写的效率,因此只能对bootloader分区进行flash写保护,其意义在于SD系统启动过程中,设备需要先加载bootloader然后通过bootloader去引导系统,对bootloader分区进行flash写保护后,即使系统镜像文件发送了篡改,SD设备依然可以进入紧急升级状态,从而通过升级系统等手段恢复SD设备的正常功能。

另一方面,本发明在进行flash写保护操作和flash去保护操作中,先将相应的指令集载入SD设备的内存中保存,在flash和内存之间的串行接口SPI空闲时,一次性写入flash内完成相应的写保护或去保护操作,如此达到纳秒级的指令操作;相比现有技术中对flash的指令是一条条下达的毫秒级操作,效率有极大的提升,并且毫秒级的操作在SD设备掉电情况下,更容易造成flash损害。

上述实施例仅为本发明的优选实施例,并非对本发明保护范围的限制,但凡采用本发明的设计原理,以及在此基础上进行非创造性劳动而作出的变化,均应属于本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号