CN109614128B - 程序升级方法、装置、计算机设备和存储介质 - Google Patents

程序升级方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN109614128B
CN109614128B CN201811359032.5A CN201811359032A CN109614128B CN 109614128 B CN109614128 B CN 109614128B CN 201811359032 A CN201811359032 A CN 201811359032A CN 109614128 B CN109614128 B CN 109614128B
Authority
CN
China
Prior art keywords
program file
subsection
old program
value
old
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.)
Active
Application number
CN201811359032.5A
Other languages
English (en)
Other versions
CN109614128A (zh
Inventor
邓利斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Guanghetong Wireless Communication Software Co ltd
Original Assignee
Fibocom Wireless Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fibocom Wireless Inc filed Critical Fibocom Wireless Inc
Priority to CN201811359032.5A priority Critical patent/CN109614128B/zh
Publication of CN109614128A publication Critical patent/CN109614128A/zh
Application granted granted Critical
Publication of CN109614128B publication Critical patent/CN109614128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一标志位称为第二标志位,且类似地,可将第二标志位称为第一标志位。第一标志位和第二标志位两者都是标志位,但其不是同一标志位。
本申请实施例提供的程序升级方法,可以应用于如图1所示的应用环境中。如图1所示,该应用环境包括计算机设备110。计算机设备110可以依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段。计算机设备110可以将第一标志位的值置为与旧程序文件子段对应的值,再对旧程序文件子段进行备份。计算机设备110可以将第二标志位的值置为与旧程序文件子段对应的值,再根据差分包子段以及旧程序文件子段生成新程序文件子段。计算机设备110可以根据新程序文件子段进行程序升级。其中,第一标志位的值和第二标志位的值用于标记程序升级的进度。可以理解的是,计算机设备110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
在一个实施例中,如图2所示,提供了一种程序升级方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:
步骤202,依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段。
差分升级是指在对程序进行升级的时候,利用旧程序文件以及新程序文件之间的差异生成差分包,进一步实现程序的升级。由于差分包是根据旧程序文件以及新程序文件之间的差异生成的,因此,差分包中可以包含有旧程序文件的文件长度、新程序文件的文件长度、差分包的长度以及差分包的内容。其中,旧程序文件可以是计算机设备中存储的旧版本的程序文件,即,旧程序文件可以是需要进行升级的程序文件。新程序文件可以是旧程序文件升级完成后得到的程序文件。
计算机设备可以获取本地存储的旧程序文件,计算机设备可以从其他计算机设备中获取与旧程序文件对应的差分包。计算机设备可以依次对获取的旧程序文件以及旧程序文件对应的差分包进行分段读取。其中,旧程序文件以及与旧程序文件对应的差分包可以被分成多段,旧程序文件被划分后,可以得到多个旧程序文件子段,差分包被划分后,可以得到多个差分包子段。例如,计算机设备获取的旧程序文件为一个1000KB(Kilobyte,千字节)的二进制文件,计算机设备可以将旧程序文件分成3段,第一段旧程序文件子段的长度为400KB、第二段旧程序文件子段的长度为400KB、第三段旧程序文件子段的长度为200KB,计算机设备可以对旧程序文件对应的差分包进行与旧程序文件对应的分段,第一段差分包中包含的第一段旧程序文件的文件长度为400KB、第二段差分包中包含的第二段旧程序文件的文件长度为400KB、第三段差分包中包含的第三段旧程序文件的文件长度为200KB。
步骤204,将第一标志位的值置为与旧程序文件子段对应的值。
第一标志位的值可以用于标记升级进度,可以存储在计算机设备的内存中。第一标志位的值可以是具体的数值,例如,第一标志位的值可以是1、2、3等数值。计算机设备在得到差分包子段以及旧程序文件子段后,可以将第一标志位的值置为与旧程序文件子段对应的值。例如,计算机设备读取旧程序文件以及差分包后,得到了第一段旧程序文件子段以及第一段差分包子段,计算机设备可以将第一标志位的值置为1;计算机设备得到的是第二段旧程序文件子段以及第二段差分包子段时,计算机设备可以将第一标志位的值置为2。
步骤206,对旧程序文件子段进行备份。
计算机设备将第一标志位的值置为与旧程序文件子段对应的值之后,可以对得到的旧程序文件子段进行备份。具体的,计算机设备可以在硬盘中分配与旧程序文件子段文件长度对应的内存,再将旧程序文件子段备份到对应的内存中。
步骤208,将第二标志位的值置为与旧程序文件子段对应的值。
第二标志位的值可以用于标记升级进度,可以存储在计算机设备的内存中。其中,第一标志位的值的存储位置可以与第二标志位的值的存储位置不同。第二标志位的值可以是具体的数值,例如,第二标志位的值可以是1、2、3等数值。计算机设备在将旧程序文件子段备份成功后,可以将第二标志位的值置为与旧程序文件子段对应的值。
步骤210,根据差分包子段以及旧程序文件子段生成新程序文件子段。
差分包子段中可以包含有旧程序文件子段的文件长度、新程序文件子段的文件长度、差分包子段的长度以及差分包子段的内容。计算机设备在获取到差分包子段以及旧程序文件子段后,可以根据差分包子段以及旧程序文件子段生成新程序文件子段。
步骤212,根据新程序文件子段进行程序升级,第一标志位的值和第二标志位的值用于标记升级进度。
计算机设备在生成新程序文件子段后,可以根据生成的新程序文件子段进行程序升级。
在本实施例中,计算机设备通过依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段,将第一标志位的值置为与旧程序文件子段对应的值,对旧程序文件子段进行备份,将第二标志位的值置为与旧程序文件子段对应的值,根据差分包子段以及旧程序文件子段生成新程序文件子段,根据新程序文件子段进行程序升级,第一标志位的值和第二标志位的值用于标记升级进度。在程序升级的过程中,得到旧程序文件子段的时候,就将第一标志位的值置为与旧程序文件子段对应的值,当对旧程序文件子段进行备份后,就将第二标志位的值置为与旧程序文件子段对应的值,这样在升级异常的时候,也能知道当前更新的进度,可以利用标记的进度来继续升级,从而避免发生故障。
在一个实施例中,提供的一种程序升级方法还可以包括得到差分包子段以及旧程序文件子段的过程,具体包括:获取分段读取差分包得到的差分包子段;从差分包子段中获取与差分包子段对应的旧程序文件子段的文件长度;从旧程序文件中获取与文件长度对应的旧程序文件子段。
计算机设备在获取到差分包以及旧程序文件后,可以先获取分段读取差分包得到的差分包子段。由于差分包子段中包含有旧程序文件子段的文件长度、新程序文件子段的文件长度、差分包子段的长度以及差分包子段的内容,计算机设备可以获取差分包子段中查找到旧程序文件子段的文件长度。计算机设备可以从旧程序文件中截取与旧程序文件子段的文件长度对应的旧程序文件子段。例如,计算机设备获取的差分包子段中包含的旧程序文件子段的文件长度为400KB,旧程序文件的总长度为1000KB,计算机设备可以从总长度为1000KB的旧程序文件中截取文件长度为400KB的旧程序文件子段。
在本实施例中,计算机设备通过获取分段读取差分包得到的差分包子段,从差分包子段中获取与差分包子段对应的旧程序文件子段的文件长度,从旧程序文件中获取与文件长度对应的旧程序文件子段。由于计算机设备是根据差分包子段中旧程序文件子段的文件长度,获取到旧程序文件子段,计算机设备获取到的旧程序文件子段与计算机设备获取的差分包子段是一一对应的,计算机设备根据差分包子段就可以获取到旧程序文件子段,提高了获取旧程序文件子段的效率。
在一个实施例中,提供一种程序升级方法还可以包括获取旧程序文件子段的过程,具体包括:获取旧程序文件;按照文件长度从旧程序文件中顺序截取旧程序文件子段。
计算机设备在获取差分包之后,可以根据差分包获取到对应的旧程序文件。计算机设备在获取到差分包后,可以进一步分段读取差分包,得到差分包子段。计算机设备可以根据差分包子段获取到对应的旧程序文件子段的文件长度,并根据获取到的文件长度从旧程序文件中截取旧程序文件子段。具体的,计算机设备可以按照文件长度对旧程序文件进行顺序截取。例如,计算机设备获取到的旧程序文件的总长度为1000KB,从差分包子段中获取到的对应的旧程序文件子段的文件长度为400KB,计算机设备可以从旧程序文件中顺序截取文件长度为400KB的旧程序文件子段。
在本实施例中,通过获取旧程序文件,并按照文件长度从旧程序文件中顺序截取旧程序文件子段。计算机设备通过对旧程序文件进行顺序截取,可以避免在获取旧程序文件子段在截取的过程中被漏掉,从而提高获取旧程序文件子段的效率。
在一个实施例中,提供的一种程序升级方法还可以包括升级异常时的处理过程,具体包括:当升级异常时,分别获取第一标志位的值和第二标志位的值;当第一标志位的值和第二标志位的值相等时,获取与第一标志位的值对应的备份后的旧程序文件子段;从获取的备份后的旧程序文件子段起,继续执行根据差分包子段以及旧程序文件子段生成新程序文件子段的步骤。
升级异常是指计算机设备在程序升级的过程中发生的异常情况导致升级被中断。例如,升级异常可以是指计算机设备在程序升级的过程中突然断电,导致升级被中断。在进行程序升级的过程中,计算机设备可以对程序升级的过程进行检测。当检测到升级异常时,计算机设备可以分别获取第一标志位的值以及第二标志位的值。具体的,由于第一标志位的值的存储位置可以与第二标志位的值的存储位置不同,计算机设备可以分别从不同的存储位置获取第一标志位的值以及第二标志位的值。
第一标志位的值是在对旧程序文件子段进行备份之前置为与旧程序文件子段对应的值的;第二标志位的值是在对旧程序文件子段进行备份之后置为与旧程序文件子段对应的值的。计算机设备在升级异常重启之后,计算机设备可以根据第一标志位的值以及第二标志位的值确定程序升级异常时的升级进度。
计算机设备在获取到第一标志位的值以及第二标志位的值以后,可以将第一标志位的值与第二标志位的值进行比较。当计算机设备得到的比较结果是第一标志位的值和第二标志位的值相等时,表示升级异常的过程未发生在旧程序文件子段备份期间,则计算机设备中已经备份有旧程序文件子段。计算机设备可以获取与第一标志位的值对应的备份后的旧程序文件子段。例如,第一标志位的值为2,对应的备份后的旧程序文件子段为备份后的第二段旧程序文件子段。
计算机设备在获取到备份后的第二段旧程序文件子段后,可以从获取的第二段旧程序文件子段起,继续执行根据差分包子段以及旧程序文件子段生成新程序文件子段的步骤。
在本实施例中,当升级异常计算机设备重启,且第一标志位的值与第二标志位的值相等时,计算机设备可以判断出升级异常未发生在旧程序文件子段备份期间,计算机设备可以从备份的旧程序文件子段起,继续执行根据差分包子段以及旧程序文件子段生成新程序文件子段的步骤。计算机设备可以通过判断第一标志位的值以及第二标志位的值定位到发生升级异常的阶段,并从升级异常的阶段继续进行程序升级,可以避免计算机设备在进行程序升级的过程中发生故障。
在另一个实施例中,提供的一种程序升级方法还可以包括升级异常时的处理过程,具体包括:当第一标志位的值和第二标志位的值不相等时,获取与第一标志位的值对应的旧程序文件子段;从当前获取的旧程序文件子段起,继续执行对旧程序文件子段进行备份的步骤。
当第一标志位的值和第二标志位的值不相等时,表示升级异常的过程发生在旧程序文件子段备份期间,说明旧程序文件子段的备份并没有完成,此时,计算机设备可以获取与第一标志位的值对应的旧程序文件子段,并从当前获取的旧程序文件子段起,继续执行对旧程序文件子段进行备份的步骤。
在本实施例中,当计算机设备中旧程序文件子段的备份没有完成就发生了升级异常时,计算机设备可以获取与第一标志位的值对应的旧程序文件子段,并从当前获取的旧程序文件子段起,继续执行对旧程序文件子段进行备份的步骤。计算机设备可以通过判断第一标志位的值以及第二标志位的值定位到发生升级异常的阶段,并从升级异常的阶段继续进行程序升级,可以避免计算机设备在进行程序升级的过程中发生故障。
在又一个实施例中,提供的一种程序升级的方法还可以包括升级异常时的处理过程,具体包括:当第一标志位的值为初始值或者第二标志位的值为初始值时,执行依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段的步骤。
其中,初始值可以是二进制的数据,用于表示第一标志位最初的值或者第二标志位最初的值。当升级发生异常,计算机设备在重启后,可以分别获取第一标志位的值以及第二标志位的值,当第一标志位的值或者第二标志位的值中存在任一值与初始值相等时,表示计算机设备在程序还未开始升级时就出现了异常,此时计算机设备可以执行依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段的步骤。
在本实施例中,若计算机设备升级异常重启后,第一标志位的值为初始值或者第二标志位的值为初始值,表示计算机设备在程序还未开始升级时就出现了异常,计算机设备可以执行依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段的步骤。计算机设备可以根据第一标志位的值或者第二标志位的值确定程序升级异常发生在哪一个阶段,从而快速的定位到程序升级异常时对应的旧程序文件子段。
在一个实施例中,提供的一种程序升级方法还可以包括程序升级的过程,具体包括:当差分包和旧程序文件读取完成时,根据已生成的新程序文件子段生成新程序文件;根据新程序文件进行程序升级。
计算机设备依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段。每当计算机设备读取了一段差分包子段以及一段旧程序文件子段后,计算机设备就可以根据读取的差分包子段和旧程序文件子段生成新程序文件子段。当计算机设备读完差分包和旧程序文件时,已经生成了多段新程序文件子段,计算机设备可以根据多段新程序文件子段生成新程序文件。计算机设备可以根据生成的新程序文件进行程序升级。
在本实施例中,当差分包和旧程序文件读取完成时,计算机设备可以根据已生成的新程序文件子段生成新程序文件,再根据新程序文件进行程序升级。只有当差分包和旧程序文件读取完成,并生成新程序文件时,计算机设备才会根据生成的新程序文件进行程序升级,可以避免发生升级故障。
在一个实施例中,提供的一种程序升级方法还可以包括制作差分包的过程,具体包括:依次分段读取旧程序文件和新程序文件,得到旧程序文件子段以及新程序文件子段;根据旧程序文件子段以及新程序文件子段生成差分包子段;当旧程序文件和新程序文件读取完成时,根据差分包子段生成差分包。
计算机设备可以依次分段读取旧程序文件和新程序文件,得到旧程序文件子段以及新程序文件子段。计算机设备可以根据旧程序文件子段以及新程序文件子段之间的差异生成差分包子段。例如,计算机设备可以根据读取的第一段旧程序文件子段以及第一段新程序文件子段生成第一段差分包子段,再根据读取的第二段旧程序文件子段以及第二段新程序文件子段生成第二段差分包子段。当旧程序文件和新程序文件读取完成时,计算机设备已经生成了多段差分包子段。每段差分包子段中包含有对应的旧程序文件子段的文件长度、新程序文件子段的文件长度、差分包子段的文件长度以及差分包子段的内容,计算机设备可以根据多段差分包子段生成差分包,差分包中可以包含有每个差分包子段的内容,即差分包中包含有各个旧程序文件子段的文件长度、各个新程序文件子段的文件长度、各个差分包子段的文件长度以及各个差分包子段的内容。
在本实施例中,计算机设备依次分段读取旧程序文件和新程序文件,得到旧程序文件子段以及新程序文件子段,根据旧程序文件子段以及新程序文件子段生成差分包子段,当旧程序文件和新程序文件读取完成时,根据差分包子段生成差分包。由于差分包是根据差分包子段生成的,所以差分包中包含有各个差分包子段的信息,计算机设备在利用差分包生成新程序文件进行程序升级的过程中,如果发生升级异常时,计算机设备可以定位到程序升级异常的具体一段差分包子段,可以从升级异常的差分包子段处继续升级,避免程序升级时发生故障。
在一个实施例中,如图3所示,提供了一种程序升级方法,具体的实现步骤如下:
步骤302,获取分段读取差分包得到的差分包子段,从差分包子段中获取与差分包子段对应的旧程序文件子段的文件长度。
步骤304,获取旧程序文件,按照文件长度从旧程序文件中顺序截取旧程序文件子段。
步骤306,将第一标志位的值置为与旧程序文件子段对应的值。
步骤308,对旧程序文件子段进行备份。
步骤310,将第二标志位的值置为与旧程序文件子段对应的值。
步骤312,根据差分包子段以及旧程序文件子段生成新程序文件子段。
步骤314,当升级异常时,分别获取第一标志位的值和第二标志位的值。
步骤316,判断第一标志位的值是否等于第二标志位的值。
步骤318,当第一标志位的值和第二标志位的值相等时,获取与第一标志位的值对应的备份后的旧程序文件子段,继续执行步骤308。
步骤320,当第一标志位的值和第二标志位的值不相等时,获取与第一标志位的值对应的旧程序文件子段,继续执行步骤306。
步骤322,判断差分包和旧程序文件是否均读取完成。
步骤324,当差分包和旧程序文件读取完成时,根据已生成的新程序文件子段生成新程序文件,根据新程序文件进行程序升级。
应该理解的是,虽然上述各个流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各个流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种程序升级装置,包括:文件读取模块410、第一置值模块420、文件备份模块430、第二置值模块440、文件生成模块450以及程序升级模块460,其中:
文件读取模块410,用于依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段。
第一置值模块420,用于将第一标志位的值置为与旧程序文件子段对应的值。
文件备份模块430,用于对旧程序文件子段进行备份。
第二置值模块440,用于将第二标志位的值置为与旧程序文件子段对应的值。
文件生成模块450,用于根据差分包子段以及旧程序文件子段生成新程序文件子段。
程序升级模块460,用于根据新程序文件子段进行程序升级;第一标志位的值和第二标志位的值用于标记升级进度。
在本实施例中,依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段,将第一标志位的值置为与旧程序文件子段对应的值,对旧程序文件子段进行备份,将第二标志位的值置为与旧程序文件子段对应的值,根据差分包子段以及旧程序文件子段生成新程序文件子段,根据新程序文件子段进行程序升级,第一标志位的值和第二标志位的值用于标记升级进度。在程序升级的过程中,得到旧程序文件子段的时候,就将第一标志位的值置为与旧程序文件子段对应的值,当对旧程序文件子段进行备份后,就将第二标志位的值置为与旧程序文件子段对应的值,这样在升级异常的时候,也能知道当前更新的进度,可以利用标记的进度来继续升级,从而避免发生故障。
在一个实施例中,文件读取模块410还用于获取分段读取差分包得到的差分包子段;从差分包子段中获取与差分包子段对应的旧程序文件子段的文件长度;从旧程序文件中获取与文件长度对应的旧程序文件子段。
在一个实施例中,文件读取模块410还用于获取旧程序文件;按照文件长度从旧程序文件中顺序截取旧程序文件子段。
在一个实施例中,程序升级装置还可以包括数值获取模块,用于当升级异常时,分别获取第一标志位的值和第二标志位的值;文件读取模块410还用于当第一标志位的值和第二标志位的值相等时,获取与第一标志位的值对应的备份后的旧程序文件子段;文件生成模块450还用于从获取的备份后的旧程序文件子段起,根据差分包子段以及旧程序文件子段生成新程序文件子段。
在一个实施例中,文件读取模块410还用于当第一标志位的值和第二标志位的值不相等时,获取与第一标志位的值对应的旧程序文件子段;文件备份模块430还用于从当前获取的旧程序文件子段起,对旧程序文件子段进行备份。
在一个实施例中,程序升级模块460还用于当差分包和旧程序文件读取完成时,根据已生成的新程序文件子段生成新程序文件;根据新程序文件进行程序升级。
在一个实施例中,提供的一种程序升级装置还可以包括差分包生成模块,用于依次分段读取旧程序文件和新程序文件,得到旧程序文件子段以及新程序文件子段;根据旧程序文件子段以及新程序文件子段生成差分包子段;当旧程序文件和新程序文件读取完成时,根据差分包子段生成差分包。
关于程序升级装置的具体限定可以参见上文中对于程序升级方法的限定,在此不再赘述。上述程序升级装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种程序升级方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段;将第一标志位的值置为与旧程序文件子段对应的值;对旧程序文件子段进行备份;将第二标志位的值置为与旧程序文件子段对应的值;根据差分包子段以及旧程序文件子段生成新程序文件子段;根据新程序文件子段进行程序升级;第一标志位的值和第二标志位的值用于标记升级进度。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取分段读取差分包得到的差分包子段;从差分包子段中获取与差分包子段对应的旧程序文件子段的文件长度;从旧程序文件中获取与文件长度对应的旧程序文件子段。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取旧程序文件;按照文件长度从旧程序文件中顺序截取旧程序文件子段。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当升级异常时,分别获取第一标志位的值和第二标志位的值;当第一标志位的值和第二标志位的值相等时,获取与第一标志位的值对应的备份后的旧程序文件子段;从获取的备份后的旧程序文件子段起,继续执行根据差分包子段以及旧程序文件子段生成新程序文件子段的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当第一标志位的值和第二标志位的值不相等时,获取与第一标志位的值对应的旧程序文件子段;从当前获取的旧程序文件子段起,继续执行对旧程序文件子段进行备份的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当差分包和旧程序文件读取完成时,根据已生成的新程序文件子段生成新程序文件;根据新程序文件进行程序升级。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:依次分段读取旧程序文件和新程序文件,得到旧程序文件子段以及新程序文件子段;根据旧程序文件子段以及新程序文件子段生成差分包子段;当旧程序文件和新程序文件读取完成时,根据差分包子段生成差分包。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段;将第一标志位的值置为与旧程序文件子段对应的值;对旧程序文件子段进行备份;将第二标志位的值置为与旧程序文件子段对应的值;根据差分包子段以及旧程序文件子段生成新程序文件子段;根据新程序文件子段进行程序升级;第一标志位的值和第二标志位的值用于标记升级进度。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取分段读取差分包得到的差分包子段;从差分包子段中获取与差分包子段对应的旧程序文件子段的文件长度;从旧程序文件中获取与文件长度对应的旧程序文件子段。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取旧程序文件;按照文件长度从旧程序文件中顺序截取旧程序文件子段。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当升级异常时,分别获取第一标志位的值和第二标志位的值;当第一标志位的值和第二标志位的值相等时,获取与第一标志位的值对应的备份后的旧程序文件子段;从获取的备份后的旧程序文件子段起,继续执行根据差分包子段以及旧程序文件子段生成新程序文件子段的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当第一标志位的值和第二标志位的值不相等时,获取与第一标志位的值对应的旧程序文件子段;从当前获取的旧程序文件子段起,继续执行对旧程序文件子段进行备份的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当差分包和旧程序文件读取完成时,根据已生成的新程序文件子段生成新程序文件;根据新程序文件进行程序升级。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:依次分段读取旧程序文件和新程序文件,得到旧程序文件子段以及新程序文件子段;根据旧程序文件子段以及新程序文件子段生成差分包子段;当旧程序文件和新程序文件读取完成时,根据差分包子段生成差分包。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种程序升级方法,所述方法包括:
依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段;
将第一标志位的值置为与所述旧程序文件子段对应的值;
对所述旧程序文件子段进行备份;
将第二标志位的值置为与备份后的所述旧程序文件子段对应的值;
根据所述差分包子段以及备份后的所述旧程序文件子段生成新程序文件子段;
当所述差分包和所述旧程序文件读取完成时,根据已生成的所述新程序文件子段生成新程序文件,根据所述新程序文件进行程序升级;
当发生升级异常时,若所述第一标志位和所述第二标志位的值相等,则确定升级异常未发生在所述旧程序文件子段备份期间;若所述第一标志位和所述第二标志位的值不相等,则确定升级异常发生在所述旧程序文件子段备份期间。
2.根据权利要求1所述的方法,其特征在于,所述依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段,包括:
获取分段读取所述差分包得到的差分包子段;
从所述差分包子段中获取与所述差分包子段对应的旧程序文件子段的文件长度;
从所述旧程序文件中获取与所述文件长度对应的旧程序文件子段。
3.根据权利要求2所述的方法,其特征在于,所述从所述旧程序文件中获取与所述文件长度对应的旧程序文件子段,包括:
获取所述旧程序文件;
按照所述文件长度从所述旧程序文件中顺序截取旧程序文件子段。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当升级异常时,分别获取所述第一标志位的值和所述第二标志位的值;
当所述第一标志位的值和所述第二标志位的值相等时,获取与所述第一标志位的值对应的备份后的旧程序文件子段;
从获取的备份后的旧程序文件子段起,继续执行所述根据所述差分包子段以及所述旧程序文件子段生成新程序文件子段的步骤。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述第一标志位的值和所述第二标志位的值不相等时,获取与所述第一标志位的值对应的旧程序文件子段;
从当前获取的旧程序文件子段起,继续执行所述对所述旧程序文件子段进行备份的步骤。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述第一标志位的值和所述第二标志位的值为初始值时,执行所述依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段的步骤。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述差分包的生成步骤包括:
依次分段读取旧程序文件和新程序文件,得到旧程序文件子段以及新程序文件子段;
根据所述旧程序文件子段以及所述新程序文件子段生成差分包子段;
当所述旧程序文件和所述新程序文件读取完成时,根据所述差分包子段生成差分包。
8.一种程序升级装置,其特征在于,所述装置包括:
文件读取模块,用于依次分段读取差分包和旧程序文件,得到差分包子段以及旧程序文件子段;
第一置值模块,用于将第一标志位的值置为与所述旧程序文件子段对应的值;
文件备份模块,用于对所述旧程序文件子段进行备份;
第二置值模块,用于将第二标志位的值置为与备份后的所述旧程序文件子段对应的值;
文件生成模块,用于根据所述差分包子段以及备份后的所述旧程序文件子段生成新程序文件子段;
程序升级模块,用于当所述差分包和所述旧程序文件读取完成时,根据已生成的所述新程序文件子段生成新程序文件,根据所述新程序文件进行程序升级;当发生升级异常时,若所述第一标志位和所述第二标志位的值相等,则确定升级异常未发生在所述旧程序文件子段备份期间;若所述第一标志位和所述第二标志位的值不相等,则确定升级异常发生在所述旧程序文件子段备份期间。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201811359032.5A 2018-11-15 2018-11-15 程序升级方法、装置、计算机设备和存储介质 Active CN109614128B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811359032.5A CN109614128B (zh) 2018-11-15 2018-11-15 程序升级方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811359032.5A CN109614128B (zh) 2018-11-15 2018-11-15 程序升级方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN109614128A CN109614128A (zh) 2019-04-12
CN109614128B true CN109614128B (zh) 2022-03-15

Family

ID=66003312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811359032.5A Active CN109614128B (zh) 2018-11-15 2018-11-15 程序升级方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN109614128B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050058800A (ko) * 2003-12-12 2005-06-17 에스케이텔레텍주식회사 이동통신단말기의 소프트웨어 업그레이드 방법
CN101377744A (zh) * 2008-09-24 2009-03-04 深圳华为通信技术有限公司 一种终端设备软件升级恢复方法及装置
CN105468396A (zh) * 2014-09-11 2016-04-06 深圳Tcl数字技术有限公司 差分包生成方法、升级方法、生成装置及Linux终端
CN106610840A (zh) * 2015-10-22 2017-05-03 深圳市中兴微电子技术有限公司 一种无线固件升级方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050058800A (ko) * 2003-12-12 2005-06-17 에스케이텔레텍주식회사 이동통신단말기의 소프트웨어 업그레이드 방법
CN101377744A (zh) * 2008-09-24 2009-03-04 深圳华为通信技术有限公司 一种终端设备软件升级恢复方法及装置
CN105468396A (zh) * 2014-09-11 2016-04-06 深圳Tcl数字技术有限公司 差分包生成方法、升级方法、生成装置及Linux终端
CN106610840A (zh) * 2015-10-22 2017-05-03 深圳市中兴微电子技术有限公司 一种无线固件升级方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于Android平台OTA差分升级系统设计与实现";施超等;《信息技术》;20171031;第137-140页 *

Also Published As

Publication number Publication date
CN109614128A (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
CN109753418B (zh) 性能测试方法、装置、计算机设备和存储介质
US9710340B2 (en) Replacement of a corrupt driver variable record
CN111290919A (zh) 日志文件生成方法、装置、计算机设备和存储介质
CN115495025B (zh) 一种管理异常存储块的方法和装置
CN105550071B (zh) 系统文件升级及检测方法、通信设备
CN114116305A (zh) 基于pfr的bios固件恢复方法、系统、终端及存储介质
CN114020527A (zh) 快照恢复方法、装置、计算机设备及存储介质
CN108364670B (zh) 读写压力测试方法、装置、设备及存储介质
CN109614128B (zh) 程序升级方法、装置、计算机设备和存储介质
CN112698987A (zh) 无快照操作系统在线备份方法、装置、设备及存储介质
CN111382012B (zh) MySQL云数据库的备份方法、装置、计算机设备和存储介质
CN110865772A (zh) 保护系统数据物理块擦除计数值的方法、装置、计算机设备及存储介质
CN115543217B (zh) 独立冗余磁盘阵列数据组织方法、装置、服务器和介质
CN110729014A (zh) Ssd存储擦除计数表备份的方法、装置、计算机设备及存储介质
CN115291803A (zh) 磁盘阵列重构方法、装置和计算机设备和存储介质
CN112860287A (zh) 系统程序升级方法、装置、计算机设备及存储介质
CN110275596B (zh) 基于固态硬盘的上电初始化加速方法、装置和计算机设备
CN113792020A (zh) 一种数据处理方法、装置、终端及存储介质
CN110879757A (zh) 客户端异常运行时的重启方法、装置和计算机设备
CN112579004A (zh) 快速删除flash数据的方法、系统、计算机设备及存储介质
CN110795275A (zh) 基于异常掉电过程中的异常块识别方法和装置
CN113285819B (zh) 通信参数处理方法、装置、计算机设备和计算机存储介质
CN107656747B (zh) 一种数据升级方法及移动终端
CN110737546B (zh) 一致性快照的检验方法、装置、设备及存储介质
CN113900683A (zh) Bios刷新方法、装置、设备及存储介质

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220916

Address after: 518051 room 1001, block a, building 6, Shenzhen International Innovation Valley, Dali community, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SHENZHEN GUANGHETONG WIRELESS COMMUNICATION SOFTWARE CO.,LTD.

Address before: 518100 room 501A, building a, phase II, science and technology building, 1057 Nanhai Avenue, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: FIBOCOM WIRELESS Inc.

TR01 Transfer of patent right