CN116319314A - 一种物联网设备升级方法及装置 - Google Patents
一种物联网设备升级方法及装置 Download PDFInfo
- Publication number
- CN116319314A CN116319314A CN202211718118.9A CN202211718118A CN116319314A CN 116319314 A CN116319314 A CN 116319314A CN 202211718118 A CN202211718118 A CN 202211718118A CN 116319314 A CN116319314 A CN 116319314A
- Authority
- CN
- China
- Prior art keywords
- code
- upgrade
- upgrading
- app
- area
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012795 verification Methods 0.000 claims abstract description 21
- 230000007246 mechanism Effects 0.000 claims description 10
- 238000005192 partition Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 13
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000001680 brushing effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
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
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y30/00—IoT infrastructure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0859—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions
- H04L41/0863—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions by rolling back to previous configuration versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种物联网设备升级方法及装置,涉及物联网设备技术领域,该方法包括:下载更新文件,丢弃更新文件中的引导加载区,将更新文件中的APP代码存储至预设的升级代码区并进行完整性校验;校验合格后,重启应用程序,基于更新文件中的APP代码,通过Boot Load引导程序进行应用程序升级。本申请在不影响正常运作的前提下,基于在对应分区存储的升级代码,进行代码校验以及应用程序更新,为日常工作提供便利。
Description
技术领域
本申请涉及物联网设备技术领域,具体涉及一种物联网设备升级方法及装置。
背景技术
近年来,随着互联网的高速发展,在物联网设备部署以后,如果存在后续需求更新、代码缺陷等影响使用,势必会要升级固件程序。现有的升级方案,只能通过刷固件程序来完成程序更新。但是面对成千上万的设备,通过刷固件的方式,需去现场拆卸设备,升级成功后,还要重新配置包括网络IP等设备参数,该方案实现起来耗时耗力,很不现实,大大增大人力成本。
因此,提高设备升级的工作效率,急需一种物联网设备升级技术。
发明内容
本申请提供一种物联网设备升级方法,在不影响正常运作的前提下,基于在对应分区存储的升级代码,进行代码校验以及应用程序更新,为日常工作提供便利。
第一方面,本申请提供了一种物联网设备升级方法,所述方法用于升级安装在物联网设备上的应用程序,所述方法包括以下步骤:
下载更新文件,丢弃所述更新文件中的引导加载区,将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验;
校验合格后,重启所述应用程序,基于所述更新文件中的APP代码,通过Boot Load引导程序进行应用程序升级。
进一步的,所述更新文件中的APP代码通过完整性校验后,应用程序升级之前,所述方法还包括以下步骤:
在预设的升级配置区内生成一升级标记信息以及用于表示代码完整性的第一完整校验码;
重启所述应用程序,若检测到所述升级标记信息,则计算获得用于表示代码完整性的第二完整校验码,与所述第一完整校验码比对,若通过比对,则允许进行升级。
进一步的,所述更新文件中的APP代码通过完整性校验后,应用程序升级之前,所述方法还包括以下步骤:
若未检测到所述升级标记信息,则清除所述升级标记信息,将所述应用程序回退到升级前的版本。
进一步的,所述方法还包括以下步骤:
若基于所述更新文件中的APP代码进行应用程序升级时出现断电情况,待断电重启后,检测是否存在所述升级标记信息;
若存在所述升级标记信息,则继续基于所述更新文件中的APP代码进行应用程序升级。
进一步的,所述方法还包括以下步骤:
待应用程序升级完成后,将APP代码区的APP代码与所述升级代码区中所述更新文件的APP代码进行比对;
若两者一致,则擦除升级配置区内的升级标记信息以及第一完整校验码;
若两者不一致,则将所述升级代码区中所述更新文件的APP代码拷贝至所述APP代码区,拷贝完成后,再次比较两者是否一致,如果一致则擦除所述升级标记信息以及所述第一完整校验码,若两者不一致时,再次进行拷贝。
进一步的,下载更新文件,丢弃所述更新文件中的引导加载区,将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验中,包括以下步骤:
基于URL地址下载所述更新文件,下载程序根据内部运行机制丢弃所述更新文件中的引导加载区,识别APP代码区,获得所述APP代码;
将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验。
进一步的,所述方法还包括以下步骤:
将已安装的应用程序的版本信息与服务器的应用程序的版本信息进行比对;
当两个版本信息比对不一致时,生成升级提示;其中,
所述升级提示包括升级URL和应用程序最新版本号。
进一步的,所述物联网设备从服务平台下载已安装的应用程序的更新文件,获取所述更新文件中的APP代码时,还会获取所述更新文件中的APP代码的长度;
所述在预设的升级配置区内生成一升级标记信息以及用于表示代码完整性的第一完整校验码中,包括以下步骤:
识别所述升级代码区中的所述APP代码的长度;
将识别出的所述升级代码区中的所述APP代码与所述更新文件中的APP代码的长度进行比对,若长度一致并且数据相同则验证合格;
若验证合格,将所述APP代码的长度以及第一完整校验码写入所述升级配置区,并更新升级标记信息。
进一步的,当所述应用程序升级失败后,所述方法还包括以下步骤:
基于预设的APP代码区中的所述APP代码,对所述应用程序进行修复。
第二方面,本申请提供了一种物联网设备升级装置,所述装置用于升级安装在物联网设备上的应用程序,所述装置包括:
代码获取模块,其用于下载更新文件,丢弃所述更新文件中的引导加载区,将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验;
程序升级模块,其用于校验合格后,重启所述应用程序,基于所述更新文件中的APP代码,通过Boot Load引导程序进行应用程序升级。
进一步的,所述代码获取模块还用于在预设的升级配置区内生成一升级标记信息以及用于表示代码完整性的第一完整校验码;
所述代码获取模块还用于所述应用程序重启后,检测是否存在所述升级标记信息,若存在则计算获得用于表示代码完整性的第二完整校验码,与所述第一完整校验码比对,若通过比对,则允许进行升级。
进一步的,所述装置还包括程序回退模块,其用于未检测到所述升级标记信息时,清除所述升级标记信息,将所述应用程序回退到升级前的版本。
进一步的,所述程序升级模块还用于若基于所述更新文件中的APP代码进行应用程序升级时出现断电情况,待断电重启后,检测是否存在所述升级标记信息;
所述程序升级模块还用于若存在所述升级标记信息,则继续基于所述更新文件中的APP代码进行应用程序升级。
进一步的,所述装置还包括代码比对模块,其用于待应用程序升级完成后,将APP代码区的APP代码与所述升级代码区中所述更新文件的APP代码进行比对;
所述代码比对模块还用于若两者一致,则擦除升级配置区内的升级标记信息以及第一完整校验码;
所述代码比对模块还用于若两者不一致,则将所述升级代码区中所述更新文件的APP代码拷贝至所述APP代码区,拷贝完成后,再次比较两者是否一致,如果一致则擦除所述升级标记信息以及所述第一完整校验码,若两者不一致时,再次进行拷贝。
进一步的,所述代码获取模块还用于基于URL地址下载所述更新文件,下载程序根据内部运行机制丢弃所述更新文件中的引导加载区,识别APP代码区,获得所述APP代码。
进一步的,所述装置还包括升级提示模块,其用于将已安装的应用程序的版本信息与服务器的应用程序的版本信息进行比对;
所述升级提示模块还用于当两个版本信息比对不一致时,生成升级提示;其中,
所述升级提示包括升级URL和应用程序最新版本号。
进一步的,所述代码获取模块还用于识别所述升级代码区中的所述APP代码的长度;
所述代码获取模块还用于将识别出的所述升级代码区中的所述APP代码与所述更新文件中的APP代码的长度进行比对,若长度一致并且数据相同则验证合格;
所述代码获取模块还用于若验证合格,将所述APP代码的长度以及第一完整校验码写入所述升级配置区,并更新升级标记信息。
进一步的,所述程序回退模块还用于当所述应用程序升级失败后,基于预设的APP代码区中的所述APP代码,对所述应用程序进行修复。
本申请提供的技术方案带来的有益效果包括:
本申请通过对物联网设备的存储区域进行分区,在不影响正常运作的前提下,基于在对应分区存储的升级代码,进行代码校验以及应用程序更新,为日常工作提供便利。
附图说明
术语解释:
APP:Application,手机软件;
URL:Uniform Resource Locator,统一资源定位系统;
IOT:Internet of Things,物联网;
HEX文件:Intel HEX文件;
CRC:Cyclic Redundancy Check,循环冗余校验;
HTTP:Hypertext Transfer Protocol,超文本传输协议;
MQTT:Message Queuing Telemetry Transport;消息队列遥测传输。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中提供的物联网设备升级方法的步骤流程图;
图2为本申请实施例中提供的物联网设备升级方法的具体操作流程图;
图3为本申请实施例中提供的物联网设备升级方法的分区示意图;
图4为本申请实施例中提供的物联网设备升级装置的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图对本申请的实施例作进一步详细说明。
本申请实施例提供一种物联网设备升级方法,通过对物联网设备的存储区域进行分区,在不影响正常运作的前提下,基于在对应分区存储的升级代码,进行代码校验以及应用程序更新,为日常工作提供便利。
为达到上述技术效果,本申请的总体思路如下:
一种物联网设备升级方法,该方法用于升级安装在物联网设备上的应用程序,该方法包括以下步骤:
S1、下载更新文件,丢弃所述更新文件中的引导加载区,将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验;
S2、校验合格后,重启所述应用程序,基于所述更新文件中的APP代码,通过BootLoad引导程序进行应用程序升级。
以下结合附图对本申请的实施例作进一步详细说明。
第一方面,参见图1至3所示,本申请实施例提供一种物联网设备升级方法,该方法用于升级安装在物联网设备上的应用程序,该方法包括以下步骤:
S1、下载更新文件,丢弃更新文件中的引导加载区,将更新文件中的APP代码存储至预设的升级代码区并进行完整性校验;
S2、校验合格后,重启应用程序,基于更新文件中的APP代码,通过Boot Load引导程序进行应用程序升级。
需要说明的是,该方法还包括预先配置流程,预先配置流程包括以下步骤:
配置引导加载区、APP代码区、升级代码区以及升级配置区;其中,
引导加载区用于存储应用程序对应的引导加载程序代码;
APP代码区用于存储应用程序对应的APP代码;
升级代码区用于存储更新文件中的APP代码;
APP代码为升级时会发生变更的代码。
目前现有的物联网设备升级,大多数没有考虑异常断电或者存储设备存在不稳定等不确定因素,一旦该情况发生,容易使得升级后的设备出现大面积瘫痪。本发明能有效的保证在各种恶劣环境,一旦发生各种意外,可以做到万无一失的保证能正确的回退到上一版本。
本申请实施例中,通过对物联网设备的存储区域进行分区,在不影响正常运作的前提下,基于在对应分区存储的升级代码,进行代码校验以及应用程序更新,为日常工作提供便利。
由于升级标记信息在升级成功或者失败后被清除,应用程序升级过程中,如果出现断电,由于升级标记信息的存在,下次重启时,再次进入升级模式,避免应用程序更新失败。
进一步的,所述更新文件中的APP代码通过完整性校验后,应用程序升级之前,所述方法还包括以下步骤:
在预设的升级配置区内生成一升级标记信息以及用于表示代码完整性的第一完整校验码;
重启所述应用程序,若检测到所述升级标记信息,则计算获得用于表示代码完整性的第二完整校验码,与所述第一完整校验码比对,若通过比对,则允许进行升级。
进一步的,所述更新文件中的APP代码通过完整性校验后,应用程序升级之前,所述方法还包括以下步骤:
若未检测到所述升级标记信息,则清除所述升级标记信息,将所述应用程序回退到升级前的版本。
进一步的,所述方法还包括以下步骤:
若基于所述更新文件中的APP代码进行应用程序升级时出现断电情况,待断电重启后,检测是否存在所述升级标记信息;
若存在所述升级标记信息,则继续基于所述更新文件中的APP代码进行应用程序升级。
进一步的,所述方法还包括以下步骤:
待应用程序升级完成后,将APP代码区的APP代码与所述升级代码区中所述更新文件的APP代码进行比对;
若两者一致,则擦除升级配置区内的升级标记信息以及第一完整校验码;
若两者不一致,则将所述升级代码区中所述更新文件的APP代码拷贝至所述APP代码区,拷贝完成后,再次比较两者是否一致,如果一致则擦除所述升级标记信息以及所述第一完整校验码,若两者不一致时,再次进行拷贝。
进一步的,下载更新文件,丢弃所述更新文件中的引导加载区,将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验中,包括以下步骤:
基于URL地址下载所述更新文件,下载程序根据内部运行机制丢弃所述更新文件中的引导加载区,识别APP代码区,获得所述APP代码;
将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验。
进一步的,所述方法还包括以下步骤:
将已安装的应用程序的版本信息与服务器的应用程序的版本信息进行比对;
当两个版本信息比对不一致时,生成升级提示;其中,
所述升级提示包括升级URL和应用程序最新版本号。
进一步的,所述物联网设备从服务平台下载已安装的应用程序的更新文件,获取所述更新文件中的APP代码时,还会获取所述更新文件中的APP代码的长度;
所述在预设的升级配置区内生成一升级标记信息以及用于表示代码完整性的第一完整校验码中,包括以下步骤:
识别所述升级代码区中的所述APP代码的长度;
将识别出的所述升级代码区中的所述APP代码与所述更新文件中的APP代码的长度进行比对,若长度一致并且数据相同则验证合格;
若验证合格,将所述APP代码的长度以及第一完整校验码写入所述升级配置区,并更新升级标记信息。
进一步的,当所述应用程序升级失败后,所述方法还包括以下步骤:
基于预设的APP代码区中的所述APP代码,对所述应用程序进行修复。
同时,在APP代码写入到升级代码过程中,同样存在断电或者存储设备不稳定情况,采用多重备份机制,使得应用程序升级过程中,如果失败,直接回退到上一版本。
在具体实施时,物联网设备是通过服务平台(IOT平台)下发的URL地址去下载对应的HEX文件,物联网设备下载程序针对HEX文件,如果发现下载部分的代码处于Boot Load区域,不做任何处理,如果发现下载的代码为非Boot Load区域,将Boot Loader部分的代码丢弃,如果发现下载的代码为非Boot Load区域,将APP部分的代码备份写入到升级代码区;
写入完成后,计算该部分校验和,同时将该校验和、当前升级代码区长度以及升级标记写入到预设的升级配置区。
然后物联网设备内部通过程序机制完成重启进入Boot Load引导程序,当引导程序检测升级标记,如果有该标记,先计算升级区的校验和,并和升级配置区的校验和比较,如果一致,开始从升级代码区往APP区拷贝代码。拷贝过程中,如果存在异常断电,下次重启后,由于升级标记的存在,再次进行升级代码去往APP代码的拷贝。如果不存在异常断电,拷贝完成后,为了防止弱写,需再次比较APP代码和升级代码区是否完全一致,如果一致清除升级配置区中的升级标记、升级代码长度、校验和,然后自动重启,完成升级过程。如果不一致,又再次从头开始拷贝,直到APP代码和升级代码比较完全一致,则清除升级配置区升级标记、升级代码长度、校验和,然后自动重启,完成升级过程。
进一步的,该方法还包括以下步骤:
物联网设备获取更新文件中的APP代码后,向自身预设的升级配置区生成一升级标记信息,同时生成APP代码长度以及校验和;
基于APP代码长度以及校验和,生成第一完整校验码。
同样,第二完整校验码也是由对应的APP代码长度以及校验和获得。
需要说明的是,本申请实施例在物联网设备代码程序设计阶段,先将部分稳定性功能,比如驱动、算法、flash读写部分代码全部编译到引导加载区(Boot Loader区),如果芯片空间足够大,只需将启动引导代码编译到引导加载区(Boot Loader区);
将上层应用和可能涉及修改的代码编译到APP代码区;
最后预留一页的地址空间做升级配置区,用于配置相关网络设备参数和记录当前升级状态和信息。
当启动升级时,物联网设备通过服务平台(IOT平台)下发的URL地址去下载对应的HEX文件,如果发现下载部分的代码处于BootLoad区域,不做任何处理,物联网设备程序将引导加载部分(Boot Loader部分)的代码丢弃,将APP部分的代码备份写入到升级代码区;
写入完成后,计算该部分校验和,同时将该校验和、当前升级代码区长度,和升级标记写入到升级配置区;
然后设备内部通过程序机制完成重启进入Boot Load引导程序,当引导程序检测升级升级标记,如果有该标记,先计算升级区的校验和,并和升级配置区的校验和比较,如果一致,开始从升级代码区往APP区拷贝代码,拷贝过程中,如果存在异常断电,下次重启后,由于升级标记的存在,再次进行升级代码去往APP代码的拷贝。如果不存在异常断电,拷贝完成后,为了防止弱写,需再次比较APP代码和升级代码区是否完全一致,如果一致,清除升级配置区升级标记、升级代码长度、校验和,然后自动重启,切换到升级后程序,完成升级过程。如果不一致,又再次从头开始从APP代码拷贝,直到APP代码区和升级代码区完全一致时时,清除升级配置区升级标记、升级代码长度、校验和,然后自动重启,完成升级过程。
需要说明的是,如说明书附图的图2所示,本申请实施例的具体操作流程如下:
步骤1:进行程序设计,并对物联网设备进行配置:
步骤11:将引导程序代码定位到引导加载区;
步骤12:将APP代码定位到APP代码区;
步骤13:将升级配置区定位到物联网设备存储区域的最后一页,该升级配置区用于存储升级升级标记、长度和升级代码区CRC校验和。
步骤2:物联网设备上报心跳包给服务平台(IOT平台),服务平台(IOT平台)检测物联网设备的应用程序的版本号。
步骤3:服务平台(IOT平台)获取HTTP服务器上的最新版本的应用程序的版本号,对比当前物联网设备的版本号,后台提示用户是否启动升级:
步骤31:用户如果拒接升级,本次升级忽略;
步骤32:用户如果启动升级,服务平台(IOT平台)直接以MQTT报文向在线的需升级的物联网设备推送升级URL地址链接和当前待升级的应用程序的版本号。
步骤4:物联网设备收到推送过来的升级URL和版本号,向当前的URL所在的服务器发送HTTP Get升级请求。
步骤5:HTTP服务器收到请求后,返回当前固件HEX长度。
步骤6:物联网设备向HTTP服务器请求报文体下载,开始请求固件的二进制报文HEX下载。
步骤7:物联网设备下载固件,同时上报当前下载进度给服务平台(IOT平台),如果是引导加载区(Boot loader区),忽略丢弃,如果是APP代码区,将该部分代码写入到升级代码区。
步骤8:物联网设备同步分块计算当前下载的升级代码区校验和。当检测到最后一块时,将接收到的升级代码区长度,校验和以及升级标记写入到升级配置区特殊地址。
步骤9:物联网设备通过内部机制启动重启流程。
步骤10:程序启动后,进入Boot loader代码段,程序检测升级配置区是否有升级的升级标记。
步骤11.1:如果没有该标记,则表示步骤S7存在断电或者是无待升级的应用程序,程序跳转到原始版本继续运行。
步骤11.2:如果有该标记,计算升级代码区校验和。
步骤12:将计算获得的升级代码区校验和,与升级配置区记录的校验和比较。
步骤13.1:如果不一致,应用程序跳转到原始版本继续运行;
步骤13.2:如果一致,将升级代码区的升级内容拷贝到APP代码区。
步骤14:拷贝完成后,再次比较升级代码区和APP区内容是否一致:
步骤14.1:如果不一致,跳转到步骤S13.2;
步骤14.2:擦除升级配置区升级的升级标记,校验和和长度,应用程序通过内部机制完成重启。
步骤15:应用程序进入引导加载区(Boot loader区),无该升级标记,跳转到已升级的代码段,升级成功。
本申请物联网嵌入式设备发货后,根据实际需求,通过IOT平台实时的推送升级URL,物联网设备通过URL去下载固件程序后,自动完成固件更新,无需任何人工干预,同时保持原有的配置参数,包括IP、网关和路由信息不变;
另外,支持多台设备并行升级,充分利用MQTT强大的订阅和发布功能,同时利用HTTP的高并发,极大的缩减人工成本。
第二方面,参见图4所示,本申请实施例提供一种物联网设备升级装置,其基于第一方面提及的物联网设备升级方法,用于升级安装在物联网设备上的应用程序,该装置包括:
代码获取模块,其用于下载更新文件,丢弃所述更新文件中的引导加载区,将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验;
程序升级模块,其用于校验合格后,重启所述应用程序,基于所述更新文件中的APP代码,通过Boot Load引导程序进行应用程序升级。
需要说明的是,该装置还包括存储区域划分模块,其用于配置引导加载区、APP代码区、升级代码区以及升级配置区;其中,
引导加载区用于存储应用程序对应的引导加载程序代码;
APP代码区用于存储应用程序对应的APP代码;
升级代码区用于存储更新文件中的APP代码;
APP代码为升级时会发生变更的代码。
本申请实施例中,通过对物联网设备的存储区域进行分区,在不影响正常运作的前提下,基于在对应分区存储的升级代码,进行代码校验以及应用程序更新,为日常工作提供便利。
进一步的,所述代码获取模块还用于在预设的升级配置区内生成一升级标记信息以及用于表示代码完整性的第一完整校验码;
所述代码获取模块还用于所述应用程序重启后,检测是否存在所述升级标记信息,若存在则计算获得用于表示代码完整性的第二完整校验码,与所述第一完整校验码比对,若通过比对,则允许进行升级。
进一步的,所述装置还包括程序回退模块,其用于未检测到所述升级标记信息时,清除所述升级标记信息,将所述应用程序回退到升级前的版本。
进一步的,所述程序升级模块还用于若基于所述更新文件中的APP代码进行应用程序升级时出现断电情况,待断电重启后,检测是否存在所述升级标记信息;
所述程序升级模块还用于若存在所述升级标记信息,则继续基于所述更新文件中的APP代码进行应用程序升级。
进一步的,所述装置还包括代码比对模块,其用于待应用程序升级完成后,将APP代码区的APP代码与所述升级代码区中所述更新文件的APP代码进行比对;
所述代码比对模块还用于若两者一致,则擦除升级配置区内的升级标记信息以及第一完整校验码;
所述代码比对模块还用于若两者不一致,则将所述升级代码区中所述更新文件的APP代码拷贝至所述APP代码区,拷贝完成后,再次比较两者是否一致,如果一致则擦除所述升级标记信息以及所述第一完整校验码,若两者不一致时,再次进行拷贝。
进一步的,所述代码获取模块还用于基于URL地址下载所述更新文件,下载程序根据内部运行机制丢弃所述更新文件中的引导加载区,识别APP代码区,获得所述APP代码。
进一步的,所述装置还包括升级提示模块,其用于将已安装的应用程序的版本信息与服务器的应用程序的版本信息进行比对;
所述升级提示模块还用于当两个版本信息比对不一致时,生成升级提示;其中,
所述升级提示包括升级URL和应用程序最新版本号。
进一步的,所述代码获取模块还用于识别所述升级代码区中的所述APP代码的长度;
所述代码获取模块还用于将识别出的所述升级代码区中的所述APP代码与所述更新文件中的APP代码的长度进行比对,若长度一致并且数据相同则验证合格;
所述代码获取模块还用于若验证合格,将所述APP代码的长度以及第一完整校验码写入所述升级配置区,并更新升级标记信息。
进一步的,所述程序回退模块还用于当所述应用程序升级失败后,基于预设的APP代码区中的所述APP代码,对所述应用程序进行修复。
需要说明的是,本申请实施例提供的物联网设备升级装置,其对应的技术问题、技术手段以及技术效果,从原理层面与物联网设备升级方法的原理类似。
需要说明的是,在本申请中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种物联网设备升级方法,其特征在于,所述方法用于升级安装在物联网设备上的应用程序,所述方法包括以下步骤:
下载更新文件,丢弃所述更新文件中的引导加载区,将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验;
校验合格后,重启所述应用程序,基于所述更新文件中的APP代码,通过Boot Load引导程序进行应用程序升级。
2.如权利要求1所述的物联网设备升级方法,其特征在于,所述更新文件中的APP代码通过完整性校验后,应用程序升级之前,所述方法还包括以下步骤:
在预设的升级配置区内生成一升级标记信息以及用于表示代码完整性的第一完整校验码;
重启所述应用程序,若检测到所述升级标记信息,则计算获得用于表示代码完整性的第二完整校验码,与所述第一完整校验码比对,若通过比对,则允许进行升级。
3.如权利要求1所述的物联网设备升级方法,其特征在于,所述更新文件中的APP代码通过完整性校验后,应用程序升级之前,所述方法还包括以下步骤:
若未检测到所述升级标记信息,则清除所述升级标记信息,将所述应用程序回退到升级前的版本。
4.如权利要求2所述的物联网设备升级方法,其特征在于,所述方法还包括以下步骤:
若基于所述更新文件中的APP代码进行应用程序升级时出现断电情况,待断电重启后,检测是否存在所述升级标记信息;
若存在所述升级标记信息,则继续基于所述更新文件中的APP代码进行应用程序升级。
5.如权利要求2所述的物联网设备升级方法,其特征在于,所述方法还包括以下步骤:
待应用程序升级完成后,将APP代码区的APP代码与所述升级代码区中所述更新文件的APP代码进行比对;
若两者一致,则擦除升级配置区内的升级标记信息以及第一完整校验码;
若两者不一致,则将所述升级代码区中所述更新文件的APP代码拷贝至所述APP代码区,拷贝完成后,再次比较两者是否一致,如果一致则擦除所述升级标记信息以及所述第一完整校验码,若两者不一致时,再次进行拷贝。
6.如权利要求1所述的物联网设备升级方法,其特征在于,下载更新文件,丢弃所述更新文件中的引导加载区,将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验中,包括以下步骤:
基于URL地址下载所述更新文件,下载程序根据内部运行机制丢弃所述更新文件中的引导加载区,识别APP代码区,获得所述APP代码;
将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验。
7.如权利要求1所述的物联网设备升级方法,其特征在于,所述方法还包括以下步骤:
将已安装的应用程序的版本信息与服务器的应用程序的版本信息进行比对;
当两个版本信息比对不一致时,生成升级提示;其中,
所述升级提示包括升级URL和应用程序最新版本号。
8.如权利要求2所述的物联网设备升级方法,其特征在于,所述物联网设备从服务平台下载已安装的应用程序的更新文件,获取所述更新文件中的APP代码时,还会获取所述更新文件中的APP代码的长度;
所述在预设的升级配置区内生成一升级标记信息以及用于表示代码完整性的第一完整校验码中,包括以下步骤:
识别所述升级代码区中的所述APP代码的长度;
将识别出的所述升级代码区中的所述APP代码与所述更新文件中的APP代码的长度进行比对,若长度一致并且数据相同则验证合格;
若验证合格,将所述APP代码的长度以及第一完整校验码写入所述升级配置区,并更新升级标记信息。
9.如权利要求1所述的物联网设备升级方法,其特征在于,当所述应用程序升级失败后,所述方法还包括以下步骤:
基于预设的APP代码区中的所述APP代码,对所述应用程序进行修复。
10.一种物联网设备升级装置,其特征在于,所述装置用于升级安装在物联网设备上的应用程序,所述装置包括:
代码获取模块,其用于下载更新文件,丢弃所述更新文件中的引导加载区,将所述更新文件中的APP代码存储至预设的升级代码区并进行完整性校验;
程序升级模块,其用于校验合格后,重启所述应用程序,基于所述更新文件中的APP代码,通过Boot Load引导程序进行应用程序升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211718118.9A CN116319314A (zh) | 2022-12-29 | 2022-12-29 | 一种物联网设备升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211718118.9A CN116319314A (zh) | 2022-12-29 | 2022-12-29 | 一种物联网设备升级方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116319314A true CN116319314A (zh) | 2023-06-23 |
Family
ID=86780419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211718118.9A Pending CN116319314A (zh) | 2022-12-29 | 2022-12-29 | 一种物联网设备升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116319314A (zh) |
-
2022
- 2022-12-29 CN CN202211718118.9A patent/CN116319314A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111212121B (zh) | 一种用于物联网设备的空中固件升级方法及系统 | |
CN107179909B (zh) | 软件升级方法、装置及计算机可读存储介质 | |
US7934210B1 (en) | System and method for updating one or more programs and their environment | |
US7971199B1 (en) | Mobile device with a self-updating update agent in a wireless network | |
CN101436138B (zh) | 一种用于软件升级且动态回滚的控制装置以及控制方法 | |
KR100915564B1 (ko) | 실행하는 동안 애플리케이션을 업그레이드하기 위한 방법,소프트웨어 및 장치 | |
CN113282316A (zh) | 一种物联网设备远程升级方法及装置 | |
CN103885806B (zh) | 机顶盒的系统软件在线升级的实现方法和装置 | |
US20040123282A1 (en) | Mobile handset with a fault tolerant update agent | |
US20110004871A1 (en) | Embedded electronic device and firmware updating method thereof | |
CN110083374B (zh) | 一种升级回滚方法、系统及终端设备 | |
CN1936844A (zh) | 用于更新软件的方法和系统 | |
JP2005502971A (ja) | ソフトウェアをアップデートする方法、装置、および、システム | |
CN101778376A (zh) | 一种实现固件无线更新的方法及装置 | |
CN110597545B (zh) | 一种基于ota组件的热补丁智能升级方法及系统 | |
CN106775873B (zh) | 更新手机软件、获取补丁文件的方法及设备 | |
CN111562934A (zh) | 一种基于热补丁的软件系统升级方法、终端及存储介质 | |
KR100986487B1 (ko) | 고장 허용 갱신 에이전트를 구비한 모바일 핸드세트 | |
CN110580167A (zh) | 一种系统升级方法、智能设备及服务器 | |
CN113157303A (zh) | 升级方法、嵌入式系统、终端及计算机存储介质 | |
CN112015447A (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
CN110597532A (zh) | 一种数据采集模块及其固件升级方法和存储介质 | |
CN111913733A (zh) | 制作自动升级包方法、装置、计算机设备和存储介质 | |
CN112256283A (zh) | 用于Android设备的应用版本管控方法及装置 | |
CN116319314A (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 |