CN111897562A - 一种程序升级方法和设备 - Google Patents
一种程序升级方法和设备 Download PDFInfo
- Publication number
- CN111897562A CN111897562A CN202010706675.3A CN202010706675A CN111897562A CN 111897562 A CN111897562 A CN 111897562A CN 202010706675 A CN202010706675 A CN 202010706675A CN 111897562 A CN111897562 A CN 111897562A
- Authority
- CN
- China
- Prior art keywords
- area
- data
- upgrading
- application program
- program
- 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
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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种程序升级方法,方法包括:将FLASH程序存储器划分为第一区以及第二区,第一区为应用程序区,用于运行应用程序,第二区用于对应用程序进行升级并在第一区损坏时运行备用应用程序;第二区获取升级数据并根据升级数据对第一区的应用程序进行升级;启动升级后的应用程序,若应用程序无法正常运行,跳转到第二区,启动第二区运行备用应用程序,本发明提供的程序升级方法,能够在第一区损坏或者第一区内的应用程序升级失败后仍能保证应用程序正常运行,不耽误用户使用。
Description
技术领域
本发明涉及程序升级领域,更为具体而言,涉及一种程序升级方法和设备。
背景技术
随着社会的飞速发展,人们对电子产品功能的多样性和稳定性有了更高的要求。为了满足人们的需求,厂商一般都提供在线升级的服务。在线升级服务最大的作用就是当用户产品软件有漏洞或者产品自身的功能需要更新时,用户能够根据厂商提供的升级包在线升级(如手机、电脑等)。
传统的升级方案是将一个程序分为两块:一块是BOOT区专门用来跳转APP区和修改APP区。另一块为APP区即用户正常使用的功能区。此方案的缺点是:当APP区损坏时,在不重新烧录的情况下程序不能够正常使用从而影响用户的使用体验。
现有技术中为了解决该问题将程序分为三块,分别是BOOT区、APP1区、APP2区,但是这种方法会使得代码在设计的过程中boot区空间预留一小部分以防boot区后面扩展。此方法一定程度上浪费了flash空间。这个在性能较弱的单片机上是至关重要的。
发明内容
针对上述问题,本发明提供一种程序升级方法,在不浪费FLASH空间的情况下,有效的防止当APP区损坏或升级失败时,影响用户正常使用的问题。
本发明提供的程序升级方法,包括将FLASH程序存储器划分为第一区以及第二区,第一区为应用程序区,用于运行应用程序,第二区用于对应用程序进行升级并在第一区损坏时运行备用应用程序;第二区获取升级数据并根据升级数据对第一区的应用程序进行升级;启动升级后的应用程序,若应用程序无法正常运行,跳转到第二区,启动第二区运行备用应用程序。
进一步的,第二区获取升级数据之后还包括:对升级数据进行数据校验,判断升级数据是否完整,若完整,根据升级数据对第一区的程序进行升级,否则,重新获取升级数据。
进一步的,方法还包括:将原始升级数据根据预设的加密算法进行加密生成加密升级数据,将加密升级数据传输至第二区;第二区接收加密升级数据之后,根据预设的解密策略对加密升级数据进行解密获得原始升级数据;根据原始升级数据对第一区的应用程序进行升级。
进一步的,预设的加密算法为校验和加密算法以及TEA加密算法。
进一步的,在启动升级后的应用程序之前,方法还包括:对应用程序的全部数据进行校验;若校验通过,启动应用程序,若校验不通过,跳转到第二区,启动备用应用程序。
进一步的,若应用程序的全部数据校验通过并且应用程序成功启动,第二区根据升级数据对备用应用程序进行升级。
进一步的,方法还包括:第二区获取升级数据并将升级数据与历史升级数据进行比较,判断升级数据是否为最新升级数据,若升级数据是最新升级数据,根据升级数据对应用程序进行升级,否则,重新获取升级数据。
本发明还提供一种计算机设备,包括存储器和处理器,其中存储器,存储有计算机代码;处理器,配置为执行计算机代码以使计算机设备执行上述方法。
本发明提供的程序升级方法,至少具有以下有益效果:
将FLASH程序存储器分为两块:第一区以及第二区,第一区为应用程序区,用于运行应用程序,第二区用于对应用程序进行升级并在第一区损坏时运行备用应用程序均可以用于运行程序,当第一区损坏或者出现升级失败的情形无法正常的启动、运行程序,则跳转至第二区,运行第第二区中的备用应用程序,避免出现因第一区损坏或升级失败而导致用户无法正常使用程序的情况,有效提高用户体验。
另外,在启动第一区中的应用程序之前,对第一区中的全部程序数据进行验证,一旦第一区内的程序数据有任何问题都能够及时在启动之前发现,确保程序的安全、可靠。
附图说明
图1为本发明一些实施方式中的程序升级方法流程图;
图2为本发明一些实施方式中的对升级数据加解密流程图;
图3为本发明一些实施方式中的对应用程序数据进行验证的流程图;
图4为本发明一些实施方式中的一种计算机设备的结构示意图。
具体实施方式
为了更清楚的说明本发明实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
参见图1,图1示出了根据本发明一些实施方式的程序升级方法的流程示意图。该方法可包括:步骤S101、步骤S102和步骤S103。下面结合具体的实施方式讨论上述的步骤。
步骤S101,将FLASH程序存储器划分为第一区以及第二区。
具体的,第一区为APP区,即应用程序区,用于运行应用程序;第二区为BOOT+APP区,用于对应用程序进行升级并在第一区损坏时运行备用应用程序。
步骤S102:第二区获取升级数据并根据升级数据对第一区的应用程序进行升级。
步骤S103:启动升级后的应用程序,若应用程序无法正常运行,跳转到第二区,启动第二区运行备用应用程序。
在本实施方式中,将FLASH程序存储器分为第一区及第二区,第一区用于运行应用程序,第二区用于修改应用程序,对应用程序进行升级,同时,在第一区损坏无法正常启动应用程序时运行备用应用程序。一旦第一区出现损坏或者升级失败的情形导致应用程序无法正常启动,则跳转到第二区,启动备用应用程序。从而确保不会影响到程序的正常使用,提高程序稳定性。
进一步的,由于本实施方式中,是在原有的BOOT区(用于程序升级)中增加一个备用的APP区,BOOT区与备用的APP区混为一体,相比于在BOOT区以外再增加一个备用APP区,不会存在FLASH空间浪费问题。
在本发明的又一种实施方式中,第二区获取升级数据之后还包括对升级数据进行数据校验,判断升级数据是否完整,若完整,根据升级数据对第一区的程序进行升级,否则,重新获取升级数据。
在程序升级过程中增加一步升级数据的完整性验证步骤,若发现升级数据不完整,则不会启动后续的程序升级并重新获取升级数据直至获得完整的升级数据后启动程序升级,以免出现在程序升级过程中由于升级数据不完整而造成的升级失败现象。
在本发明的又一种实施方式中,如图2所示,程序升级方法还包括以下步骤:
步骤S201:将原始升级数据根据预设的加密算法进行加密生成加密升级数据,将加密升级数据传输至第二区;
具体的,加密算法指的是将输入的明文变为输出的密文的算法。常用加密算法有AES加密算法(高级加密标准算法)、RSA加密算法、ECC(椭圆加密算法)等等,在实际的升级数据传输过程中,技术人员可以根据实际需要选择适当的加密算法对升级数据进行加密,本发明对此不作限制。
步骤S202:第二区接收加密升级数据之后,根据预设的解密策略对加密升级数据进行解密获得原始升级数据。
步骤S203:根据原始升级数据对第一区的应用程序进行升级。
在本实施方式中,在程序升级方法中增加升级数据的加密与解密过程,可以有效防止升级数据在传输过程中遭到人为的破环,确保程序安全。
在本发明的又一种实施方式中,预设的加密算法为校验和加密算法及TEA加密算法。
具体的,根据校验和加密算法以及TEA加密算法对原始升级数据进行加密包括以下内容:
以帧为单位对原始升级数据进行划分,具体的在本实施方式中每帧内的数据为6个字节,例如000102030000,将每帧内的数据进行累加得出累加结果06,将累加结果拆分为2个字节0006,并且将拆分后的累加结果置于对应帧内的数据末端生成新的数据帧,也即新的数据帧中的数据为8个字节“0001020300000600”采用16字节的密钥对新的数据帧内的数据进行加密获得加密升级数据。
通过上述方法,在发送升级数据给第二区之前,先对升级数据进行加密,可以有效防止升级数据在发送过程中遭到专业人士的破解和损坏,给程序带来更好的安全性。
在本发明的又一种实施方式中,如图3所示,在启动升级后的应用程序之前,方法还包括以下步骤:
步骤S301:对应用程序的全部数据进行校验,判断是否校验通过,若校验通过,执行步骤S302,否则执行步骤S303。
步骤S302:启动应用程序。
步骤S303:跳转到第二区,启动备用应用程序。
在启动升级后的应用程序之前,对第一区内的应用程序的全部数据进行校验,一旦应用程序中的数据中存在任何的错误,直接跳转到第二区均能在事前及时发现并解决,无需等到出现问题后再进行校验。
在本发明的又一种实施方式中,在上一实施方式的基础之上,若应用程序的全部数据校验通过并且应用程序成功启动,第二区根据升级数据对备用应用程序进行升级。
本实施方式中,升级之后的应用程序通过数据校验并且启动成功,再升级第二区的备用应用程序,由此使第一区、第二区的应用程序、备用应用程序均为最新版本的程序,且无论对第一区还是第二区进行升级,均有另一块区作为备用区,使程序升级过程更加安全可靠。
在本发明的又一种实施方式中,方法还包括:第二区获取升级数据并将升级数据与历史升级数据进行比较,判断升级数据是否为最新升级数据,若升级数据是最新升级数据,根据升级数据对应用程序进行升级,否则,重新获取升级数据。
在本实施方式中使用升级数据对应用程序进行升级之前,先将升级数据与历史升级数据进行对比,以此判断升级数据是否是最新版本的升级数据,避免出现重复升级现象。具体的,可以将本次升级数据的升级版本号与历史升级数据的升级版本号对比,从而判断本次的升级数据是否为最新版本的升级数据。
本发明申请的实施方式还提供了一种计算机设备,如图4所示,计算机设备400包括存储器401和处理器402,其中,存储器,存储有计算机代码;处理器,配置为执行计算机代码以使计算机设备执行上面的方法。
本发明提供的程序升级方法,在不浪费FLASH空间的情况下,解决了当APP区损坏或升级失败造成的程序无法正常启动的问题,提升用户体验,同时通过对升级数据传输过程中的加密,确保了数据安全,在启动应用程序之前,对应用程序的全部数据进行校验,及时发现应用程序的问题,避免应用程序运行过程中出现问题,影响用户使用。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
Claims (8)
1.一种程序升级方法,其特征在于,所述方法包括:
将FLASH程序存储器划分为第一区以及第二区,所述第一区为应用程序区,用于运行应用程序,所述第二区用于对所述应用程序进行升级并在所述第一区损坏时运行备用应用程序;
所述第二区获取升级数据并根据所述升级数据对所述第一区的应用程序进行升级;
启动升级后的所述应用程序,若所述应用程序无法正常运行,跳转到所述第二区,启动所述第二区运行所述备用应用程序。
2.根据权利要求1所述的程序升级方法,其特征在于,所述第二区获取升级数据之后还包括:
对所述升级数据进行数据校验,判断所述升级数据是否完整,若完整,根据所述升级数据对所述第一区的程序进行升级,否则,重新获取升级数据。
3.根据权利要求1所述的程序升级方法,其特征在于,所述方法还包括:
将原始升级数据根据预设的加密算法进行加密生成加密升级数据,将所述加密升级数据传输至所述第二区;
所述第二区接收所述加密升级数据之后,根据预设的解密策略对所述加密升级数据进行解密获得所述原始升级数据;
根据所述原始升级数据对所述第一区的应用程序进行升级。
4.根据权利要求3所述的程序升级方法,其特征在于,所述预设的加密算法为校验和加密算法以及TEA加密算法。
5.根据权利要求1所述的程序升级方法,其特征在于,在启动升级后的所述应用程序之前,方法还包括:
对所述应用程序的全部数据进行校验;
若校验通过,启动所述应用程序,若校验不通过,跳转到所述第二区,启动所述备用应用程序。
6.根据权利要求5所述的程序升级方法,其特征在于,若所述应用程序的全部数据校验通过并且所述应用程序成功启动,所述第二区根据所述升级数据对所述备用应用程序进行升级。
7.根据权利要求1所述的程序升级方法,其特征在于,所述方法还包括:
所述第二区获取升级数据并将所述升级数据与历史升级数据进行比较,判断所述升级数据是否为最新升级数据,若所述升级数据是最新升级数据,根据所述升级数据对所述应用程序进行升级,否则,重新获取升级数据。
8.一种计算机设备,包括存储器和处理器,其中
存储器,存储有计算机代码;
处理器,配置为执行所述计算机代码以使所述计算机设备执行权利要求1到7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010706675.3A CN111897562A (zh) | 2020-07-21 | 2020-07-21 | 一种程序升级方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010706675.3A CN111897562A (zh) | 2020-07-21 | 2020-07-21 | 一种程序升级方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111897562A true CN111897562A (zh) | 2020-11-06 |
Family
ID=73190411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010706675.3A Pending CN111897562A (zh) | 2020-07-21 | 2020-07-21 | 一种程序升级方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897562A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306535A (zh) * | 2020-11-10 | 2021-02-02 | 明峰医疗系统股份有限公司 | 一种高可靠性mcu远程升级系统和方法 |
-
2020
- 2020-07-21 CN CN202010706675.3A patent/CN111897562A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306535A (zh) * | 2020-11-10 | 2021-02-02 | 明峰医疗系统股份有限公司 | 一种高可靠性mcu远程升级系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107346252B (zh) | 应用更新方法和装置 | |
KR101299099B1 (ko) | 임베디드 시스템에서 최적화된 가상화 모듈을 관리하는 장치 및 방법 | |
CN111832013A (zh) | 固件升级方法及装置 | |
EP3026557A1 (en) | Method and device for providing verifying application integrity | |
US20150095652A1 (en) | Encryption and decryption processing method, apparatus, and device | |
WO2019062635A1 (zh) | 升级方法和装置 | |
CN102981881A (zh) | 一种防止移动终端升级到非法固件版本的方法及系统 | |
KR20110093468A (ko) | 사용자 단말 장치, 서버 및 그 제어 방법 | |
CN104166564A (zh) | 一种显示终端程序更新方法 | |
CN109857385B (zh) | 应用程序文件打包方法、安装方法及启动方法 | |
CN111240709A (zh) | 一种基于android系统的POS设备的固件升级方法及系统 | |
CN114780127A (zh) | 嵌入式设备固件更新方法、嵌入式设备、开发端设备 | |
CN106020882A (zh) | 一种应用升级方法、智能终端及升级系统 | |
WO2014206170A1 (zh) | 一种验证方法及设备 | |
CN113703813A (zh) | 内核升级方法、装置、设备及计算机可读存储介质 | |
CN111177709A (zh) | 一种终端可信组件的执行方法、装置及计算机设备 | |
CN113961226B (zh) | 一种软件开发工具包修复方法、终端、服务器及设备 | |
CN110362333A (zh) | 一种客户端升级阻碍的快速解决方法、装置和电子设备 | |
CN111897562A (zh) | 一种程序升级方法和设备 | |
CN111176685A (zh) | 一种升级方法及装置 | |
CN114268614A (zh) | 一种设备固件升级方法、装置及系统 | |
CN111400771A (zh) | 目标分区的校验方法及装置、存储介质、计算机设备 | |
CN114143197B (zh) | 物联网设备ota升级方法、装置、设备及可读存储介质 | |
CN111176693B (zh) | 一种数字电视系统的升级方法 | |
CN113885907A (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 |