一种嵌入式电子设备软件升级方法及系统的制作方法

文档序号:6499105阅读:178来源:国知局
一种嵌入式电子设备软件升级方法及系统的制作方法
【专利摘要】一种嵌入式电子设备软件升级方法,该方法包括:在终端设备的系统下创建不同的文件目录用于下载对应不同操作的文件,所述文件目录包括以下一种或几种:ADD、MOD、DEL和SKIP;从服务器端下载升级固件的升级文件信息表,比较所述升级文件信息表与所述终端设备存储的旧文件信息表中的文件名和校验值,由此来确定执行增加、修订、删除和跳过的任一种操作;对执行增加或修订的操作,以偏移值和文件长度作为参数,向所述服务器发出获取对应文件数据的请求,所述终端设备接收到所述文件数据后对其进行解密处理还原为压缩包文件保存到所述ADD/MOD目录中;启动升级过程,对所述ADD目录中的文件根据所述压缩包中记录的文件路径直接解压到对应的目录;对所述MOD目录中的文件先删除旧文件再解压覆盖。本发明软件升级方法使终端设备的软件升级更加的快速安全,最大限度的减小因设备升级给用户带来的不良影响,同时降低终端设备维护的复杂度和维护成本。
【专利说明】一种嵌入式电子设备软件升级方法及系统
【技术领域】
[0001]本发明属于通讯【技术领域】,尤其涉及嵌入式通讯设备的软件升级方法。
【背景技术】
[0002]随着多媒体智能设备的普及,为了满足用户对设备提出的新需求和修复软件已知的问题及添加新的功能模块,通常需要对设备进行软件升级。在嵌入式电子设备中,尤其是多媒体智能设备等常用升级方法主要是通过SD卡或USB数据线将升级文件拷贝到设备中,擦除FLASH等存储介质中的旧数据,再通过升级程序将新文件解压安装到FLASH中完成升级,或通过OTA (空中升级)以升级补丁的形式完成。
[0003]但是以上方法存在如下的局限性:(I)操作复杂,需要人手动去升级,易因操作失误而出现升级失败;(2)需要逐一去升级设备,不利于大规模的软件部署,增加维护的成本和复杂性;(3)升级时间长。随着软件功能的增加,固件体积不断的增大,导致固件的传输解压时间大大增加。(4)若通过OTA补丁形式升级,当新旧版本的版本号跨度较大时需要通过多次打补丁来升级到最新版本,增加了设备维护的复杂性。

【发明内容】

