一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

嵌入式软件的加密式差分升级方法、装置、设备及介质与流程

2022-03-31 06:40:50 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种嵌入式软件的加密式差分升级方法、装置、设备及介质。


背景技术:

2.嵌入式软件指的是运行在嵌入式设备上的系统软件,通常由实时操作系统(real time operating system,rtos),驱动软件,协议和相应应用组成。嵌入式软件在实际应用过程中会不断的进行升级,从而对软件中的漏洞(英文:bug)进行修复,完善并加强软件的功能,为用户提供更好的服务。
3.目前,随着嵌入式软件的安全要求不断提高,嵌入式软件通常采用加密式差分升级的方式进行升级。具体的,嵌入式设备下载用于差分升级的加密的差分升级包至内存空间(英文:flash)中,在系统启动(英文:bootloader)区验证该加密的差分升级包完整后,flash中的差分工作区根据该加密的差分升级包以及现有版本的嵌入式软件,对现有版本的嵌入式软件进行升级。
4.然而,现有技术在加密式差分升级过程中发生升级中断时,会破坏加密的差分升级包的完整性,导致嵌入式软件升级失败,无法保证嵌入式软件的顺利升级。


技术实现要素:

5.为了解决现有技术中的上述问题,即为了解决现有技术中在加密式差分升级过程中发生升级中断时,会破坏加密的差分升级包的完整性,导致嵌入式软件升级失败,无法保证嵌入式软件的顺利升级的问题,本技术实施例提供了一种嵌入式软件的加密式差分升级方法、装置、设备及介质。
6.第一方面,本技术实施例提供一种嵌入式软件的加密式差分升级方法,应用于嵌入式设备,所述方法包括:
7.接收服务器发送的加密的差分升级数据,并烧录至存储分区的第二空间,所述加密的差分升级数据包括差分升级包和独立编译的固件空中升级fota应用程序,所述fota应用程序用于根据所述差分升级包对所述嵌入式软件进行加密式差分升级,所述存储分区包括第一空间和所述第二空间;
8.通过所述fota应用程序根据所述差分升级包对所述嵌入式软件进行加密式差分升级。
9.在上述嵌入式软件的加密式差分升级方法的优选技术方案中,在通过所述fota应用程序根据所述差分升级包对所述嵌入式软件进行加密式差分升级发生中断时,所述方法还包括:
10.通过所述fota应用程序获取所述加密式差分升级发生中断的中断位置;
11.通过所述fota应用程序,根据所述中断位置和所述差分升级包,对所述嵌入式软件继续进行加密式差分升级。
12.在上述嵌入式软件的加密式差分升级方法的优选技术方案中,所述存储分区的第二空间还包括系统判断位,所述系统判断位包括预设第一字节,所述接收服务器发送的加密的差分升级数据,并烧录至存储分区的第二空间之后,所述方法还包括:
13.将所述预设第一字节进行置位。
14.可选的,所述系统判断位还包括预设第二字节,所述通过所述fota应用程序根据所述差分升级包对所述嵌入式软件进行加密式差分升级,包括:
15.通过所述fota应用程序获取所述预设第一字节的状态,所述状态包括置位和未置位;
16.在所述第一字节的状态为置位时,且所述预设第二字节的状态为未置位时,通过所述fota应用程序根据所述差分升级包对所述嵌入式软件进行加密式差分升级;
17.在所述嵌入式软件升级成功后,将所述预设第二字节进行置位。
18.可选的,所述接收服务器发送的加密的差分升级数据之前,所述方法还包括:
19.接收所述服务器发送的加密的全量升级数据,所述加密的全量升级数据包括全量升级包和差分处理程序,所述差分处理程序用于向所述服务器发送加密式差分升级的升级结果;
20.将所述加密的全量升级数据烧录至所述存储分区的待烧录分区,以使将所述嵌入式软件的升级方式由当前的加密式全量升级切换至所述加密式差分升级,所述存储分区包括当前版本分区和所述待烧录分区。
21.可选的,所述系统判断位还包括预设第三字节,在对所述预设第二字节进行置位后,所述方法还包括:
22.通过所述差分处理程序,获取所述预设第三字节的状态;
23.在所述预设第三字节的状态为置位时,通过所述差分处理程序向所述服务器发送升级结果,所述升级结果为升级成功。
24.可选的,所述方法还包括:
25.在所述待烧录分区位于所述存储分区的第二空间,所述当前版本分区位于所述存储分区的第一空间时,在所述加密的全量升级数据下载完成后,通过所述差分处理程序将所述加密的全量升级数据从所述第二空间移动至所述第一空间,对所述第一空间的数据进行覆盖,并删除所述第二空间中的数据。
26.第二方面,本技术实施例提供一种嵌入式软件的加密式差分升级方法,用于服务器,所述方法包括:
27.获取嵌入式设备中待升级的嵌入式软件的当前版本;
28.根据所述嵌入式软件的当前版本和存储在所述服务器中的所述嵌入式软件的第一版本,生成差分升级包,所述第一版本高于所述当前版本;
29.对固件空中升级fota应用程序进行独立编译,并将所述差分升级包与所述fota应用程序进行拼接和加密,生成加密的差分升级数据,所述fota应用程序用于根据所述差分升级包对所述嵌入式软件进行加密式差分升级;
30.将所述加密的差分升级数据发送至所述嵌入式设备。
31.在上述嵌入式软件的加密式差分升级方法的优选技术方案中,
32.在上述嵌入式软件的加密式差分升级方法的优选技术方案中,所述获取嵌入式设
备中待升级的嵌入式软件的当前版本之前,所述方法还包括:
33.获取所述嵌入式设备中所述待升级的嵌入式软件的当前版本;
34.根据所述嵌入式软件的当前版本和存储在所述服务器中的所述嵌入式软件的第二版本,生成全量升级包,所述第二版本高于所述当前版本,且,所述第二版本低于所述第一版本;
35.对所述全量升级包和差分处理程序进行加密处理,生成加密的全量升级数据,并将所述加密的全量升级数据发送至所述嵌入式设备,所述差分处理程序用于获取升级结果。
36.可选的,所述方法还包括:
37.接收所述嵌入式软件发送的升级结果,所述升级结果为升级成功。
38.第三方面,本技术实施例提供一种嵌入式软件的加密式差分升级装置,应用于嵌入式设备,该装置包括:
39.烧录模块,用于接收服务器发送的加密的差分升级数据,并烧录至存储分区的第二空间,所述加密的差分升级数据包括差分升级包和独立编译的固件空中升级fota应用程序,所述fota应用程序用于根据所述差分升级包对所述嵌入式软件进行加密式差分升级,所述存储分区包括第一空间和所述第二空间;
40.处理模块,用于通过所述fota应用程序根据所述差分升级包对所述嵌入式软件进行加密式差分升级,在发生升级中断时,通过所述fota应用程序获取所述加密式差分升级发生中断的中断位置;
41.所述处理模块,用于通过所述fota应用程序,根据所述中断位置和所述差分升级包,对所述嵌入式软件继续进行加密式差分升级。
42.在上述嵌入式软件的加密式差分升级装置的优选技术方案中,在通过所述fota应用程序根据所述差分升级包对所述嵌入式软件进行加密式差分升级发生中断时,所述处理模块,还用于:
43.通过所述fota应用程序获取所述加密式差分升级发生中断的中断位置;
44.通过所述fota应用程序,根据所述中断位置和所述差分升级包,对所述嵌入式软件继续进行加密式差分升级。
45.在上述嵌入式软件的加密式差分升级装置的优选技术方案中,所述存储分区的第二空间还包括系统判断位,所述系统判断位包括预设第一字节,所述接收服务器发送的加密的差分升级数据,并烧录至存储分区的第二空间之后,所述处理模块,还用于:
46.将所述预设第一字节进行置位。
47.可选的,所述处理模块,具体用于:
48.通过所述fota应用程序获取所述预设第一字节的状态,所述状态包括置位和未置位;
49.在所述第一字节的状态为置位时,且所述预设第二字节的状态为未置位时,通过所述fota应用程序根据所述差分升级包对所述嵌入式软件进行加密式差分升级;
50.在所述嵌入式软件升级成功后,将所述预设第二字节进行置位。
51.可选的,所述接收服务器发送的加密的差分升级数据之前,所述装置还包括:
52.接收装置,用于接收所述服务器发送的加密的全量升级数据,所述加密的全量升
级数据包括全量升级包和差分处理程序,所述差分处理程序用于向所述服务器发送加密式差分升级的升级结果;
53.所述烧录模块,还用于将所述加密的全量升级数据烧录至所述存储分区的待烧录分区,以使将所述嵌入式软件的升级方式由当前的加密式全量升级切换至所述加密式差分升级,所述存储分区包括当前版本分区和所述待烧录分区。
54.可选的,所述系统判断位还包括预设第三字节,在对所述预设第二字节进行置位后,所述处理模块,还用于:
55.通过所述差分处理程序,获取所述预设第三字节的状态;
56.在所述预设第三字节的状态为置位时,通过所述差分处理程序向所述服务器发送升级结果,所述升级结果为升级成功。
57.可选的,所述处理模块,还用于:
58.在所述待烧录分区位于所述存储分区的第二空间,所述当前版本分区位于所述存储分区的第一空间时,在所述加密的全量升级数据下载完成后,通过所述差分处理程序将所述加密的全量升级数据从所述第二空间移动至所述第一空间,对所述第一空间的数据进行覆盖,并删除所述第二空间中的数据。
59.第四方面,本技术实施例提供一种嵌入式软件的加密式差分升级装置,应用于服务器,所述装置包括:
60.获取模块,用于获取嵌入式设备中待升级的嵌入式软件的当前版本;
61.处理模块,用于根据所述嵌入式软件的当前版本和存储在所述服务器中的所述嵌入式软件的第一版本,生成差分升级包,所述第一版本高于所述当前版本;
62.所述处理模块,还用于对固件空中升级fota应用程序进行独立编译,并将所述差分升级包与所述fota应用程序进行拼接和加密,生成加密的差分升级数据,所述fota应用程序用于根据所述差分升级包对所述嵌入式软件进行加密式差分升级;
63.发送模块,用于将所述加密的差分升级数据发送至所述嵌入式设备。
64.在上述嵌入式软件的加密式差分升级装置的优选技术方案中,所述获取嵌入式设备中待升级的嵌入式软件的当前版本之前,所述获取模块,还用于获取所述嵌入式设备中所述待升级的嵌入式软件的当前版本;
65.所述处理模块,还用于根据所述嵌入式软件的当前版本和存储在所述服务器中的所述嵌入式软件的第二版本,生成全量升级包,所述第二版本高于所述当前版本,且,所述第二版本低于所述第一版本;
66.所述处理模块,还用于对所述全量升级包和差分处理程序进行加密处理,生成加密的全量升级数据,并将所述加密的全量升级数据发送至所述嵌入式设备,所述差分处理程序用于获取升级结果。
67.可选的,所述装置还包括:
68.接收模块,用于接收所述嵌入式软件发送的升级结果,所述升级结果为升级成功。
69.第五方面,本技术实施例提供一种嵌入式设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序指令,所述处理器执行所述计算机程序指令时用于实现第一方面以及各可能设计提供的方法。
70.第六方面,本技术实施例提供一种服务器,包括:处理器、存储器及存储在所述存
储器上并可在处理器上运行的计算机程序指令,所述处理器执行所述计算机程序指令时用于实现第二方面以及各可能设计提供的方法。
71.第七方面,本技术实施例可提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面、第二方面以及在第一方面和第二方面中各可能设计提供的方法。
72.第八方面,本技术实施例提供一种计算机程序货品,包括计算机程序,所述计算机程序被处理器执行时用于实现第一方面、第二方面以及在第一方面和第二方面中各可能设计提供的方法。
73.本领域技术人员能够理解的是,本技术实施例提供的嵌入式软件的加密式差分升级方法、装置、设备及介质,该方法包括:服务器获取嵌入式设备中待升级的嵌入式软件的当前版本,根据嵌入式软件的当前版本和存储在服务器中的嵌入式软件的第一版本,生成差分升级包,对fota应用程序进行独立编译,并将差分升级包与fota应用程序进行拼接和加密,生成加密的差分升级数据,并发送至嵌入式设备。嵌入式设备接收到加密的差分升级数据后将其烧录至存储分区的第二空间,通过fota应用程序根据差分升级包对嵌入式软件进行加密式差分升级。该技术方案中,服务器通过将fota应用程序进行独立编译,嵌入式设备通过fota应用程序根据差分升级包对嵌入式软件进行加密式差分升级,保证了嵌入式软件的顺利升级。
附图说明
74.下面参照附图来描述本技术的嵌入式软件的加密式差分升级方法、装置、设备及介质,附图为:
75.图1a为现有技术提供的加密式全量升级的存储分区实施例一的结构示意图;
76.图1b为现有技术提供的加密式全量升级的存储分区实施例二的结构示意图;
77.图2为现有技术提供的加密式差分升级的存储分区实施例一的结构示意图;
78.图3为本技术实施例提供的嵌入式软件的加密式差分升级方法实施例一的流程示意图;
79.图4为本技术实施例提供的嵌入式软件的加密式差分升级方法实施例二的流程示意图;
80.图5为本技术实施例提供的存储分区实施例一的结构示意图;
81.图6为本技术实施例提供的存储分区实施例二的结构示意图;
82.图7为本技术实施例提供的系统判断位的结构示意图;
83.图8为本技术实施例提供的嵌入式软件的加密式差分升级装置实施例一的结构示意图;
84.图9为本技术实施例提供的嵌入式软件的加密式差分升级装置实施例二的结构示意图;
85.图10为本技术实施例提供的嵌入式设备的结构示意图;
86.图11为本技术实施例提供的服务器的结构示意图。
具体实施方式
87.首先,本领域技术人员应当理解的是,这些实施方式仅仅用于解释本技术的技术原理,并非旨在限制本技术的保护范围。本领域技术人员可以根据需要对其作出调整,以便适应具体的应用场合。
88.其次,需要说明的是,在本技术实施例的描述中,术语“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或构件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。
89.此外,还需要说明的是,在本技术实施例的描述中,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个构件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本技术实施例中的具体含义。
90.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
91.在介绍本技术的实施例之前,首先对本技术实施例的应用背景进行解释:
92.随着家电智能化程度的逐渐增高,空调,冰箱,洗衣机等嵌入式设备中通常安装有嵌入式软件,以便于用户可以通过嵌入式软件对嵌入式设备进行控制,从而实现硬件初始化,联网上云等功能。嵌入式软件一般可以在存储分区上直接运行,小部分不能在存储分区上直接运行的,可以在系统启动后将嵌入式软件从flash拷贝到随机存取存储器(random access memory,ram)中运行。
93.嵌入式软件在实际应用过程中需要不断的进行升级,从而对软件中的bug进行修复,完善并加强软件的各项功能,为用户提供更好的服务。随着嵌入式软件安全要求的提高,目前部分嵌入式软件采用加密式全量升级或加密式差分升级两种方式,从而防止嵌入式软件在升级途中被恶意攻击者非法篡改的情况。
94.下面将对上述两种方式进行具体展开说明。
95.1),图1a为现有技术提供的加密式全量升级的存储分区实施例一的结构示意图。如图1a所示,该存储分区分为存储分区的第一空间和存储分区的第二空间,其中存储分区的第一空间中存储有加密版本为a的嵌入式软件,存储分区的第二空间为预留升级版本区,用于在需要对嵌入式软件升级时,存放新加密版本的嵌入式软件。其中,存储分区的第一空间和第二空间的大小一致,举例来说,加密版本a的嵌入式软件所在的存储分区的第一空间为900kb,则存储分区的第二空间的大小也为900kb。
96.进一步的,嵌入式设备出厂后,嵌入式软件如果需要升级,嵌入式设备会启动空中下载技术(over-the-air technology,ota)流程,分批下载全量代码,然后将全量代码烧录在预留的存储分区中。图1b为现有技术提供的加密式全量升级的存储分区实施例二的结构示意图。如图1b所示,加密版本b的嵌入式软件是加密版本a的嵌入式软件的升级版本。在烧录完成后,嵌入式设备的系统会重新启动,bootloader区选出最新版本且完整性未被破坏
的嵌入式软件进行启动。如图1b所示,在加密版本b的嵌入式软件完整未被破坏时,系统就会进入加密版本b所在的分区(也就是存储分区的第二空间)启动加密版本b的嵌入式软件。
97.在图1a和在图1b中,针对于加密式全量升级来说,嵌入式设备的系统在出厂的时候会有独立的系统启动区(英文:bootloader区),系统启动区的程序代码通常用于做一些必要的硬件初始化,对新加密版本的嵌入式软件进行解密,校验存储分区上的嵌入式软件是否有效且完整未被破坏,并进一步查阅嵌入式软件的版本信息是否有效,若该嵌入式软件完整且版本信息有效则跳转到新加密版本的嵌入式软件所在的空间,开始正常的系统初始化,进入正常任务循环,运行嵌入式软件的正常业务功能代码。
98.在图1b中,在加密式全量升级过程中,如果发生如断电等意外情况,系统仍然会从完好无损的加密版本a启动,启动后会通过重新或者断点续传的方式继续进行升级,直到将嵌入式软件升级加密版本b。
99.也就是说,嵌入式软件进行加密式全量升级时不需要知道嵌入式软件旧的版本内容,可以直接下载新的加密版本,旧加密版本的嵌入式软件仍然保留在存储分区中,由系统启动代码决定从哪个加密版本启动。
100.然而,由于存储分区中接近一半的空间需要预留下来为烧录新加密版本的嵌入式软件做准备,且随着嵌入式软件中功能的日益复杂,代码尺寸也相应增加,预留一半空间给升级软件的方式已经无法满足软件ota升级的需要。进一步的,在下载新加密版本的嵌入式软件需要的时间较长,容易出现错误,有可能存在升级错误的问题。
101.2),图2为现有技术提供的加密式差分升级的存储分区实施例一的结构示意图。如图2所示,该flash分区分为flash的第一空间和flash的第二空间,其中flash的第一空间中存储有加密版本为a的嵌入式软件,flash的第二空间包括差分升级工作区和差分升级包区。其中,由于差分升级包的大小通常为现有版本的嵌入式软件大小的5%,因此差分升级包区的大小仅为flash的第一空间的5%。以flash的第一空间的大小为900kb为例进行说明,则差分升级包区的大小为60kb,差分升级工作区跟嵌入式软件的大小无关,可以为3个flash块,每个flash块的大小为4kb,也就是说差分升级工作区的大小为12kb,只需要预留72kb大小的第二空间就可以将嵌入式软件升级到新版本(也就是加密版本b),对比全量升级需要保留的900kb的第二空间,可用空间得到大幅度提高。
102.然而,现有技术在加密式差分升级过程中发生升级中断时,会破坏加密的差分升级包的完整性,导致嵌入式软件升级失败,无法保证嵌入式软件的顺利升级。
103.针对上述问题,本技术的发明构思如下:目前在加密式差分升级过程发生升级中断时,由于新加密版本的嵌入式软件不完整,无法通过bootloader的校验,会导致嵌入式软件升级失败。基于此,发明人发现,若能使用加密的差分升级数据对嵌入式软件进行加密式差分升级,该差分升级数据包括独立编译的固件空中升级(firmware over-the-air,fota)应用程序,系统启动后会首先启动该fota应用程序,就能解决现有技术中嵌入式软件升级失败的问题。
104.下面,通过具体实施例对本技术的技术方案进行详细说明。
105.需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
106.图3为本技术实施例提供的嵌入式软件的加密式差分升级方法实施例一的流程示
意图。如图3所示,该嵌入式软件的加密式差分升级方法可以包括如下步骤:
107.s31、获取嵌入式设备中待升级的嵌入式软件的当前版本。
108.在一种可实现的方式中,服务器可以接收嵌入式设备发送的加密式差分升级请求,该加密式差分升级请求中携带有该待升级的嵌入式软件的当前版本。
109.在另一种可实现的方式中,服务器向嵌入式设备发送加密的差分升级数据以使嵌入式设备进行升级,在接收到嵌入式设备发送的升级结果为升级成功时,将该加密的差分升级数据的版本确定为嵌入式软件的当前版本。
110.s32、根据嵌入式软件的当前版本和存储在服务器中的嵌入式软件的第一版本,生成差分升级包。
111.其中,第一版本高于当前版本。
112.在一种具体的实现方式中,服务器对嵌入式软件的当前版本和第一版本进行差分计算,得到嵌入式软件的差分升级包。
113.可选的,第一版本可以为存储在服务器中的嵌入式软件的最新版本,也可以是其他高于第一版本的版本,可以根据实际需求进行确定,本技术实施例对此不进行具体限制。
114.s33、对fota应用程序进行独立编译,并将差分升级包与fota应用程序进行拼接和加密,生成加密的差分升级数据。
115.其中,fota应用程序用于根据差分升级包对嵌入式软件进行加密式差分升级。
116.应理解,fota应用程序可以为现有技术中存在的,具有根据差分升级包对嵌入式软件进行加密式差分升级,也可以是用户对程序代码编译生成的应用程序,本技术实施例对此不进行具体限制。
117.其中,可以通过现有的拼接工具将差分升级包与fota应用程序进行拼接。
118.可选的,加密的差分升级数据中还可以包括差分升级包的版本信息。
119.s34、将加密的差分升级数据发送至嵌入式设备。
120.s35、接收服务器发送的加密的差分升级数据,并烧录至存储分区的第二空间。
121.其中,存储分区包括第一空间和第二空间。
122.应理解,存储分区的第一空间中存储有当前版本的嵌入式软件。
123.s36、通过fota应用程序根据差分升级包对嵌入式软件进行加密式差分升级。
124.在一种具体的实现方式中,存储分区的第二空间还包括系统判断位,系统判断位包括预设第一字节和预设第二字节,嵌入式设备通过fota应用程序获取预设第一字节的状态,该状态包括置位和未置位,在第一字节的状态为置位时,且预设第二字节的状态为未置位时,通过fota应用程序根据差分升级包对嵌入式软件进行加密式差分升级,在嵌入式软件升级成功后,将预设第二字节进行置位。
125.其中,在通过fota应用程序根据差分升级包对嵌入式软件进行加密式差分升级发生中断时,嵌入式设备通过fota应用程序获取加密式差分升级发生中断的中断位置,根据中断位置和差分升级包,对嵌入式软件继续进行加密式差分升级。
126.本技术实施例提供的嵌入式软件的加密式差分升级方法,服务器获取嵌入式设备中待升级的嵌入式软件的当前版本,根据嵌入式软件的当前版本和存储在服务器中的嵌入式软件的第一版本,生成差分升级包,对fota应用程序进行独立编译,并将差分升级包与fota应用程序进行拼接和加密,生成加密的差分升级数据,并发送至嵌入式设备。嵌入式设
备接收到加密的差分升级数据后将其烧录至存储分区的第二空间,通过fota应用程序根据差分升级包对嵌入式软件进行加密式差分升级。嵌入式设备接收到加密的差分升级数据后将其烧录至存储分区的第二空间,通过fota应用程序根据差分升级包对嵌入式软件进行加密式差分升级,保证了嵌入式软件的顺利升级。
127.可选的,在一些实施例中,在s35之后,嵌入式设备将预设第一字节进行置位。
128.图4为本技术实施例提供的嵌入式软件的加密式差分升级方法实施例二的流程示意图。在上述任一实施例的基础上,如图4所示,在s31之前,该嵌入式软件的加密式差分升级方法可以包括如下步骤:
129.s41、获取嵌入式设备中待升级的嵌入式软件的当前版本。
130.在本步骤中,关于该步骤的具体实现原理可以参见s31实施例的记载,此处不再赘述。
131.s42、根据嵌入式软件的当前版本和存储在服务器中的嵌入式软件的第二版本,生成全量升级包。
132.其中,第二版本高于当前版本,且,第二版本低于第一版本。
133.s43、对全量升级包和差分处理程序进行加密处理,生成加密的全量升级数据,并将加密的全量升级数据发送至嵌入式设备。
134.其中,差分处理程序用于获取升级结果。
135.其中,差分处理程序可以为现有技术中存在的,具有发送升级结果功能的应用程序,也可以是用户对程序代码编译生成的应用程序,本技术实施例对此不进行具体限制。
136.相应的,对于嵌入式软件来说,则接收服务器发送的加密的全量升级数据。
137.s44、将加密的全量升级数据烧录至存储分区的待烧录分区,以使将嵌入式软件的升级方式由当前的加密式全量升级切换至加密式差分升级。
138.其中,存储分区包括当前版本分区和待烧录分区。
139.在一种具体的实现方式中,在该嵌入式软件从未进行过升级时,此时存储分区中只烧录有一个加密版本的嵌入式软件,该嵌入式软件所在的分区为当前版本分区,待烧录分区中没有存储数据,为空。
140.示例性的,在该嵌入式软件之前没有升级过时,假设待烧录分区位于存储分区的第二空间,当前版本分区位于存储分区的第一空间,嵌入式设备在接收到加密的全量升级数据后,将加密的全量升级数据烧录至存储的第二空间。
141.图5为本技术实施例提供的存储分区实施例一的结构示意图。如图5所示,存储分区的第一空间中存储有加密版本为a的嵌入式软件,为当前版本分区,存储分区的第二空间为待烧录分区。嵌入式设备在将加密的全量升级数据烧录至待烧录分区后时,此时存储分区的第二空间存储有新加密版本(如图5中的加密版本b)的嵌入式软件和差分处理程序。
142.在另一种具体的实现方式中,该嵌入式软件曾经加密式全量升级过时,此时存储分区中分别烧录有两个加密版本的嵌入式软件,待烧录分区中存储有加密版本较旧的嵌入式软件,当前版本分区中存储有加密版本较新的嵌入式软件。
143.应理解,在该实现方式下,待烧录分区可以存在于存储分区的第一空间,也可以存在于存储分区的第二空间。
144.示例性的,在该嵌入式软件之前升级过时,待烧录分区中存储有两个加密版本中
加密版本较旧的嵌入式软件,当前版本分区中存储有两个加密版本中加密版本较新的嵌入式软件,假设加密版本a为旧版本,加密版本b为新版本,则加密版本a所在的分区为待烧录分区,加密版本b所在的分区为当前版本分区。
145.在该示例性下,嵌入式设备将加密的全量升级数据烧录至待烧录分区中。
146.应理解,第一空间可以为存储分区的前部空间,第二空间可以为存储分区的后部空间。
147.本技术实施例提供的嵌入式软件的加密式差分升级方法,服务器获取嵌入式设备中待升级的嵌入式软件的当前版本,根据嵌入式软件的当前版本和存储在服务器中的嵌入式软件的第二版本,生成全量升级包,对全量升级包和差分处理程序进行加密处理,生成加密的全量升级数据,并发送至嵌入式设备。嵌入式设备接收加密的全量升级数据,将加密的全量升级数据烧录至存储分区的待烧录分区,以使将嵌入式软件的升级方式由当前的加密式全量升级切换至加密式差分升级。嵌入式软件通过将包含全量升级包和差分处理程序的加密的全量升级数据烧录至存储分区的待烧录分区,在不增加存储分区空间,不返厂的情况下实现了将嵌入式软件升级方式由加密式全量升级切换至加密式差分升级,为嵌入式设备提供了更多的可用存储分区空间,保证了嵌入式软件的顺利升级。
148.可选的,在一些实施例中,在s45之后,在待烧录分区位于存储分区的第二空间,当前版本分区位于存储分区的第一空间时,在加密的全量升级数据下载完成后,通过差分处理程序将加密的全量升级数据从第二空间移动至第一空间,对第一空间的数据进行覆盖,并删除第二空间中的数据。
149.在一种具体的实现方式中,嵌入式设备通过boatloader区获取存储分区中的嵌入式软件的版本信息,并启动新加密版本的嵌入式软件和差分处理程序(也就是说启动待烧录分区中烧录的嵌入式软件和差分处理程序)。之后,嵌入式设备通过该差分处理程序判断差分处理程序是否在存储的第一空间。在待烧录分区位于存储分区的第二空间,当前版本分区位于存储分区的第一空间时,通过差分处理程序将新加密版本的嵌入式软件以及差分处理程序移动到存储分区的第一空间,覆盖掉存储分区的第一空间中的内容,实现对当前版本分区的数据覆盖,并删除待烧录分区中的数据。嵌入式设备对新加密版本的嵌入式软件以及差分处理程序处理完成后,重新启动新加密版本的嵌入式软件,进入正常任务循环,此时flash已经具有对嵌入式软件进行差分升级的功能。
150.图6为本技术实施例提供的存储分区实施例二的结构示意图。如图6所示,存储分区的第一空间中烧录有加密版本为b的嵌入式软件,还存储有差分处理程序;第二空间中烧录有fota应用程序、差分升级包以及系统判断位。可选的,还可以第二空间中还可以包括扩展空间。
151.可选的,在一些实施例中,系统判断位还包括预设第三字节,在对预设第二字节进行置位后,该嵌入式软件的加密式差分升级方法还包括:通过差分处理程序,获取预设第三字节的状态,在预设第三字节的状态为置位时,通过差分处理程序向服务器发送升级结果,升级结果为升级成功。
152.图7为本技术实施例提供的系统判断位的结构示意图。如图7所示,系统判断位包含预设第一字节、预设第二字节、预设第三字节、预设第四字节,其中,预设第一字节为系统判断位的第一位(也就是bit0),可以为sys_needupdate,用于表示差分升级包是否下载完
成,在第一位被置位时,表明差分升级包已经就绪可以对嵌入式软件进行升级。其中,预设第二字节为系统判断位的第二位(也就是bit1),可以为sys_fotadone,用于表示嵌入式软件是否升级成功,在根据差分升级包对嵌入式软件差分升级成功后,fota应用程序将系统判断位的第二位进行置位。预设第三字节为系统判断位的第三位(也就是bit2),可以为sys_needreport,用于表示是否需要向服务器上报升级结果。在系统判断位的第三位被置位时,差分处理程序则向服务器发送升级结果,该升级结果为升级成功。预设第三字节为系统判断位的第四位(也就是bit3),为保留位,可以在之后实际应用中进行扩展使用。
153.相应的,对于服务器来说,则接收嵌入式软件发送的升级结果。
154.可选的,在一些实施例中,在s41之前,该嵌入式软件的加密式差分升级方法还可以包括以下步骤:利用差分处理程序向服务器发送加密式差分升级请求。
155.应理解,由于此时存储分区已经具有差分升级能力,因此可以向服务器发送加密式差分升级请求,以便于服务器根据加密式差分升级请求生成差分升级包。
156.其中,加密式差分升级请求包括嵌入式软件的当前版本。
157.在一种可能的实现方式中,嵌入式设备可以与服务器进行通信连接,在嵌入式软件发行新版本时,服务器将嵌入式软件的新版本信息发送给嵌入式设备。嵌入式设备接收到该嵌入式软件的新版本信息时,可以将该嵌入式设备的新版本信息在嵌入式设备的触控屏上进行显示。在用户需要对嵌入式软件进行升级时,对触控屏中相应的控件进行点击。嵌入式设备响应于用户对于触控屏的点击操作,生成加密式差分升级请求,并将该差分升级请求发送至服务器。
158.在另一种可能的实现方式中,用户的终端设备可以分别与嵌入式设备和服务器进行通信连接,该终端设备可以通过相应的应用程序对嵌入式设备进行控制,还可以通过应用程序获取对应嵌入式设备中的嵌入式软件的版本信息。在嵌入式软件发行新版本时,服务器将嵌入式软件的新版本信息发送给用户的终端设备,该终端设备通过该应用程序对嵌入式软件的新版本信息进行显示。在用户需要对嵌入式软件进行升级时,可以对应用程序中相应的控件进行点击。终端设备响应于用户对于触控屏的点击操作,生成加密式差分升级请求,并将该加密式差分升级请求发送至嵌入式设备。嵌入式设备接收到用户的终端设备发送的加密式差分升级请求,并将该加密式差分升级请求发送给服务器。
159.在再一种可能的实现方式中,在嵌入式软件发行新版本时,服务器将嵌入式软件的新版本信息发送给嵌入式设备。嵌入式设备接收到该嵌入式软件的新版本信息时与当前版本信息进行对比。在新版本信息与当前版本信息不一致时,生成加密式差分升级请求,并将该加密式差分升级请求发送给服务器。
160.相应的,对于服务器来说,则接收嵌入式设备发送的加密式差分升级请求。
161.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
162.图8为本技术实施例提供的嵌入式软件的加密式差分升级装置实施例一的结构示意图。如图8所示,该嵌入式软件的加密式差分升级装置应用于嵌入式设备,该装置包括:
163.烧录模块81,用于接收服务器发送的加密的差分升级数据,并烧录至存储分区的第二空间,加密的差分升级数据包括差分升级包和独立编译的固件空中升级fota应用程序,fota应用程序用于根据差分升级包对嵌入式软件进行加密式差分升级,存储分区包括
第一空间和第二空间;
164.处理模块82,用于通过fota应用程序根据差分升级包对嵌入式软件进行加密式差分升级,在发生升级中断时,通过fota应用程序获取加密式差分升级发生中断的中断位置;
165.处理模块82,用于通过fota应用程序,根据中断位置和差分升级包,对嵌入式软件继续进行加密式差分升级。
166.在本技术实施例的一种可能设计中,在通过fota应用程序根据差分升级包对嵌入式软件进行加密式差分升级发生中断时,处理模块82,还用于:
167.通过fota应用程序获取加密式差分升级发生中断的中断位置;
168.通过fota应用程序,根据中断位置和差分升级包,对嵌入式软件继续进行加密式差分升级。
169.在本技术实施例的另一种可能设计中,存储分区的第二空间还包括系统判断位,系统判断位包括预设第一字节,接收服务器发送的加密的差分升级数据,并烧录至存储分区的第二空间之后,处理模块82,还用于:
170.将预设第一字节进行置位。
171.可选的,处理模块82,具体用于:
172.通过fota应用程序获取预设第一字节的状态,状态包括置位和未置位;
173.在第一字节的状态为置位时,且预设第二字节的状态为未置位时,通过fota应用程序根据差分升级包对嵌入式软件进行加密式差分升级;
174.在嵌入式软件升级成功后,将预设第二字节进行置位。
175.可选的,接收服务器发送的加密的差分升级数据之前,装置还包括:
176.接收装置,用于接收服务器发送的加密的全量升级数据,加密的全量升级数据包括全量升级包和差分处理程序,差分处理程序用于向服务器发送加密式差分升级的升级结果;
177.烧录模块81,还用于将加密的全量升级数据烧录至存储分区的待烧录分区,以使将嵌入式软件的升级方式由当前的加密式全量升级切换至加密式差分升级,存储分区包括当前版本分区和待烧录分区。
178.可选的,系统判断位还包括预设第三字节,在对预设第二字节进行置位后,处理模块82,还用于:
179.通过差分处理程序,获取预设第三字节的状态;
180.在预设第三字节的状态为置位时,通过差分处理程序向服务器发送升级结果,升级结果为升级成功。
181.可选的,处理模块82,还用于:
182.在待烧录分区位于存储分区的第二空间,当前版本分区位于存储分区的第一空间时,在加密的全量升级数据下载完成后,通过差分处理程序将加密的全量升级数据从第二空间移动至第一空间,对第一空间的数据进行覆盖,并删除第二空间中的数据。
183.本技术实施例提供的嵌入式软件的加密式差分升级装置,可用于执行上述任一实施例中嵌入式设备侧的嵌入式软件的加密式差分升级装置,其实现原理和技术效果类似,在此不再赘述。
184.图9为本技术实施例提供的嵌入式软件的加密式差分升级装置实施例二的结构示
意图。如图9所示,该嵌入式软件的加密式差分升级装置应用于服务器,该装置包括:
185.获取模块91,用于获取嵌入式设备中待升级的嵌入式软件的当前版本;
186.处理模块92,用于根据嵌入式软件的当前版本和存储在服务器中的嵌入式软件的第一版本,生成差分升级包,第一版本高于当前版本;
187.处理模块92,还用于对固件空中升级fota应用程序进行独立编译,并将差分升级包与fota应用程序进行拼接和加密,生成加密的差分升级数据,fota应用程序用于根据差分升级包对嵌入式软件进行加密式差分升级;
188.发送模块,用于将加密的差分升级数据发送至嵌入式设备。
189.在本技术实施例的一种可能设计中,获取嵌入式设备中待升级的嵌入式软件的当前版本之前,获取模块91,还用于获取嵌入式设备中待升级的嵌入式软件的当前版本;
190.处理模块92,还用于根据嵌入式软件的当前版本和存储在服务器中的嵌入式软件的第二版本,生成全量升级包,第二版本高于当前版本,且,第二版本低于第一版本;
191.处理模块92,还用于对全量升级包和差分处理程序进行加密处理,生成加密的全量升级数据,并将加密的全量升级数据发送至嵌入式设备,差分处理程序用于获取升级结果。
192.可选的,装置还包括:
193.接收模块,用于接收嵌入式软件发送的升级结果,升级结果为升级成功。
194.本技术实施例提供的嵌入式软件的加密式差分升级装置,可用于执行上述任一实施例中服务器侧的嵌入式软件的加密式差分升级装置,其实现原理和技术效果类似,在此不再赘述。
195.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。此外,这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
196.图10为本技术实施例提供的嵌入式设备的结构示意图。如图10所示,该嵌入式设备可以包括:处理器101、存储器102及存储在所述存储器102上并可在处理器101上运行的计算机程序指令,所述处理器101执行所述计算机程序指令时实现前述任一实施例提供的嵌入式设备侧嵌入式软件的加密式差分升级方法。
197.可选的,嵌入式设备还可以包括与其他设备进行交互的接口。
198.可选的,该嵌入式设备的上述各个器件之间可以通过系统总线连接。
199.本技术实施例提供的嵌入式设备,可用于执行上述任一方法实施例提供的嵌入式设备侧嵌入式软件的加密式差分升级方法,其实现原理和技术效果类似,在此不再赘述。
200.图11为本技术实施例提供的服务器的结构示意图。如图11所示,该服务器可以包括:处理器111、存储器112及存储在所述存储器112上并可在处理器111上运行的计算机程序指令,所述处理器111执行所述计算机程序指令时实现前述任一实施例提供的服务器侧嵌入式软件的加密式差分升级方法。
201.可选的,服务器还可以包括与其他设备进行交互的接口。
202.可选的,该服务器的上述各个器件之间可以通过系统总线连接。
203.本技术实施例提供的服务器,可用于执行上述任一方法实施例提供的服务器侧嵌入式软件的加密式差分升级方法,其实现原理和技术效果类似,在此不再赘述。
204.存储器可以是单独的存储单元,也可以是集成在处理器中的存储单元。处理器的数量为一个或者多个。
205.应理解,处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
206.系统总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。存储器可能包括随机存取存储器(random access memory,ram),也可能还包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。
207.实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(read-only memory,rom)、ram、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppy disk)、光盘(英文:optical disc)及其任意组合。
208.本技术实施例提供的电子设备,可用于执行上述任一方法实施例提供的嵌入式软件的加密式差分升级方法,其实现原理和技术效果类似,在此不再赘述。
209.本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述嵌入式软件的加密式差分升级方法。
210.上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器,电可擦除可编程只读存储器,可擦除可编程只读存储器,可编程只读存储器,只读存储器,磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
211.可选的,将可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(application specific integrated circuits,asic)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
212.本技术实施例还提供一种计算机程序货品,该计算机程序货品包括计算机程序,该计算机程序存储在计算机可读存储介质中,至少一个处理器可以从该计算机可读存储介质中读取该计算机程序,所述至少一个处理器执行所述计算机程序时可实现上述嵌入式软件的加密式差分升级方法。
213.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献