CN108304206A - 升级方法、装置、计算机设备、程序产品及存储介质 - Google Patents
升级方法、装置、计算机设备、程序产品及存储介质 Download PDFInfo
- Publication number
- CN108304206A CN108304206A CN201810139817.5A CN201810139817A CN108304206A CN 108304206 A CN108304206 A CN 108304206A CN 201810139817 A CN201810139817 A CN 201810139817A CN 108304206 A CN108304206 A CN 108304206A
- Authority
- CN
- China
- Prior art keywords
- upgrade package
- information
- upgrade
- program
- package
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出一种升级方法、装置、计算机设备、程序产品及存储介质,其中,方法包括:通过从第一升级包的包头信息中提取隐藏的第二升级包在第一升级包的位置信息,根据提取的位置信息可获取隐藏在第一升级包中的第二升级包,利用第二升级包进行升级,由于各程序分区的第二升级包被隐藏在第一升级包中,从而可以降低第二升级包被篡改的风险,提高升级的可靠性。同时,由于第一升级包中隐藏了各程序分区的第二升级包,因此可以实现对多个程序分区进行升级。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种升级方法、装置、计算机设备、程序产品及存储介质。
背景技术
在实际应用中,当无线模块某程序分区有新的升级包时,可对程序分区进行升级。相关技术中,通常是无线模块分别接收各程序分区的升级数据,然后利用获取的升级数据,对程序分区进行升级。
但是在接收程序分区的升级数据的过程中,升级数据存在容易被其他软件或硬件进行篡改的风险,由此利用被篡改过的升级数据对程序分区进行升级,可能会导致升级失败,升级可靠性低。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
本发明实施例提出一种升级方法,通过从第一升级包的包头信息中提取隐藏的第二升级包在第一升级包的位置信息,根据提取的位置信息可获取隐藏在第一升级包中的第二升级包,利用第二升级包进行升级,由于各程序分区的第二升级包被隐藏在第一升级包中,从而可以降低第二升级包被篡改的风险,提高升级的可靠性。同时,由于第一升级包中隐藏了各程序分区的第二升级包,因此可以实现对多个程序分区进行升级。
本发明提出一种升级装置。
本发明提出一种计算机设备。
本发明提出一种计算机程序产品。
本发明提出一种非临时性计算机可读存储介质。
本发明第一方面实施例提出一种升级方法,包括:
获取第一升级包,进入启动装载阶段;其中,所述第一升级包中包括各程序分区的第二升级包;
从所述第一升级包的包头信息中,提取所述第二升级包在所述第一升级包的第一位置信息;
根据所述第一位置信息,从所述第一升级包中读取所述第二升级包;
利用所述第二升级包对所对应的程序分区进行升级。
本发明实施例的升级方法,通过获取第一升级包,进入启动装载阶段,其中,第一升级包中包括各程序分区的第二升级包,从第一升级包的包头信息中,提取第二升级包在第一升级包的第一位置信息,根据第一位置信息,从第一升级包中读取第二升级包,利用第二升级包对所对应的程序分区进行升级。本实施例中,通过从第一升级包的包头信息中提取隐藏的第二升级包在第一升级包的位置信息,根据提取的位置信息可获取隐藏在第一升级包中的第二升级包,利用第二升级包进行升级,由于各程序分区的第二升级包被隐藏在第一升级包中,从而可以降低第二升级包被篡改的风险,提高升级的可靠性。同时,由于第一升级包中隐藏了各程序分区的第二升级包,因此可以实现对多个程序分区进行升级。
本发明第二方面实施例提出了一种升级装置,包括:
获取模块,用于获取第一升级包,进入启动装载阶段;其中,所述第一升级包中包括各程序分区的第二升级包;
提取模块,用于从所述第一升级包的包头信息中,提取所述第二升级包在所述第一升级包的第一位置信息;
读取模块,用于根据所述第一位置信息,从所述第一升级包中读取所述第二升级包;
升级模块,用于利用所述第二升级包对所对应的程序分区进行升级。
本发明实施例的升级装置,通过获取第一升级包,进入启动装载阶段,其中,第一升级包中包括各程序分区的第二升级包,从第一升级包的包头信息中,提取第二升级包在第一升级包的第一位置信息,根据第一位置信息,从第一升级包中读取第二升级包,利用第二升级包对所对应的程序分区进行升级。本实施例中,通过从第一升级包的包头信息中提取隐藏的第二升级包在第一升级包的位置信息,根据提取的位置信息可获取隐藏在第一升级包中的第二升级包,利用第二升级包进行升级,由于各程序分区的第二升级包被隐藏在第一升级包中,从而可以降低第二升级包被篡改的风险,提高升级的可靠性。同时,由于第一升级包中隐藏了各程序分区的第二升级包,因此可以实现对多个程序分区进行升级。本发明第三方面实施例提出了一种计算机设备,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如第一方面实施例所述的升级方法。
本发明第四方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时实现如第一方面实施例所述的升级方法。
本发明第五方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面实施例所述的升级方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例提供的第一种升级方法的流程示意图;
图2为本发明实施例提供的一种无线模块的分区示意图;
图3为本发明实施例提供的一种第一升级包的格式示意图;
图4为本发明实施例提供的第二种升级方法的流程示意图;
图5为本发明实施例提供的第三种升级方法的流程示意;
图6为本发明实施例提供的第四种升级方法的流程示意图;
图7为本发明实施例提供的第五种升级方法的流程示意图;
图8为本发明实施例提供的一种升级装置的结构示意图;
图9为适于用来实现本发明实施方式的示例性计算机设备的框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的升级方法、装置、计算机设备、程序产品及存储介质。
在实际应用中,当无线模块某程序分区有新的升级包时,可对程序分区进行升级。相关技术中,通常是无线模块分别接收各程序分区的升级数据,然后利用获取的升级数据,对程序分区进行升级。
但是在接收程序分区的升级数据的过程中,升级数据存在容易被其他软件或硬件进行篡改的风险,由此利用被篡改过的升级数据对程序分区进行升级,可能会导致升级失败,升级可靠性低。
针对这一问题,本发明实施例提出一种升级方法,通过从第一升级包的包头信息中提取隐藏的第二升级包在第一升级包的位置信息,根据提取的位置信息可获取隐藏在第一升级包中的第二升级包,利用第二升级包进行升级,由于各程序分区的第二升级包被隐藏在第一升级包中,从而可以降低第二升级包被篡改的风险,提高升级的可靠性。同时,由于第一升级包中隐藏了各程序分区的第二升级包,因此可以实现对多个程序分区进行升级。
图1为本发明实施例提供的第一种升级方法的流程示意图。该方法可由无线模块执行。
如图1所示,该升级方法包括:
步骤101,获取第一升级包,进入启动装载阶段;其中,第一升级包中包括各程序分区的第二升级包。
在实际应用中,无线模块中可能有多个程序分区,如图2所示,无线模块的分区包括启动装载、程序1分区、程序2分区、…、程序N分区、空中下载技术(Over-the-AirTechnology,简称OTA)分区。其中,OTA分区内可存储第一升级包。
本实施例中,无线模块可从服务器获取第一升级包,并将接收的第一升级包存储在OTA分区。具体而言,无线模块可每隔预设时间向服务器发送下载请求。服务器接收到无线模块发送的下载请求后,如果有新的升级包,则将升级包发送给无线模块。如果没有新的升级包,则向无线模块返回未有新的升级包的信息,无线模块可将从服务器接收的第一升级包,存储到OTA分区内。
其中,无线模块可以是WIFI模块,也可以是蓝牙模块。如果无线模块是WIFI模块,则WIFI模块可从服务器获取第一升级包。如果无线模块是蓝牙模块,则可以由移动终端上的应用程序从服务器获取第一升级包后,再通过移动终端的蓝牙功能传输到蓝牙模块上。
无线模块重启时,先进入启动装载(bootLoader)阶段,即进入升级模式。
本实施例中,第一升级包中包括各程序分区的第二升级包,也就是说,各程序分区的第二升级包隐藏在第一升级包中。相对相关技术中,分别获取各程序分区的升级包,数据安全性高。
步骤102,从第一升级包的包头信息中,提取第二升级包在第一升级包的第一位置信息。
本实施例中,第一升级包的包头可存储版本信息、每个程序分区的第二升级包的个数、每个程序分区的第二升级包在第一升级包的偏移地址、每个程序分区的在闪存上的地址、每个第二升级包的长度、每个程序分区的大小、每个第二升级包的校验信息在第一升级包的偏移地址,每个二升级包的校验信息长度。
假设无线模块有3个程序分区,分别为程序1分区、程序2分区、程序3分区,第一升级包中可包括3个程序分区的升级包。如图3所示,第一升级包的包头中包括:版本信息、程序分区升级包的个数;程序1分区的升级包在第一升级包的偏移地址、程序1分区的地址、程序1分区的升级包的长度、程序1分区的大小、程序1升级包的校验信息在第一升级包的偏移地址、程序1分区升级包的校验信息长度;程序2分区的升级包在第一升级包的偏移地址、程序2分区的地址、程序2分区的升级包的长度、程序2分区的大小、程序2分区的升级包的校验信息在第一升级包的偏移地址、程序2分区升级包的校验信息长度;程序3分区的升级包在第一升级包的偏移地址、程序3分区的地址、程序3分区的升级包的长度、程序3分区的大小、程序3分区的升级包的校验信息在第一升级包的偏移地址、程序3分区升级包的校验信息长度。
在第一升级包的包头后面附加有第一升级包的校验信息以及3个程序分区的升级包和校验信息。需要说明的是,图3仅是一个示例。
在图3的示例中,第一升级包的包头放在了开头,需要说明的是,第一升级包的包头还可以放在第一升级包的末尾,也可以放在第一升级包当中某个固定的位置,以增强信息的安全性。
本实施例中,第一升级包的包头信息中,可包括各程序分区的第二升级包在第一升级包中的第一位置信息。其中,第一位置信息可以是第二升级包在第一升级包中的偏移地址、第二升级包在第一升级包中的预设字段等。
步骤103,根据第一位置信息,从第一升级包中读取第二升级包。
本实施例中,根据第二升级包在第一升级包中的第一位置信息,可从第一升级包中读取第二升级包。
作为一个示例,在获取第二升级包在第一升级包中的偏移地址后,可根据偏移地址在第一升级包中查询到第二升级包的位置,然后从第二升级包中所在位置读取第二升级包。
作为另一个示例,在获取第二升级包在第一升级包中的预设字段信息后,可从第一升级包的根据预设字段中读取第二升级包。
步骤104,利用第二升级包对所对应的程序分区进行升级。
具体而言,可将第二升级包从OTA分区复制到对应的程序分区,然后利用程序分区的第二升级包进行升级。
可以理解的是,可利用上述方法从第一升级包中读取各程序分区的第二升级包,然后对各程序分区进行升级,从而实现了对多个程序分区进行批量升级,提高了升级效率。
本发明实施例的升级方法,通过从第一升级包的包头信息中提取隐藏的第二升级包在第一升级包的位置信息,根据提取的位置信息可获取隐藏在第一升级包中的第二升级包,利用第二升级包进行升级,由于各程序分区的第二升级包被隐藏在第一升级包中,从而可以降低第二升级包被篡改的风险,提高升级的可靠性。同时,由于第一升级包中隐藏了各程序分区的第二升级包,因此可以实现对多个程序分区进行升级。
为了提高升级的可靠性,在上述实施例中,利用第二升级包对所对应的程序分区进行升级之前,可对用于升级的第二升级包的完整性进行校验,以保证升级的顺利完成。图4为本发明实施例提供的第二种升级方法的流程示意。
如图4所示,该升级方法包括:
步骤201,获取第一升级包,进入启动装载阶段;其中,第一升级包中包括各程序分区的第二升级包。
在实际应用中,无线模块中可能有多个程序分区,如图2所示,无线模块的分区包括启动装载、程序1分区、程序2分区、…、程序N分区、空中下载技术(Over-the-AirTechnology,简称OTA)分区。其中,OTA分区内可存储第一升级包。
本实施例中,无线模块可从服务器获取第一升级包,并将接收的第一升级包存储在OTA分区。其中,无线模块可以是WIFI模块,也可以是蓝牙模块。如果无线模块是WIFI模块,则WIFI模块可从服务器获取第一升级包。如果无线模块是蓝牙模块,则可以由移动终端上的应用程序从服务器获取第一升级包后,再通过移动终端的蓝牙功能传输到蓝牙模块上。
无线模块重启时,先进入启动装载(bootLoader)阶段,即进入升级模式。
本实施例中,第一升级包中包括各程序分区的第二升级包,也就是说,各程序分区的第二升级包隐藏在第一升级包中。相对相关技术中,分别获取各程序分区的升级包,数据安全性高。
步骤202,从第一升级包的包头信息中,提取第二升级包在第一升级包中的第一位置信息,根据第一位置信息,从第一升级包中读取第二升级包。
本实施例中,从第一升级包中读取第二升级包的方法可参见上述实施例,在此不再赘述。
步骤203,根据第二升级包,计算第二升级包的第一校验信息。
本实施例中,可根据第二升级包,计算第二升级包的第一校验信息。
作为一个示例,无线模块可利用消息摘要算法(Message Digest,简称MD)如MD2、MD5等,计算得到第二升级包的第一校验信息。
作为另一个示例,无线模块可根据第二升级包生成循环冗余校验(CyclicRedundancy Check,简称CRC)码。
需要说明的是,其他能够用于校验升级包完整性的算法生成的校验信息均可用于本实施例。
步骤204,从第一升级包的包头信息中,提取第二升级包的校验信息在第一升级包中的第二位置信息,根据第二位置信息,提取第二升级包的第二校验信息。
本实施例中,第一升级包的包头信息中可包括各程序分区的第二升级包的第二校验信息的第二位置信息,然后根据位置从第一升级包中提取第二升级包的第二校验信息。
作为一个示例,无线模块可从包头信息中,提取第二升级包的校验信息在第一升级包中的偏移地址,然后根据偏移地址从第一升级包中提取第二校验信息。
本实施例中,第二升级包的校验信息被隐藏在第一升级包的预设位置,无线模块通过从包头信息中,提取第二升级包的校验信息在第一升级包中的第二位置信息,然后根据第二位置信息读取隐藏在第一升级包中的第二升级包的校验信息,不需要无线模块通过解密操作获得第一升级包的校验信息,从而节省了资源。并且,第二校验信息被隐藏在第一升级包中,使其他硬件或者软件无法轻易截取到校验信息,保证了信息的安全性。
步骤205,当第一校验信息和第二校验信息一致时,利用第二升级包对所对应的程序分区进行升级。
在获取第二升级包的第一校验信息和第二校验信息进行比较,当第一校验信息和第二校验信息一致时,说明第二升级包是完整的,则利用第二升级包对所对应的程序分区进行升级。具体而言,可将第二升级包从OTA分区复制到对应的程序分区,然后利用程序分区的第二升级包进行升级。
本发明实施例的升级方法,通过从第一升级包的包头信息中提取隐藏的各程序分区的第二升级包的位置信息和第二升级包的校验信息的位置信息,根据提取的位置信息获取隐藏在第一升级包中的第二升级包和第二升级包的校验信息,从而不需要进行解密操作获取第二升级包的校验信息,节省了数据处理资源,提高了升级的可靠性。同时,本实施例中,各程序分区的第二升级包隐藏在第一升级包中,通过第一升级包的包头信息中隐藏的第二升级包的位置信息,可以读取隐藏的第二升级包,可以实现对多个程序分区进行升级。
本发明实施例的升级方法,可应用于家电领域,由于家电的近场通信模块一般设置简单,不适宜增加过多的加密设备,如果增加复杂的加密设备,会使得家电控制设置更为复杂,维护和消耗的数据处理资源相应增加。由于本实施例中,第一升级包中隐藏有各程序分区的第二升级包的摘要信息,因此,利用本发明实施例的升级方法,不需要进行解密操作,从而可以降低资源消耗。
在图1所述实施例的基础上,在利用第二升级包对对应的程序分区进行升级之前,也可校验第一升级包的完整性,在确定第一升级包完整的情况下,利用第二升级包进行升级,以提高升级的可靠性。图5为本发明实施例提供的第三种升级方法的流程示意。
在图1的基础上,如图5所示,该升级方法还包括:
步骤105,从包头信息中,提取第一升级包的第三校验信息。
作为一种可能的实现方式,无线模块可从第一升级包的预设位置,读取到第一升级包的摘要信息,这里称为第三校验信息。例如,预先设定第三校验信息在第一升级包中所占用的字段,无线模块在获取第一升级包后,可从预设字段读取第二校验信息。
作为另一种可能的实现方式,第一升级包的包头中包括第一升级包的第三校验信息在第一升级包中的偏移地址,无线模块可从第一升级包的包头信息中,提取第一升级包的第三校验信息在第一升级包中的偏移地址。之后,根据偏移地址提取第一升级包的第三校验信息。
步骤106,根据包头信息,计算第一升级包的第四校验信息。
具体而言,无线模块可获取第一升级包的包头信息,如第一升级包的版本号、第一升级包的长度等。然后,根据包头信息,利用消息摘要算法(Message Digest,简称MD)如MD2、MD5等,计算得到第一升级包的第三校验信息。
本实施例中,还可根据包头信息,生成CRC码作为第三摘要信息。
需要说明的是,其他能够用于校验升级包完整性的算法生成的校验信息均可用于本实施例。
步骤107,根据第三校验信息和第四校验信息,确定第一升级包完整。
在获取第一升级包的第三校验信息和第四校验信息后,比较第三校验信息和第四校验信息。当第三校验信息和第四校验一致时,可以确定过第一升级包是完整。
在确定第一升级包情况下,利用第二升级包进行升级,可以进一步提高升级的可靠性。
为了进一步提高升级的可靠性,本实施例中,也可在确定第一升级包和第二升级包都完整的情况下进行升级。也就是说,在图4所示实施例的基础上,在利用第二升级包对程序分区进行升级之前,对第一升级包的完整性进行校验。
需要说明的是,校验第一升级包完整的操作可以在获取第一升级包之后,进行第二升级包完整性校验之前执行,也可以在确定第二升级包的第一校验信息与第二校验信息一致后执行。
在上述实施例的基础上,在确定每个第二升级包均完整时,利用第二升级包升级所对应的所述程序分区。图6为本发明实施例提供的第四种升级方法的流程示意图。
如图6所示,该升级方法包括:
步骤301,获取第一升级包,进入启动装载阶段;其中,第一升级包中包括各程序分区的第二升级包。
步骤302,从第一升级包的包头信息中,提取第一升级包的第三校验信息。
步骤303,根据包头信息,计算第一升级包的第四校验信息。
步骤304,根据第三校验信息和第四校验信息,确定第一升级包完整。
步骤305,针对每个程序第二升级包,从第一升级包的包头信息中,提取第二升级包在第一升级包中的第一位置信息,根据第一位置信息,从第一升级包中读取第二升级包,计算第二升级包的第一校验信息。
步骤306,从第一升级包的包头信息中,提取第二升级包的校验信息在第一升级包中的第二位置信息,根据第二位置信息,提取第二升级包的第二校验信息。
本实施例中,上述确定第一升级包完整和获取第二升级包的第一校验和第二校验信息的方法,可参见上述实施例中记载的相关内容,在此不再赘述。
步骤307,根据每个第二升级包的第一校验信息和第二校验信息,确定每个第二升级包完整。
本实施例中,针对第一升级包中的每个第二升级包,利用每个第一校验信息和第二校验信息,确定第二升级包是否完整。
步骤308,当每个第二升级包均完整时,利用第二升级包升级所对应的程序分区。
在确定每个第二升级包完整时,利用第二升级包升级所对应的程序分区。也就是说,利用每个第二升级包对对应程序分区进行升级,从而实现对无线模块中的程序分区进行批量升级,提高了升级的效率。
当存在其中一个或多个第二升级包不完整时,退出升级,启动每个程序分区内的数据。
本发明实施例的升级方法,在确定第一升级包完整和每个升级包完整的情况下,利用每个第二升级包对对应程序分区进行升级,不仅提高了升级的可靠性,也提高了升级效率。
在上述实施例的基础上,还从第一升级包的包头信息中提取程序分区的配置信息,更新分区表。为了更清楚说明上述实施例,图7为本发明实施例提供的第五种升级方法的流程示意图。
如图7所示,该升级方法包括:
步骤401,获取第一升级包,进入启动装载阶段;其中,第一升级包中包括各程序分区的第二升级包。
本实施例中,无线模块可将下载的第一升级包,存储在OTA分区中。
步骤402,判断第一升级包对应的版本要是否高于当前版本。如果是,则执行步骤404;否则,执行步骤403。
本实施例中,在获取第一升级包后,可先判断第一升级包的版本是否高于当前版本。
具体地,第一升级包的包头中包含第一升级包的版本信息如版本号等,无线模块可从包头信息中提取版本信息,将提取的版本信息与当前版本信息进行比较,确定第一升级包对应的版本要高于当前版本。
步骤403,不需要升级,退出升级。
本实施例中,当获取的第一升级包的版本不高于当前版本时,说明不需要进行升级,则退出升级。
步骤404,从第一升级包的包头信息中,提取第二升级包在第一升级包中的第一位置信息,根据第一位置信息,从第一升级包中读取第二升级包,计算第二升级包的第一校验信息。
步骤405,从第一升级包的包头信息中,提取第二升级包的校验信息在第一升级包中的第二位置信息,根据第二位置信息,提取第二升级包的第二校验信息。
本实施例中,在第一升级包的版本高于当前版本时,可获取第二升级包的第一校验信息和第二校验信息,以判断每个第二升级包的完整性,具体地过程可参见上述实施例,在此不再赘述。
步骤406,判断各第二升级包的第一校验信息和第二校验信息是否一致。如果是,则执行步骤408;否则,执行步骤407。
本实施例中,利用第一校验信息和第二校验信息,判断每个第二升级包的完整性。
步骤407,退出升级。
本实施例中,当存在其中一个或多个第二升级包不完整时,退出升级。
步骤408,从第一升级包的包头信息中,提取程序分区的配置信息。
本实施例中,在确定每个第二升级包完整后,无线模块从第一升级包的包头信息中,提取各程序分区的配置信息,如各程序分区的大小、程序分区的地址等,以根据配置信息更新分区表。
由于第一升级包的包头中可包含各第二升级包的校验信息的长度,因此无线模块还可从第一升级包的包头信息中,提取各第二升级包的校验信息长度。
步骤409,根据程序分区的配置信息,对程序分区对应的分区表进行更新。
无线模块在提取程序分区的配置信息后,根据配置信息对程序分区对应的分区表进行更新。具体地,可根据配置信息中各程序分区的大小和地址,对分区表中各程序分区的大小和地址进行更新。
举例而言,假设有两个程序分区分别为程序分区A和程序分区B,分区表中,程序分区A和程序分区B的大小分别为120M和180M,提取的配置信息中程序分区A和程序分区B的大小分别为150M和150M,则分区表中程序分区A的大小由120M更新为150M,程序分区B的大小由180M更新为150M。
本实施例中,无线模块可根据配置信息对分区表进行更新,重新划分程序分区,从而提高了升级的可靠性和灵活性。
需要说明的是,步骤408和步骤409,也可在确定每个第二升级包完整之前执行。
步骤410,根据分区表和第一位置信息,将第一升级包中的第二升级包,拷贝到对应的程序分区中。
本实施例中,无线模块在更新分区表后,针对每个第二升级包,根据第二升级包在第一升级包中的第一位置信息,从第一升级包中提取第二升级包,并将第二升级包从OTA分区复制到对应的程序分区中,以用于进行升级。
步骤411,判断各第二升级包的第一摘要信息和第二摘要信息是否一致。如果是,则执行步骤412;否则,执行步骤410。
在将各第二升级包复制到对应的程序分区后,为了保证应用程序分区内第二升级包是完整的,无线模块再次对各第二升级包的完整性进行校验。
具体地,针对每个第二升级包,无线模块根据第二升级包计算出第一校验信息,并将第一校验信息和第一升级包中携带的第二校验信息进行比对,以判断第一校验信息和第二校验信息是否一致。
步骤412,利用各第二升级包进行升级。
如果所有第二升级包的第一校验信息和第二校验信息一致,则无线模块利用各第二升级包进行升级,实现了批量升级。
如果存在一个或者多个第二升级包的第一校验信息和第二校验信息不一致,可执行步骤410,无线模块根据分区表和第一位置信息,将第二升级包复制到对应的程序分区内,再进行完整性校验。
需要说明的是,本实施例中,在将每个第二升级包复制到对应的程序分区之前,可根据第一升级包的第三校验信息和第四校验信息,判断第一升级包的完整性,以提高升级的可靠性。
本发明实施例的升级方法,通过从第一升级包的包头信息中,提取程序分区的配置信息,根据配置信息对分区表进行更新,从而可以避免相关技术中只能向固定程序分区更新程序的问题,提高了升级的可靠性和灵活性。
为了实现上述实施例,本发明实施例还提出一种升级装置。图8为本发明实施例提供的一种升级装置的结构示意图。
如图8所示,该升级装置包括:获取模块510、提取模块520、读取模块530、升级模块540。
获取模块510,用于获取第一升级包,进入启动装载阶段;其中,第一升级包中包括各程序分区的第二升级包。
提取模块520用于从第一升级包的包头信息中,提取第二升级包在第一升级包的第一位置信息。
读取模块530用于根据第一位置信息,从第一升级包中读取第二升级包;
升级模块540用于利用第二升级包对所对应的程序分区进行升级。
在本实施例一种可能的实现方式中,升级模块540可包括:
计算单元,根据第二升级包,计算第二升级包的第一校验信息;
提权单元,用于从第一升级包的包头信息中,提取第二升级包的校验信息在第一升级包中的第二位置信息,根据第二位置信息,提取第二升级包的第二校验信息;
升级单元,用于当第一校验信息和第二校验信息一致时,利用第二升级包对所对应的程序分区进行升级。
在本实施例一种可能的实现方式中,该装置还可包括:
提取模块520,用于利用所述第二升级包对所对应的程序分区进行升级之前,从包头信息中,提取第一升级包的第三校验信息;
计算模块,用于根据包头信息,计算第一升级包的第四校验信息;
确定模块,用于根据第三校验信息和第四校验信息,确定第一升级包完整。
在本实施例一种可能的实现方式中,该装置还可包括:
确定模块,还用于利用第二升级包对所对应的程序分区进行升级之前,根据每个第二升级包的第一校验信息和第二校验信息,确定每个第二升级包完整。
在本实施例一种可能的实现方式中,该装置还可包括:
提取模块520,还用于从第一升级包的包头信息中,提取程序分区的配置信息;
更新模块,用于根据程序分区的配置信息,对程序分区对应的分区表进行更新。
在本实施例一种可能的实现方式中,升级模块540还用于:
根据分区表和所述第一位置信息,将第一升级包中的第二升级包,拷贝到对应的程序分区中。
在本实施例一种可能的实现方式中,升级模块540还用于:
拷贝到对应的程序分区中之后,再次对第二升级包的校验信息进行验证。
在本实施例一种可能的实现方式中,提取模块520还用于:
从第一升级包的包头信息中,提取第二升级包的校验信息长度。
在本实施例一种可能的实现方式中,该装置还可包括:
比较模块,用于从包头信息中提取版本信息,将提取的版本信息与当前版本信息进行比较,确定第一升级包对应的版本要高于当前版本。
在本实施例一种可能的实现方式中,获取模块510还用于:
请求下载第一升级包;
将下载的第一升级包存储到空间下载技术OTA分区内。
需要说明的是,前述对升级方法实施例的解释说明,也适用于本实施例的升级装置,在此不再赘述。
本发明实施例的升级装置,通过获取第一升级包,进入启动装载阶段,其中,第一升级包中包括各程序分区的第二升级包,从第一升级包的包头信息中,提取第二升级包在第一升级包的第一位置信息,根据第一位置信息,从第一升级包中读取第二升级包,利用第二升级包对所对应的程序分区进行升级。本实施例中,通过从第一升级包的包头信息中提取隐藏的第二升级包在第一升级包的位置信息,根据提取的位置信息可获取隐藏在第一升级包中的第二升级包,利用第二升级包进行升级,由于各程序分区的第二升级包被隐藏在第一升级包中,从而可以降低第二升级包被篡改的风险,提高升级的可靠性。同时,由于第一升级包中隐藏了各程序分区的第二升级包,因此可以实现对多个程序分区进行升级。为了实现上述实施例,本发明实施例还提出一种计算机设备,包括处理器和存储器;其中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现如前述实施例所述的升级方法。
为了实现上述实施例,本发明实施例还提出一种计算机程序产品,当计算机程序产品中的指令由处理器执行时实现如前述实施例所述的升级方法。
为了实现上述实施例,本发明实施例还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述实施例所述的升级方法。
图9示出了适于用来实现本发明实施方式的示例性计算机设备的框图。图9显示的计算机设备13仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图9所示,计算机设备13以通用计算设备的形式表现。计算机设备13的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备13典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备13访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备13可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备13也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备13交互的设备通信,和/或与使得该计算机设备13能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备13还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备13的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备13使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (14)
1.一种升级方法,其特征在于,包括:
获取第一升级包,进入启动装载阶段;其中,所述第一升级包中包括各程序分区的第二升级包;
从所述第一升级包的包头信息中,提取所述第二升级包在所述第一升级包的第一位置信息;
根据所述第一位置信息,从所述第一升级包中读取所述第二升级包;
利用所述第二升级包对所对应的程序分区进行升级。
2.根据权利要求1所述的方法,其特征在于,所述利用所述第二升级包对所对应的程序分区进行升级,包括:
根据所述第二升级包,计算所述第二升级包的第一校验信息;
从所述第一升级包的包头信息中,提取所述第二升级包的校验信息在所述第一升级包中的第二位置信息,根据所述第二位置信息,提取所述第二升级包的第二校验信息;
当所述第一校验信息和所述第二校验信息一致时,利用所述第二升级包对所对应的程序分区进行升级。
3.根据权利要求1所述的方法,其特征在于,所述利用所述第二升级包对所对应的程序分区进行升级之前,还包括:
从所述包头信息中,提取所述第一升级包的第三校验信息;
根据所述包头信息,计算所述第一升级包的第四校验信息;
根据所述第三校验信息和所述第四校验信息,确定所述第一升级包完整。
4.根据权利要求2或3所述的方法,其特征在于,所述利用所述第二升级包对所对应的程序分区进行升级之前,还包括:
根据每个第二升级包的所述第一校验信息和所述第二校验信息,确定每个第二升级包完整。
5.根据权利要求4所述的方法,其特征在于,还包括:
从所述第一升级包的包头信息中,提取所述程序分区的配置信息;
根据所述程序分区的配置信息,对所述程序分区对应的分区表进行更新。
6.根据权利要求5所述的方法,其特征在于,所述利用所述第二升级包升级所对应的所述程序分区,包括:
根据所述分区表和所述第一位置信息,将所述第一升级包中的所述第二升级包,拷贝到对应的所述程序分区中。
7.根据权利要求6所述的方法,其特征在于,所述拷贝到对应的所述程序分区中之后,还包括:
再次对所述第二升级包的校验信息进行验证。
8.根据权利要求4所述的方法,其特征在于,还包括:
从所述第一升级包的包头信息中,提取所述第二升级包的校验信息长度。
9.根据权利要求5-8任一项所述的方法,其特征在于,所述从所述第一升级包的包头信息中,提取所述第二升级包在所述第一升级包中的第一位置信息之前,还包括:
从所述包头信息中提取版本信息,将提取的所述版本信息与当前版本信息进行比较,确定所述第一升级包对应的版本要高于当前版本。
10.根据权利要求5-8任一项所述的方法,其特征在于,所述获取第一升级包,包括:
请求下载所述第一升级包;
将下载的所述第一升级包存储到空间下载技术OTA分区内。
11.一种升级装置,其特征在于,包括:
获取模块,用于获取第一升级包,进入启动装载阶段;其中,所述第一升级包中包括各程序分区的第二升级包;
提取模块,用于从所述第一升级包的包头信息中,提取所述第二升级包在所述第一升级包的第一位置信息;
读取模块,用于根据所述第一位置信息,从所述第一升级包中读取所述第二升级包;
升级模块,用于利用所述第二升级包对所对应的程序分区进行升级。
12.一种计算机设备,其特征在于,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-10中任一所述的升级方法。
13.一种计算机程序产品,其特征在于,当所述计算机程序产品中的指令由处理器执行时实现如权利要求1-10中任一所述的升级方法。
14.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10中任一所述的升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810139817.5A CN108304206A (zh) | 2018-02-11 | 2018-02-11 | 升级方法、装置、计算机设备、程序产品及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810139817.5A CN108304206A (zh) | 2018-02-11 | 2018-02-11 | 升级方法、装置、计算机设备、程序产品及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108304206A true CN108304206A (zh) | 2018-07-20 |
Family
ID=62865051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810139817.5A Pending CN108304206A (zh) | 2018-02-11 | 2018-02-11 | 升级方法、装置、计算机设备、程序产品及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108304206A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378123A (zh) * | 2019-07-18 | 2019-10-25 | 上海擎感智能科技有限公司 | 一种用于车载终端的软件升级方法及系统 |
CN112732316A (zh) * | 2020-12-31 | 2021-04-30 | 杭州艾芯智能科技有限公司 | 门锁模组的固件升级方法、系统、计算机和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015034490A1 (en) * | 2013-09-04 | 2015-03-12 | Hewlett-Packard Development Company, L.P. | Header section download of package |
CN104915591A (zh) * | 2014-03-10 | 2015-09-16 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
CN105700898A (zh) * | 2014-11-25 | 2016-06-22 | 中兴通讯股份有限公司 | 一种升级文件制作方法及装置和升级文件获取方法及装置 |
CN106293848A (zh) * | 2013-03-15 | 2017-01-04 | 青岛海信移动通信技术股份有限公司 | 一种系统升级的方法及装置 |
CN107193593A (zh) * | 2017-05-17 | 2017-09-22 | 深圳创维数字技术有限公司 | 一种可升级文件的升级方法、机顶盒和存储介质 |
-
2018
- 2018-02-11 CN CN201810139817.5A patent/CN108304206A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293848A (zh) * | 2013-03-15 | 2017-01-04 | 青岛海信移动通信技术股份有限公司 | 一种系统升级的方法及装置 |
WO2015034490A1 (en) * | 2013-09-04 | 2015-03-12 | Hewlett-Packard Development Company, L.P. | Header section download of package |
CN104915591A (zh) * | 2014-03-10 | 2015-09-16 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
CN105700898A (zh) * | 2014-11-25 | 2016-06-22 | 中兴通讯股份有限公司 | 一种升级文件制作方法及装置和升级文件获取方法及装置 |
CN107193593A (zh) * | 2017-05-17 | 2017-09-22 | 深圳创维数字技术有限公司 | 一种可升级文件的升级方法、机顶盒和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378123A (zh) * | 2019-07-18 | 2019-10-25 | 上海擎感智能科技有限公司 | 一种用于车载终端的软件升级方法及系统 |
CN110378123B (zh) * | 2019-07-18 | 2023-11-14 | 上海擎感智能科技有限公司 | 一种用于车载终端的软件升级方法及系统 |
CN112732316A (zh) * | 2020-12-31 | 2021-04-30 | 杭州艾芯智能科技有限公司 | 门锁模组的固件升级方法、系统、计算机和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108376077A (zh) | 控制单元的升级方法和装置 | |
CN108459866A (zh) | 升级方法、装置、计算机设备、程序产品及存储介质 | |
CN106201566B (zh) | 利博伟特软件热升级方法及设备 | |
CN109446815A (zh) | 基本输入输出系统固件的管理方法、装置和服务器 | |
CN102915236B (zh) | 使用硬件抽象执行软件应用程序的方法和系统 | |
CN105446772B (zh) | 一种系统升级的方法和装置 | |
CN109213611A (zh) | 跨进程通讯方法、装置、终端及存储介质 | |
CN103646044A (zh) | 移动终端鉴别方法及装置 | |
CN105210037B (zh) | 存储器访问的加快 | |
CN110244604A (zh) | 数据传输方法、装置、电子设备及存储介质 | |
KR20130012929A (ko) | 데이터 패키지의 효율적인 다운로드 방법 및 시스템 | |
CN109960932A (zh) | 文件检测方法、装置和终端设备 | |
TWI354929B (en) | Method and computer program product for executing | |
CN112740180A (zh) | 适用于人工智能辅助的汽车应用的虚拟机存储器的安全访问 | |
CN108304206A (zh) | 升级方法、装置、计算机设备、程序产品及存储介质 | |
CN114969713A (zh) | 设备验证方法、设备及系统 | |
JP2003288270A (ja) | データ検証方法およびホストコンピュータおよび記憶制御装置 | |
CN110262838A (zh) | 一种程序崩溃的处理方法、装置、终端及存储介质 | |
TWI811514B (zh) | 用於計算數位簽章認證標記指令之電腦程式產品、電腦系統及電腦實施方法 | |
CN102880478B (zh) | 软件更新方法 | |
CN107171808B (zh) | 一种电子档案真实性的验证方法及装置 | |
CN110069729A (zh) | 一种应用的离线缓存方法和系统 | |
CN107977222A (zh) | 适用于eMMC的升级文件的转换、生成方法及装置 | |
CN110262832A (zh) | 应用程序权限判断方法、装置和电子设备 | |
CN109408191A (zh) | 页面更新方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180720 |
|
RJ01 | Rejection of invention patent application after publication |