[0004]本发明的目的在于提供一种嵌入式电子设备软件升级方法,用以解决操作复杂、升级时间长和无法大规模部署的问题。
[0005]为了实现上述发明目的,本发明的技术方案如下:
一种嵌入式电子设备软件升级方法,该方法包括:
在终端设备的系统下创建不同的文件目录用于下载对应不同操作的文件,所述文件目录包括以下一种或几种:ADD、M0D、DEL和SKIP ;
从服务器端下载升级固件的升级文件信息表,比较所述升级文件信息表与所述终端设备存储的旧文件信息表中的文件名和校验值,由此来确定执行增加、修订、删除和跳过的任一种操作;
对执行增加或修订的操作,以偏移值和文件长度作为参数,向所述服务器发出获取对应文件数据的请求,所述终端设备接收到所述文件数据后对其进行解密处理还原为压缩包文件并保存到所述add/mod目录中;
启动升级过程,对所述ADD目录中的文件根据所述压缩包中记录的文件路径直接解压到对应的目录;对所述MOD目录中的文件先删除旧文件再解压覆盖;扫描所述终端设备文件系统中的所有本地旧文件,计算文件名MD5值建立文件路径和文件名MD5值二者的对应关系表Record,逐一对比所述DEL目录下的文件名和Record中的文件名MD5值,若相同则从所述Record文件中读取所述文件的路径并根据路径删除所述文件。
[0006]此外,本发明还提供一种嵌入式电子设备软件升级系统,该系统包括:升级固件制作装置、服务器,以及设有存储模块和升级装置的终端设备,所述服务器与所述各个终端设备通讯连接,其内置有所述升级固件制作装置完成的升级固件以供所述终端设备进行软件版本的升级,所述升级固件制作装置包括:计算器、压缩加密模块和文件打包模块,其中:
计算器,负责对文件压缩包进行文件长度、偏移地址计算,以及对文件压缩包的MD5值和文件名MD5值进行运算;
压缩加密模块,用于对单个目标文件进行压缩和加密处理;
文件打包模块,用于组织生成所述升级文件信息表、制作所述升级固件头文件、制作文件包。
[0007]终端设备的升级装置进一步包括:文件下载模块、比较模块、文件解析模块和升级执行模块,其中,文件下载模块,用于从所述服务器端获取所述升级固件头文件、升级文件信息表、文件包,并创建设置至少一个上的用于执行不同操作的文件子目录:ADD、MOD、DEL和SKIP ;比较模块,用于比较所述终端设备的旧文件信息表中是否有与所述文件名MD5值相同的表项,比较所述压缩包的MD5值是否相同;文件解析模块,用于解析所述升级文件信息表中数据,得到所述文件名MD5值、文件长度、文件偏移地址、文件MD5值。
[0008]采用本发明提供的技术方案可以大大的缩短终端设备的升级时间,从而减小因设备升级而对用户造成的影响。同时对于设备管理员来说,无需逐一去升级设备,只需将新的升级固件上传到服务器中,所有的终端设备都会去自动的升级,对于含任意旧版本软件的终端设备而言都可通过同一固件使其升级到最新,无需进行阶梯式升级,从而降低维护的复杂度以及减小维护成本。
【专利附图】

【附图说明】
[0009]图1为本发明具体实施例中终端设备软件升级系统的示意图;
图2为本发明具体实施例中终端设备软件升级方法流程图;
图3为本发明具体实施例中制作升级固件的方法流程图;
图4为本发明具体实施例中终端设备解析升级固件并分类下载流程图;
图5为本发明具体实施例中终端设备进行升级操作的流程图。
【具体实施方式】
[0010]本发明的基本原理是在升级固件中记录每个文件名、校验值、偏移值和文件长度等信息并按指定的格式写入到升级文件信息表IDT中。在终端设备确定需要升级时根据比较升级固件和终端设备中的旧文件信息表LIDT (Local IDT)中的文件名和校验值来确定不同文件需要执行不同升级操作方式,比如增加、修订、删除、跳过等。该方法对于包含任意旧版本软件的终端设备而言都可通过同一固件使其升级到最新版本。
[0011]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0012]图1为本发明具体实施例中终端设备软件升级系统的示意图,由图可知所述升级系统包括:升级固件制作装置100、服务器200,以及终端设备300。
[0013]为了实现本发明针对不同的文件执行不同升级操作来达到快速升级的目的,在进行软件升级前必须制作特定的升级固件用于终端设备对升级文件进行比较、分类。该升级固件制作过程通常都是由软件提供商的升级固件制作装置100来完成的。制作所述的升级固件的基本原理是:在升级固件中记录每个文件名、校验值、偏移值和文件长度等信息按指定的格式写入到升级文件信息表IDT中。在终端设备确定需要升级时根据比较上述IDT和终端设备存储的旧文件信息表LIDT中的文件名和校验值来确定不同文件需要执行不同升级操作方式,比如增加、修订、删除等。在升级固件制作装置100中设有计算器110、压缩加密模块120,以及文件打包模块130。
[0014]其中,计算器110,负责对每个目标文件名和其压缩后的文件进行MD5数值计算,以及对压缩包文件大小的计算、压缩包偏移地址的计算。以下以文件info, txt为例进行说明,计算器 110 计算文件 info, txt 的文件名 MD5 值:al425019al8343a4b03cfb8c9e72d245;计算文件info, txt压缩生成的info, zip压缩包的文件MD5值:08a4a0cf5af90fbb286cc8067f3057a4。同时计算出info, zip压缩包的文件长度为181065,打包进入文件包system,img中的偏移地址为6243994。
[0015]压缩加密模块120,用于对单个目标文件进行压缩和加密处理,如将上述文件info, txt压缩生成info, zip压缩包,压缩包中同时包含文件的路径,此外还对上述压缩包进行加密处理。
[0016]文件打包模块130,用于将上述处理得到的info, txt的文件名MD5值、info, zip文件MD5值、文件长度、文件偏移地址等按格式组织生成一个IDT表项写入升级文件信息表IDT中;将压缩包info, zip进行加密处理并打包进文件包system, img中;将预先设置的版本信息:V1.2.0、设备信息:Vendor:Grandstream Type:1P phone Modle: 0xl7> IDT 文件大小和system, img的大小等信息按格式写入到头文件HEAD中,最后将HEAD、IDT、system, img一起打包成升级固件firmware, bin,并由升级固件制作装置100上传给服务器200。当终端设备300有需要进行升级时与服务器200进行通讯联络下载上述升级固件。
[0017]终端设备300包括存储模块310和升级装置320,升级装置320进一步包括:文件下载模块321、比较模块322、文件解析模块323和升级执行模块324。
[0018]文件下载模块321,用于从服务器端获取升级固件头文件HEAD、IDT文件中的各表项、需要执行增加或修订操作的文件包中的文件如info, zip等。此外还在在终端设备的系统中的update_system目录下创建三个子目录ADD、MOD、DEL。
[0019]比较模块322,用于比较终端设备中存储的旧文件信息表LIDT中是否存在从终端设备获取的IDT信息,如与文件info, txt的文件名MD5值相同的IDT表项,即对文件名MD5值、文件MD5值进行比较。
[0020]文件解析模块323,用于对文件下载模块321下载的头文件HEAD进行解析,获取文件版本信息和设备信息,以判断是否是该型号终端设备的升级固件、是否是新的版本;同时通过对HEAD的解析获取IDT文件的偏移值和文件长度。当文件下载模块321下载得到IDT文件后,该文件解析模块323用于解析得到IDT文件中的各IDT表项信息中的文件名MD5值、文件长度、文件偏移地址、文件MD5值等;以及用于对下载的文件进行解密处理,将数据块还原为压缩包文件info, zip。
[0021]升级执行模块324,对不同目录ADD、MOD、DEL中的文件执行不同的升级操作。首先,程序扫描终端设备文件系统中除update_system目录下的文件外的所有本地旧文件,计算文件名MD5值后建立文件路径和文件名MD5值二者的对应关系表Record。逐一对比DEL目录下的文件名和Record中的文件名MD5值,若相同则从Record文件中读取该文件的路径并根据路径删除上述文件,直到DEL中的所有文件删除完毕。对于ADD目录中的文件,解压程序根据各文件压缩包中记录的文件路径直接解压到对应的目录。对MOD目录中的文件先删除旧文件再解压覆盖,即DEL和ADD操作的结合。待所有文件处理结束后,删除旧的LIDT,并将IDT保存为新的LIDT。
[0022]存储模块310,用于存放终端设备系统的旧文件、旧文件信息表LIDT(Local IDT),以及下载得到的压缩文件包info, zip和解压后的文件包info, txt等数据。
[0023]图2为本发明具体实施例中终端设备软件升级方法流程图,如图所示本发明升级方法主要包括如下操作步骤:
步骤S201:制作升级固件:扫描目标文件夹,计算并记录每个文件的文件名MD5值、文件MD5值,再将文件压缩加密打包后添加到文件包中并记录该文件在包中的偏移值和文件长度,将记录的每个文件的文件名MD5值、文件MD5值、偏移值和文件长度等信息按指定的格式写入到升级文件信息表1DT中,最后待完成所有文件的打包后,生成固件头信息,再将生成的IDT、文件包和头信息一起制作成升级固件上传到服务器上。
[0024]步骤S202:终端设备向存放升级固件的服务器发出获取升级固件头信息请求。
[0025]步骤S203:解析获取到的升级固件头信息,判 断是否符合升级要求,若确定为合适的版本,则终端设备向服务器发出获取IDT的请求。
[0026]步骤S204:文件名MD5值及文件MD5值的比较,用于比较终端设备上存储的旧文件信息表LIDT中是否存在从终端设备获取的IDT信息,如与文件info, txt的文件名MD5值相同的IDT表项,即对文件名MD5值、文件MD5值进行比较,根据比较结果确定所需执行的操作种类并创建不同目录:ADD、MOD和DEL。
[0027]步骤S205:根据上述步骤S204中文件名MD5值和文件MD5值的比较结果下载整理各目录文件:从IDT中获取其偏移值和文件长度,作为参数向服务器发起获取文件请求并将下载的文件保存在ADD/M0D目录中J^DEL目录中的文件,计算并记录其文件名MD5值和对应的文件路径;对执行SKIP的文件不做任何操作。
[0028]步骤S206:启动升级执行模块,升级程序添加或者更新ADD/M0D目录中的文件并删除DEL目录文件,保存新的IDT目录文件到终端设备中,完成系统升级。
[0029]图3为本发明具体实施例中制作升级固件的方法流程图。为了能够采用本发明软件升级方法,对所需要升级的文件必须制作特定的升级固件。制作升级固件的基本原理是:在升级固件中记录每个文件名MD5值、文件MD5值、偏移值和文件长度等信息按指定的格式写入到升级文件信息表1DT中。在终端设备确定需要升级时根据比较上述IDT和终端设备存储的文件信息表LIDT中的文件名MD5值和文件MD5值来确定不同文件需要执行不同升级操作方式,比如增加、修订、删除等。以下以文件info, txt为例进行说明,具体的制作方法如下:
步骤S301:对单个目标文件info, txt进行MD5计算。
[0030]打包程序扫描目标文件夹读取文件info, txt,首先通过MD5计算程序计算出文件名字符串 “info, txt” 的 MD5 值:al425019al8343a4b03cfb8c9e72d245。
[0031]步骤S302:将文件info, txt压缩生成info, zip后再进行MD5计算,得到文件MD5值。
[0032]将文件info, txt通过ZIP压缩生成info, zip压缩包,压缩包中包含文件的路径,同时计算出压缩包info, zip的MD5值为08a4a0cf5af90fbb286cc8067f3057a4和大小为181065。
[0033]步骤S303:将压缩包info, zip加密处理及计算偏移地址。
[0034]将压缩包info, zip进行加密处理并打包进文件包system, img中,同时计算出其在system, img中的偏移地址为6243994并加以保存。
[0035]步骤S304:组织生成IDT表项并写入升级文件信息表IDT文件中。
[0036]将上述步骤得到的文件名MD5值、文件长度、文件偏移地址、文件MD5值等按格式组织生成一个IDT表项写入到IDT文件中,其中每个表项的大小相同。重复步骤S301?S304的操作直至所有文件都打包进文件包system, img中。
[0037]步骤S305:制作升级固件头文件HEAD,并将HEAD、IDT、system, img 一起打包生成升级固件。
[0038]最后打包程序将预先设置的版本信息:V1.2.0、设备信息:Vendor:GrandstreamType:1P phone Modle:0x17、IDT文件大小和system, img的大小等信息按格式写入到头文件HEAD中,最后将HEAD、IDT、system, img 一起打包成升级固件firmware, bin。
[0039]图4为本发明具体实施例中终端设备解析升级固件并分类下载流程图,由图可知,终端设备对升级固件的解析下载主要包括以下操作步骤:
步骤S401:通过远程控制工具设置或直接在终端设备中设置升级服务器的地址。
[0040]步骤S402:终端设备定时或每次启动时运行文件下载模块去检测服务器中是否有固件,若有则下载升级固件的头文件HEAD,解析并从中获得终端设备信息和版本信息,进一步判断是否是该型号终端设备的升级固件、是否是新的版本,若是则在系统中的update_system目录下创建三个子目录ADD、MOD、DEL,并进入步骤403,否则结束升级。
[0041]步骤S403:根据头文件HEAD中文件信息表IDT的偏移值和文件长度,从服务器中下载升级固件的文件信息表IDT。
[0042]步骤S404:解析IDT文件从中获取文件inf 0.txt的IDT表项信息,检索并比较保存在终端设备中的旧文件信息表LIDT中是否有和文件info, txt的文件名MD5值相同的IDT表项,上述MD5值为al425019al8343a4b03cfb8c9e72d245,若无则对info, txt执行ADD增加操作,若有则进一步对比压缩包inf0.zip的MD5值,即是否与08a4a0cf5af90fbb286cc8067f3057a4相同,若不相同则执行MOD修订操作,否则文件info,txt无需升级跳过处理下一个IDT表项。
[0043]步骤S405:对于执行ADD/M0D操作的文件如info, txt,以其偏移值为6243994和文件长度为181065作为参数,文件下载模块通过tftp/http/https等网络协议向服务器发出获取文件请求。
[0044]步骤S406:服务器接收到终端设备的请求后根据上述偏移值和文件长度,如info, txt,从升级固件起始偏移为6243994处读取大小为181065的数据并发送给终端设备。
[0045]步骤S407:终端设备中的文件下载模块接收到数据后将数据传给文件解析模块,文件解析模块对数据进行解密处理将数据块还原为压缩包文件info, zip,并将文件保存到ADD/M0D目录中,同时删除IDT和LIDT中对应的IDT表项。
[0046]重复步骤S403?S407,直到IDT中所有的IDT表项都处理完毕后进入步骤S408。[0047]步骤S408:将旧文件信息表LIDT中剩余表项的分别以其文件名MD5值为名在DEL目录下创建空文件。
[0048]图5为本发明具体实施例中终端设备进行升级操作的流程图。终端设备启动升级执行模块,进入升级模式,对上述生成的不同目录ADD、MOD、DEL的文件执行不同的升级操作,如图5所示,该升级操作方法具体包括:
步骤S501:首先对DEL目录中的文件进行处理,程序扫描终端设备文件系统中除update_system目录下的文件外的所有本地旧文件,并计算文件名MD5值建立文件路径和文件名MD5值二者的对应关系表Record。逐一对比DEL目录下的文件名和Record中的文件名MD5值,若相同从Record文件中读取该文件的路径并根据路径删除文件,直到DEL目录中的所有文件删除完毕。
[0049]步骤S502:对于ADD目录中的文件,解压程序根据压缩包中记录的文件路径直接解压到对应的目录。
[0050]步骤S503:对于MOD目录中的文件,先删除旧文件再解压覆盖,即DEL和ADD操作的结合。
[0051]步骤S504:待所有文件处理结束后,删除旧的LIDT,并将IDT保存为新的LIDT。
[0052]步骤S505:重启终端设备进入新系统。
[0053]此外,为了对终端设备进行软件升级的大规模部署,还需要进行以下操作:终端设备控制客户端通过DHCP option 66向终端设备发送升级服务器地址(server name)并发送升级命令;所有终端设备接收到升级命令和服务器地址后,重载旧的服务器地址并启动升级程序,接着升级程序根据图3至图5中描述的步骤完成终端设备的升级。
[0054]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种嵌入式电子设备软件升级方法,其特征在于,所述方法包括: 在终端设备的系统下创建不同的文件目录用于下载对应不同操作的文件,所述文件目录包括以下一种或几种:ADD、MOD、DEL和SKIP ; 从服务器端下载升级固件的升级文件信息表,比较所述升级文件信息表与所述终端设备存储的旧文件信息表中的文件名和校验值,由此来确定执行增加、修订、删除和跳过的任一种操作; 对执行增加或修订的操作,以偏移值和文件长度作为参数,向所述服务器发出获取对应文件数据的请求,所述终端设备接收到所述文件数据后对其进行解密处理还原为压缩包文件并保存到所述add/mod目录中; 启动升级过程,对所述ADD目录中的文件根据所述压缩包中记录的文件路径直接解压到对应的目录,对所述MOD目录中的文件先删除旧文件再解压覆盖。
2.根据权利要求1所述的升级方法,其特征在于,所述升级方法还包括:制作所述升级固件,包括:组织生成所述升级文件信息表、制作升级固件头文件、制作文件包,其中所述升级文件信息表包括文件和文件名的消息摘要算法数值、文件偏移地址、文件长度;所述制作文件包是对文件压缩包进行加密处理并打包生成所述文件包。
3.根据权利要求2所述的升级方法,其特征在于,所述文件和文件名的消息摘要算法数值是指所述文件压缩包的MD5值和文件名MD5值。
4.根据权利要求3所述的升级方法,其特征在于,所述升级固件头文件包括:版本信息、设备信息、升级文件信息表的大小、文件包的大小。
5.根据权利要求4所述的升级方法,其特征在于,所述方法还包括: 当所述旧文件信息表中没有与所述文件名MD5值相同的表项,则对所述表项对应的文件执行增加操作,否则进一步比较压缩包的MD5值,如果不相同就执行修订操作。
6.根据权利要求2或5所述的升级方法,其特征在于,所述启动升级过程还包括:扫描所述终端设备文件系统中的所有本地旧文件,计算文件名MD5值建立文件路径和文件名MD5值二者的对应关系表Record,逐一对比所述DEL目录下的文件名和Record中的文件名MD5值,若相同从所述Record文件中读取所述文件的路径并根据路径删除所述文件。
7.一种嵌入式电子设备软件升级系统,包括:升级固件制作装置、服务器,以及设有存储模块和升级装置的终端设备,所述服务器与所述各个终端设备通讯连接,并接收所述升级固件制作装置完成的升级固件以供所述终端设备进行软件版本的升级,其特征在于,所述升级固件制作装置包括:计算器、压缩加密模块和文件打包模块,其中, 所述计算器,负责对文件压缩包进行文件长度、偏移地址计算,以及对文件和文件名的消息摘要算法数值进行运算; 所述压缩加密模块,用于对单个目标文件进行压缩和加密处理; 所述文件打包模块,用于组织生成所述升级文件信息表、制作所述升级固件头文件、制作文件包。
8.如权利要求7所述的升级系统,其特征在于,所述文件和文件名的消息摘要算法数值是指所述文件压缩包的MD5值和文件名MD5值。
9.如权利要求8所述的升级系统,其特征在于,所述终端设备的升级装置进一步包括:文件下载模块、比较模块、文件解析模块和升级执行模块,其中,所述文件下载模块,用于从所述服务器端获取所述升级固件头文件、所述升级文件信息表、所述文件包,并创建设置至少一个上的用于执行不同操作的文件子目录:ADD、MOD、DEL 和 SKIP ; 所述比较模块,用于比较所述终端设备的旧文件信息表中是否有与所述文件名MD5值相同的表项,比较所述压缩包的MD5值是否相同; 所述文件解析模块,用于解析所述升级文件信息表中数据,得到所述文件名MD5值、文件长度、文件偏移地址、文件MD5值; 所述升级执行模块,负责对子目录:ADD、MOD、DEL和SKIP中的文件执行不同的升级操作,对ADD目录中的文件解压程序根据压缩包中记录的文件路径直接解压到对应的目录;对MOD目录中的文件先删除旧文件再解压覆盖。
10.如权利要求9所述的升级系统,其特征在于,所述升级执行模块还用于扫描所述终端设备文件系统中的所有本地旧文件,计算文件名MD5值建立文件路径和文件名MD5值二者的对应关系表Record, 逐一对比所述DEL目录下的文件名和Record中的文件名MD5值,若相同从所述Record文件中读取所述文件的路径并根据路径删除所述文件。
【文档编号】G06F9/445GK103942058SQ201310017187
【公开日】2014年7月23日 申请日期:2013年1月17日 优先权日:2013年1月17日
【发明者】丁奇松, 张炎高, 陈发南, 李建文, 徐晓峰, 李夏宾 申请人:深圳市潮流网络技术有限公司, 潮流网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1