WO2020211594A1 - 零差分升级方法、非易失性存储介质及电子装置 - Google Patents

零差分升级方法、非易失性存储介质及电子装置 Download PDF

Info

Publication number
WO2020211594A1
WO2020211594A1 PCT/CN2020/080610 CN2020080610W WO2020211594A1 WO 2020211594 A1 WO2020211594 A1 WO 2020211594A1 CN 2020080610 W CN2020080610 W CN 2020080610W WO 2020211594 A1 WO2020211594 A1 WO 2020211594A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
length
target
block length
version
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.)
Ceased
Application number
PCT/CN2020/080610
Other languages
English (en)
French (fr)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to EP20790490.5A priority Critical patent/EP3933573B1/en
Publication of WO2020211594A1 publication Critical patent/WO2020211594A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

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

Definitions

  • the present invention relates to the field of communications, in particular to a zero-differential upgrade method, non-volatile storage medium and electronic device.
  • Differential upgrade is a common FOTA upgrade method. Although only the new and old version of the differential information can be transmitted between the server and the terminal, bandwidth and storage space can be saved. However, in some unpredictable situations, such as power failure or bad blocks, the original If the data is damaged, the differential upgrade will not be possible. The system will also cause disastrous consequences that cannot be restarted. At this time, you need to start the zero-differential upgrade, that is, the full version upgrade method. However, because the terminal often has limited FOTA partition space, sometimes it cannot store the zero-differential upgrade package, and thus cannot perform the zero-differential upgrade.
  • the embodiments of the present invention provide a zero-difference upgrade method, a non-volatile storage medium, and an electronic device, to at least a certain extent solve the problem that the upgrade storage space in the related technology cannot store the zero-difference upgrade package, and the zero-difference upgrade cannot be performed.
  • the problem is to at least a certain extent solve the problem that the upgrade storage space in the related technology cannot store the zero-difference upgrade package, and the zero-difference upgrade cannot be performed.
  • a zero-difference upgrade method which includes: obtaining the check code information of each data block corresponding to each block length in the block length set of the target version from the server; The check code information determines a target block length from the set of block lengths, where the total length of the data blocks to be updated corresponding to the target block length meets the target block length required by the upgrade storage space; Obtain the zero-difference upgrade package of the target version corresponding to the target block length from the server, and perform the zero-difference upgrade of the version to be upgraded.
  • a zero-differential upgrade method which includes: a server delivers a check of each data block corresponding to each block length in the block length set of the target version to the terminal Code information; the server receives the target version of the target block length information sent by the terminal, where the total length of the data blocks to be updated corresponding to the target block length meets the upgrade storage space requirements; the server sends The terminal delivers a zero difference upgrade package corresponding to the target version of the target block length.
  • a non-volatile storage medium in which a computer program is stored, wherein the computer program is set to execute the above-mentioned method implementation when running The steps in the example.
  • an electronic device including a memory and a processor, the memory is stored with a computer program, and the processor is configured to run the computer program to execute the foregoing method embodiments Steps in.
  • Fig. 1 is a schematic diagram of a network architecture according to an embodiment of the present invention
  • Figure 2 is a flowchart of a zero-differential upgrade method according to an embodiment of the present invention
  • Fig. 3 is a flowchart of a zero-differential upgrade method according to another embodiment of the present invention.
  • Figure 4 is a structural block diagram of a zero-difference upgrade device according to an embodiment of the present invention.
  • FIG. 5 is a structural block diagram of a zero-difference upgrade device according to another embodiment of the present invention.
  • Figure 6 is a schematic diagram of a system structure according to an embodiment of the present invention.
  • FIG. 7 is a flowchart on the terminal side according to an embodiment of the present invention.
  • Fig. 8 is a flowchart on the server side according to an embodiment of the present invention.
  • FIG. 1 is a schematic diagram of a network architecture in which a zero-differential upgrade method according to an embodiment of the present invention runs.
  • the terminal 100 may be a mobile terminal, a computer terminal or other similar computing terminals running software.
  • the terminal 100 may include one or more (only one is shown in FIG. 1) processor 101 (the processor 101 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA) and a processor for storing data Storage 102.
  • processor 101 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA
  • a processor for storing data Storage 102 A person of ordinary skill in the art can understand that the structure of the terminal 100 shown in FIG. 1 is only for illustration, and does not limit its structure.
  • the terminal 100 may also include more or fewer components than shown in FIG. 1, or have a different configuration from that shown in FIG.
  • the memory 102 may be used to store computer programs, for example, software programs and modules of application software, such as the computer programs corresponding to the zero difference upgrade method in the embodiment of the present invention.
  • the processor 101 executes the computer programs stored in the memory 102 by running Various functional applications and data processing, namely to achieve the above methods.
  • the memory 102 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory.
  • the memory 102 may also include a memory remotely provided with respect to the processor 102, and these remote memories may be connected to the terminal 100 via a network.
  • the server 200 may also be a general-purpose computer server, a dedicated server, or other similar computer devices running software.
  • the server 200 may include one or more (only one is shown in FIG. 1) processor 201 (the processor 201 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA) and a processor for storing data Storage 202.
  • processor 201 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA
  • a processor for storing data Storage 202 a processor for storing data Storage 202.
  • the terminal 100 and the server 200 can communicate through a network 30, which can be a wireless network or a wired network.
  • the network 800 is not limited to the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
  • a zero-differential upgrade method running on the aforementioned network architecture is provided.
  • This embodiment mainly describes the zero-differential upgrade procedure from the perspective of the terminal.
  • Fig. 2 is a flowchart of a zero-difference upgrade method according to an embodiment of the present invention. As shown in Fig. 2, the process may include the following steps:
  • Step S202 The terminal 100 obtains the check code information of each data block corresponding to each block length in the block length set of the target version from the server 200 (for example, an upgrade server);
  • the version to be upgraded in the terminal 100 needs to be upgraded to the target version. Therefore, the target version needs to be downloaded from the server 200.
  • the target version can be divided into different block lengths. For division, all different block lengths form a block length set. According to the length of each block, the target version can be divided into multiple data blocks, and each data block has its corresponding check code.
  • the data size length of a target version is 6M, which can be divided according to the block length of 512K, 256K, 128K, 64K, 32K, 8K, 4K, 2K, 1K, and the block length set is ⁇ 512K, 256K , 128K, 64K, 32K, 8K, 4K, 2K, 1K ⁇ .
  • the target version is also divided into different numbers of data blocks.
  • the server may sequentially calculate the check codes of all data blocks corresponding to the block lengths of the target version, and issue them to the terminal 100.
  • Step S204 The terminal 100 determines a target block length from the set of block lengths according to the check code information, wherein the total length of the data blocks to be updated corresponding to the target block length satisfies Upgrade storage space requires target block length;
  • the target version since the target version needs to be downloaded to the FOTA partition on the terminal side, it is necessary to determine whether the update length of the target version meets the storage requirements of the FOTA partition. In the above steps, a target segment length meeting the condition can be determined according to the requirement.
  • Step S206 The terminal 100 obtains the zero-difference upgrade package of the target version corresponding to the target block length from the server 200, and performs a zero-difference upgrade on the version to be upgraded in the terminal 100.
  • the zero-difference upgrade package can carry data blocks that need to be updated under the target block length. For example, data block 1, data block 3, and data block 9 with a block length of 512K. Therefore, the version to be upgraded in the terminal can be upgraded according to the zero difference upgrade package.
  • the check code may be a cyclic redundancy check code.
  • the check code may also be another check code capable of error checking.
  • step S202 may specifically include: sending a first request message to the server, where the first request message is used to request each data segment corresponding to each segment length in the target version of the segment length set. Check code information of the block; receiving a first response message from the server, where the first response message carries the set of block lengths of the target version and each data block corresponding to the length of each block The check code of the block.
  • step S204 may specifically include: selecting a block length from the set of block lengths, and calculating the check code of each data block under the block length in the version to be upgraded; calculating the block length The total length of data blocks with different check codes in the corresponding data blocks of the target version and the version to be upgraded under the length, and the total length is used as the update length; determine whether the update length under the block length meets the upgrade storage space, If yes, determine that the segment length is the target segment length, if not, re-select a new segment length from the set of segment lengths, and calculate whether its updated length meets the upgrade storage space requirements, until it is selected to meet The required block length.
  • the block length can be selected from the set of block lengths according to a predetermined selection order (the predetermined selection order can be confirmed based on experience or a preset optimization scheme), for example, a
  • a block length can be selected in the order from largest to smallest.
  • the smaller the block length the smaller the corresponding update length.
  • the block length can be selected from large to small, and once the update length is less than the current terminal FOTA storage space requirement, it can be stopped.
  • step S206 may specifically include: sending a zero-difference packet request message to the server, wherein the zero-difference packet request message carries the target segment length identifier and the target segment length corresponding to the target segment length.
  • the target version of the target version and the identification of the data block with different check codes in the corresponding data block of the version to be upgraded ; receiving a zero-difference packet request response message from the server, wherein the request response message carries the data corresponding to all In the target version of the target segment length, the data segment that is different from the check code of the corresponding data segment of the version to be upgraded; the version to be upgraded is upgraded according to the data segment carried in the zero difference packet request response message.
  • a zero-differential upgrade method running on the above network architecture is also provided.
  • the method can be run on the server side, and the server side executes relevant steps.
  • This embodiment mainly describes the zero-differential upgrade steps from the perspective of the server.
  • Fig. 3 is a flowchart of a zero-difference upgrade method according to an embodiment of the present invention. As shown in Fig. 3, the process includes the following steps:
  • Step S302 The server delivers the check code information of each data block corresponding to each block length in the block length set of the target version to the terminal;
  • Step S304 The server receives the target version of the target block length information sent by the terminal, where the total length of the data blocks to be updated corresponding to the target block length meets the upgrade storage space requirement;
  • Step S306 The server delivers a zero-difference upgrade package of the target version corresponding to the target block length to the terminal.
  • step S302 may specifically include: the server receives a first request message from the terminal, where the first request message is used to request the target version of the block length set corresponding to each block length The check code information of each data block; the server sends a first response message to the terminal, wherein the first response message carries the block length set of the target version and the block length set corresponding to each block The check code of each data block of the block length.
  • step S304 may specifically include: the server receives a zero-difference packet request message sent by the terminal, wherein the zero-difference packet request message carries the target block length identifier and corresponds to the The target version of the target segment length and the identifier of the data segment with different check codes in the corresponding data segment of the version to be upgraded.
  • step S306 may specifically include: the server sends a zero difference packet request response message to the terminal, wherein the request response message carries the target version corresponding to the target block length and Data blocks with different check codes corresponding to the data blocks of the version to be upgraded.
  • the method according to the above embodiment can be implemented by means of software plus the necessary general hardware platform, of course, it can also be implemented by hardware, but in many cases the former is Better implementation.
  • the technical solution of the present invention essentially or the part that contributes to the existing technology can be embodied in the form of a software product, and the computer software product is stored in a storage medium (such as ROM/RAM, magnetic disk, The optical disc) includes several instructions to enable a terminal device (which can be a mobile phone, a computer, a server, or a network device, etc.) to execute the method described in each embodiment of the present invention.
  • a zero-difference upgrade device is also provided, which is used to implement the above-mentioned embodiments and several implementation manners, and those that have been explained will not be repeated.
  • the term “module” or “unit” can be a combination of software and/or hardware that implements a predetermined function.
  • the devices described in the following embodiments are preferably implemented by software, hardware or a combination of software and hardware is also possible and conceived.
  • a zero difference upgrade device is provided.
  • the device can be a terminal or a part of a terminal.
  • Figure 4 is a block diagram of the device. As shown in FIG. 4, the zero-difference upgrade device 300 includes an acquisition module 310, a determination module 320, and an upgrade module 330.
  • the obtaining module 310 is configured to obtain the check code information of each data block corresponding to each block length in the block length set of the upgrade target version from the server.
  • the determining module 320 is configured to determine a target segment length from the segment length set according to the check code information, wherein the total length of the data segment to be updated corresponding to the target segment length satisfies the upgrade storage Space requirements.
  • the upgrade module 330 is configured to obtain a zero-difference upgrade package of the target version corresponding to the target block length from the server, and perform a zero-difference upgrade of the version to be upgraded.
  • the acquiring module 310 may further include a first sending unit 311 and a first receiving unit 312.
  • the first sending unit 311 is configured to send a first request message to the server, where the first request message 311 is used for Request the check code information of each data block corresponding to each block length in the block length set of the target version.
  • the first receiving unit 312 is configured to receive a first response message from the server, where the first response message carries a set of block lengths of the target version and each data block corresponding to each block length. The check code of the block.
  • the determining module 320 may further include a selection unit 321, a calculation unit 322, and a judgment unit 323.
  • the selecting unit 321 is configured to select a block length from the set of block lengths, and calculate the check code of each data block under the block length in the version to be upgraded.
  • the calculation unit 322 is configured to calculate the total length of the data blocks with different check codes in the corresponding data blocks of the target version and the version to be upgraded under the block length, and use the total length as the update length.
  • the judging unit 323 is used to judge whether the update length under the block length meets the upgrade storage space, if it is, it is determined that the block length is the target block length, if not, a new one is selected from the set of block lengths. Block length.
  • a block length can be selected from the set of block lengths in a manner from large to small block length.
  • the upgrading module 330 may further include a second sending unit 331, a second receiving unit 332, and an upgrading unit 333.
  • the second sending unit 331 is configured to send a zero-difference packet request message to the server, where the zero-difference packet request message carries the target block length identifier and the target version and the target version corresponding to the target block length. The identifier of the data block with different check codes in the corresponding data block of the upgraded version.
  • the second receiving unit 332 is configured to receive a zero-difference packet request response message from the server, where the request response message carries a data partition corresponding to the target version corresponding to the target partition length and the version to be upgraded. Block data with different check codes.
  • the upgrading unit 333 is configured to upgrade the version to be upgraded according to the data block carried in the zero difference package request response message.
  • a zero difference upgrade device is also provided.
  • the device can be a server or part of a server.
  • Figure 5 is a block diagram of the device. As shown in FIG. 5, the device 400 includes a first issuing module 410, a receiving module 420, and a second issuing module 430.
  • the first issuing module 410 is configured to issue the check code information of each data block corresponding to each block length in the block length set of the target version to the terminal.
  • the receiving module 420 is configured to receive target block length information of the target version sent by the terminal, where the total length of the data blocks to be updated corresponding to the target block length meets the upgrade storage space requirement.
  • the second issuing module 430 is configured to issue the zero difference upgrade package of the target version corresponding to the target block length to the terminal.
  • the first issuing module 410 may further include a first receiving unit 411 and a first sending unit 412.
  • the first receiving unit 411 is configured to receive a first request message from the terminal, where the first request message is used to request a check of each data block corresponding to each block length in the block length set of the target version Code information.
  • the first sending unit 412 is configured to send a first response message to the terminal, wherein the first response message carries a set of block lengths of the target version and each data block corresponding to each block length The check code.
  • the receiving module 420 may also include the second receiving unit 421.
  • the second receiving unit 421 is configured to receive a zero-difference packet request message sent by the terminal, wherein the zero-difference packet request message carries the target block length identifier and the target version corresponding to the target block length.
  • the second issuing module 430 may further include a second sending unit 431.
  • the second sending unit 431 is configured to send a zero-difference packet request response message to the terminal, where the request response message carries the data segment corresponding to the target version corresponding to the target segment length and the version to be upgraded. Data blocks with different check codes.
  • each of the above modules can be implemented by software or hardware.
  • it can be implemented in the following manner, but not limited to this: the above modules are all located in the same processor; or, the above modules are combined in any combination The forms are located in different processors.
  • This embodiment is mainly aimed at in the case of a wireless network, when an unrecoverable abnormal situation occurs in the ordinary differential upgrade of the mobile terminal, the mobile terminal interacts with the FOTA server, and finally the server issues a zero-differential package of appropriate size to the terminal for zero-differential upgrade , So as to complete the application scenario of smooth upgrade of terminal software.
  • Figure 6 is a schematic diagram of the system structure of this embodiment. As shown in Figure 6, it mainly involves the processing of the corresponding dedicated modules on the FOTA server and the mobile terminal side.
  • Related functions of the mobile terminal 500 may mainly include a dynamic block CRC (cyclic redundancy check) check module 510 and a zero difference upgrade module 520.
  • the direct purpose of the dynamic block CRC check module 510 is to find out the data blocks with differences between the current version and the target version, that is, it is mainly responsible for the FOTA server requesting the target version block length set of each block under various block lengths.
  • the CRC check code information calculates the CRC check code of each block under each block length of the current version of the terminal, and then count the total length of all data blocks (that is, the update length) where the data has changed under each block length, Among them, it is determined that the data block has changed according to the different CRC check codes of each data block in the current version and the corresponding data block in the target version.
  • the smaller the block length the smaller the corresponding update length.
  • the block size the first is the increase in CRC calculations, and the second is the increase in operations based on block alignment for the terminal FLASH erasing and writing, resulting in an increase in update time. Therefore, the block length needs to be dynamically selected from large to small.
  • the zero-difference upgrade module 520 is responsible for parsing the zero-difference package issued by the FOTA server, and obtains that each data block whose data has changed under the optimal block length is directly upgraded.
  • the FOTA server 600 mainly include a CRC calculation module 610 and a zero difference packing module 620 for each block under each block length of the target version.
  • the CRC calculation module 610 calculates the CRC check code of each block under various block lengths in the set of block lengths of the target version, and packs and sends this information to the mobile terminal 500.
  • the zero-difference packing module 620 is mainly responsible for packing the data corresponding to these identifiers into a zero-difference package and sending it to the terminal upgrade 500 according to the most segment length selected by the terminal and the corresponding data block change.
  • this embodiment provides a zero-difference upgrade method based on cyclic redundancy check codes.
  • the implementation process is described in detail below.
  • the main processing procedure on the mobile terminal side is specifically as follows:
  • Step S701 After the normal differential upgrade exits abnormally, a request for check code information of the target version is initiated to the FOTA server, the check code information includes the cyclic redundancy check code of each data block of the target version under various block lengths . For example, if the data size length of a target version is 6M, the set of block lengths from large to small includes: ⁇ 512K, 256K, 128K, 64K, 32K, 8K, 4K, 2K, 1K ⁇ .
  • the check codes corresponding to other classification lengths can be deduced by analogy.
  • the check code information of these target versions can be prepared in advance on the server.
  • Step S702 After receiving the check code request response of the FOTA server, the set of block lengths (such as ⁇ 512K, 256K, 128K, 64K, 32K, 8K, 4K, 2K, 1K ⁇ ) and The cyclic redundancy check code of each data block of the target version corresponding to each block (such as ⁇ TR1, TR2...TR12 ⁇ , ⁇ TM1, TM2...TM24 ⁇ ,).
  • the set of block lengths such as ⁇ 512K, 256K, 128K, 64K, 32K, 8K, 4K, 2K, 1K ⁇
  • the cyclic redundancy check code of each data block of the target version corresponding to each block such as ⁇ TR1, TR2...TR12 ⁇ , ⁇ TM1, TM2...TM24 ⁇ ,).
  • Step S703 Select a block length from the set of block lengths (for example ⁇ 512K, 256K, 128K, 64K, 32K, 8K, 4K, 2K, 1K ⁇ ) from large to small.
  • a block length for example ⁇ 512K, 256K, 128K, 64K, 32K, 8K, 4K, 2K, 1K ⁇
  • Step S704 Calculate the cyclic redundancy check code of each data block of the current version of the mobile terminal under the block length (for example, 512K), which is correspondingly recorded as ⁇ SR1, SR2, ..., SR12 ⁇ , for example.
  • the block length for example, 512K
  • Step S705 Calculate the total length of the data block whose cyclic redundancy check code is different between the target version and the current version under the block length, which is called the update length.
  • the update length For example, for the block length of 512K, there are block 1 and block respectively. 3.
  • the target version check code of block 9 is different from the current version check code, that is, TR1 is not equal to SR1, TR3 is not equal to TR3, and TR9 is not equal to SR9.
  • Step S706 Determine whether the update length under the block length meets the storage requirements of the FOTA partition, that is, L ⁇ Lf, where L is the update length size, and Lf is the storage space size of the upgrade package available for FOTA. If it is satisfied, the block length selection Stop, go to the next step 107, otherwise go to step S703 again.
  • Step S707 Pack the optimal block length (for example, 512K) and the corresponding data block identifiers with different verifications, that is, update the data block identifiers (for example 1, 3, 9) into a zero difference request packet to the server, and then Initiate this request to the server;
  • the optimal block length for example, 512K
  • the corresponding data block identifiers for example 1, 3, 9
  • Step S708 Receive the zero difference packet request response from the server, and parse the data block 1, data block 3, and data block 9 corresponding to the target version from the response packet.
  • Step S709 Perform a zero-difference version update, such as directly erasing and writing data block 1, data block 3, and data block 9 to the area corresponding to the current version.
  • Step S710 the processing ends.
  • the main processing procedure on the server side is specifically as follows:
  • Step S801 The terminal CRC check code request sent by the mobile terminal is received, and the block length set (such as ⁇ 512K, 256K, 128K, 64K, 32K, 8K, 4K, 2K, 1K ⁇ ) and the calculated set
  • the cyclic redundancy check codes (such as ⁇ TR1, TR2...TR12 ⁇ , ⁇ TM1, TM2...TM24 ⁇ ,...) of all data blocks of the target version corresponding to the block length are packed into the response data packet.
  • Step S802 Send the response data packet to the mobile terminal requesting the CRC check code request.
  • Step S803 The zero difference packet request sent by the mobile terminal is received, and the optimal block length and the corresponding CRC check code are different from each data block identifier that is updated from the request, for example, the optimal block length is 512K , The update identifier is 1, 3, 9, indicating that the data of these blocks needs to be updated again.
  • Step S804 According to the optimal block length and the update data block identifier, extract the data blocks that need to be updated from the target version (for example, data block 1, data block 3, data block 9 under 512K block length) and pack To the zero difference package.
  • the target version for example, data block 1, data block 3, data block 9 under 512K block length
  • Step S805 Deliver the zero-difference data packet to the zero-difference request mobile terminal.
  • Step S806 the processing ends.
  • the block set and the target version of each block corresponding to each block length in the set are obtained by interacting with the server
  • the cyclic redundancy check code of the cyclic redundancy check code select a block length from large to small in the block set to calculate the cyclic redundancy check code of each block of data in the current version until the current version is different from the target check code.
  • the corresponding block number If the total data length meets the current upgrade storage space requirements, the dynamic block length selection stops, and then the optimal block length and the identification of the different blocks of the check code are packaged in the request information and sent to the server.
  • the server parses out the most Optimizing the block length and the identification of the different blocks of the check code to obtain the corresponding data block in the target version, package it and send it to the terminal for zero-differential upgrade, can effectively solve the above problem.
  • the embodiment of the present invention also provides a storage medium in which a computer program is stored, wherein the computer program is configured to execute the steps in the foregoing method embodiment when running.
  • the foregoing storage medium may include, but is not limited to: U disk, Read-Only Memory (Read-Only Memory, ROM for short), Random Access Memory (RAM for short), mobile hard disk, magnetic disk Various media that can store computer programs such as discs or optical discs.
  • An embodiment of the present invention also provides an electronic device including a memory and a processor, the memory is stored with a computer program, and the processor is configured to run the computer program to execute the steps in the above method embodiment.
  • modules or steps of the present invention can be implemented by a general computing device. They can be concentrated on a single computing device or distributed in a network composed of multiple computing devices. Above, in some embodiments, they can be implemented by program codes executable by a computing device, so that they can be stored in a storage device for execution by the computing device, and in some cases, they can be different from this
  • the steps shown or described are executed in the order in which they are shown, or they are respectively fabricated into individual integrated circuit modules, or multiple modules or steps of them are fabricated into a single integrated circuit module for implementation. In this way, the present invention is not limited to any specific combination of hardware and software.
  • the block length that meets the upgrade storage requirements is selected according to the check code information, and the upgrade is performed based on the upgrade package under the block length. Therefore, it is possible to solve the problem in related technologies at least to a certain extent.
  • the upgrade storage space cannot store the zero-difference upgrade package, causing the problem that the zero-difference upgrade cannot be performed.

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)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种零差分升级方法、非易失性存储介质及电子装置,该方法包括:从服务器获取目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求目标分块长度;从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级。

Description

零差分升级方法、非易失性存储介质及电子装置
相关申请的交叉引用
本申请基于申请号为201910309724.7、申请日为2019年4月17日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
技术领域
本发明涉及通讯领域,具体而言,涉及一种零差分升级方法、非易失性存储介质及电子装置。
背景技术
差分升级是一种常见FOTA升级方法,虽然通过在服务器和终端只传递新旧版本的差分信息,可以节约带宽和储存空间,但是,在一些难以预料的情况下,例如断电或坏块,则原始数据遭到破坏,差分升级将无法进行。系统也将造成无法重启的灾难性后果。这时需要启动零差分升级,即全版本的升级方式。但因为终端往往其FOTA分区空间有限,有时会无法存储零差分升级包,从而无法进行零差分升级。
发明内容
本发明实施例提供了一种零差分升级方法、非易失性存储介质及电子装置,以至少一定程度上解决相关技术中升级存储空间无法存储下零差分升级包,而导致零差分升级无法进行的问题。
根据本发明的一个实施例,提供了一种零差分升级方法,包括:从服务器获取目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求目标分块长度;从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级。
根据本发明的另一实施例,提供了一种零差分升级方法,包括:服务器向所述终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;服务器接收所述终端发送的目标版本的目标分块长度信息,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求;所述服务器向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包。
根据本发明的又一个实施例,还提供了一种非易失性存储介质,所述非易失性存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述方法实施例中的步骤。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的网络架构示意图图;
图2是根据本发明实施例的零差分升级方法的流程图;
图3是根据本发明另一实施例的零差分升级方法的流程图;
图4是根据本发明实施例的零差分升级装置的结构框图;
图5是根据本发明另一实施例的零差分升级装置的结构框图;
图6是根据本发明实施例的系统结构示意图;
图7是根据本发明实施例的终端侧的流程图;
图8是根据本发明实施例的服务器侧的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请所提供的方法实施例可以在终端/服务器的网络架构上运行,图1是本发明实施例的一种零差分升级方法运行的网络架构示意图。如图1所示,终端100可以是移动终端、计算机终端或其他类似的运行有软件的计算终端。终端100可以包括一个或多个(图1中仅示出一个)处理器101(处理器101可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器102。本领域普通技术人员可以理解,图1所示的终端100结构仅为示意,其并不对其结构造成限定。例如,终端100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器102可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的零差分升级方法对应的计算机程序,处理器101通过运行存储在存储器102内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102还可包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端100。
同样,服务器200也可以是通用计算机服务器,专用服务器或其他类似的运行有软件的计算机装置。服务器200可以包括一个或多个(图1中仅示出一个)处理器201(处理器201可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器202。本领域普通技术人员可以理解,图1所示的服务器200的结构仅为示意,其并不对上述服务器200的结构造成限定。
终端100与服务器200之间可以通过网络30进行通信,该网络30可以是无线网或有 线网。网络800不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本实施例中提供了一种运行于上述网络架构的零差分升级方法。该实施例主要从终端的角度描述了零差分升级步骤。图2是根据本发明实施例的零差分升级方法的流程图,如图2所示,该流程可以包括如下步骤:
步骤S202,终端100从服务器200(例如一升级服务器)获取目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
在本实施例中,终端100中的待升级版本需升级至目标版本,因此,需要从服务器200中下载该目标版本,而在服务器200中,该目标版本则可按照多种不同的分块长度进行划分,所有不同的分块长度组成一个分块长度集合。按照每个分块长度,则该目标版本可以划分为多个数据分块,每个数据分块具有其对应的校验码。例如,一个目标版本的数据大小长度是6M,其可按照512K,256K,128K,64K,32K,8K,4K,2K,1K的分块长度进行划分,则其分块长度集合为{512K,256K,128K,64K,32K,8K,4K,2K,1K}。对应分块长度512K,则目标版本被分为6M/512K=6*1024K/512K=12个数据分块。以此类推,对应于其它分块长度,该目标版本同样被分为不同个数的数据分块。服务器可依次计算目标版本的对应分块长度的所有数据分块的校验码,并下发给终端100。
步骤S204,所述终端100根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求目标分块长度;
在零差分升级时,由于需要将目标版本下载至终端侧的FOTA分区,因此,需要判断目标版本的更新长度是否满足FOTA分区的存储要求。在上述步骤中,可根据该要求确定一个满足条件的目标分块长度。
步骤S206,所述终端100从所述服务器200获取对应于所述目标分块长度的目标版本的零差分升级包,并对所述终端100中的待升级版本进行零差分升级。
在本实施例中,该零差分升级包中可以携带目标分块长度下需要更新的数据分块。例如,512K分块长度的数据分块1、数据分块3和数据分块9。因此,可以根据该零差分升级包对终端中的待升级版本进行升级。
在本实施例中,该校验码可以为循环冗余校验码。当然,在其他实施例中,所述校验码也可以是其他能够进行差错校验的校验码。
在上述实施例中,步骤S202可具体包括:向服务器发送第一请求消息,其中,所述第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;接收来自所述服务器的第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
在上述实施例中,步骤S204可具体包括:从所述分块长度集合中选择一个分块长度,并计算待升级版本中该分块长度下各数据分块的校验码;计算该分块长度下目标版本与待升级版本的对应数据分块中校验码不同的数据分块的总长度,将所述总长度作为更新长度;判断该分块长度下的更新长度是否满足升级存储空间,如果是则确定该分块长度为目标分块长度,如果否,则从所述分块长度集合中重新选择新的分块长度,并计算其更新长度是 否满足升级存储空间要求,直到选择出满足要求的分块长度。
其中,在上述步骤中,可以按照预定的选择顺序从所述分块长度集合中选择分块长度(所述预定的选择顺序可以是根据经验或预先设置的优化方案确认的),例如,在一实施例中,可按照从大到小的顺序选择一个分块长度。一般来说,分块长度越小,对应的更新长度会越小。但分块长度越小,校验码的计算量增多,并且终端侧FLASH擦写和基于块对齐的操作会增加,从而造成更新时间的增加。因此,分块长度可以按照从大到小进行选择,一旦更新长度小于当前终端FOTA储存空间要求则可选择停止。
在上述实施例中,步骤S206可具体包括:向所述服务器发送零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识;接收来自所述服务器的零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块;根据所述零差分包请求响应消息中携带的数据分块对待升级版本进行升级。
在本实施例中,还提供了一种运行于上述网络架构的零差分升级方法,所述方法可以运行于服务器侧,由服务器侧执行相关步骤。该实施例主要是从服务器的角度描述了零差分升级步骤。图3是根据本发明实施例的零差分升级方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,服务器向所述终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
步骤S304,服务器接收所述终端发送的目标版本的目标分块长度信息,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求;
步骤S306,所述服务器向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包。
在上述实施例中,步骤S302可具体包括:所述服务器接收来自所述终端的第一请求消息,其中,第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;所述服务器向所述终端发送第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
在上述实施例中,步骤S304可具体包括:所述服务器接收所述终端发送的零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识。
在上述实施例中,步骤S306可具体包括:所述服务器向所述终端发送零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质 (如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种零差分升级装置,该装置用于实现上述实施例及若干实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”或“单元”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
在本发明的一实施例中,提供了一种零差分升级装置。该装置可以是终端或者是终端的一部分。图4为该装置的结构框图。如图4所示,该零差分升级装置300包括获取模块310、确定模块320和升级模块330。
获取模块310,用于从服务器获取升级目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息。
确定模块320,用于根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块总长度满足升级存储空间要求。
升级模块330,用于从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级。
在上述实施例中,获取模块310还可包括第一发送单元311和第一接收单元312,第一发送单元311用于向服务器发送第一请求消息,其中,所述第一请求消息311用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息。第一接收单元312用于接收来自所述服务器的第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
在上述实施例中,确定模块320还可包括选择单元321、计算单元322和判断单元323。选择单元321用于从所述分块长度集合中选择一个分块长度,并计算待升级版本中该分块长度下各数据分块的校验码。计算单元322用于计算该分块长度下目标版本与待升级版本的对应数据分块中校验码不同的数据分块的总长度,将所述总长度作为更新长度。判断单元323用于判断该分块长度下的更新长度是否满足升级存储空间,如果是则确定该分块长度为目标分块长度,如果否,则从所述分块长度集合中重新选择新的分块长度。
在上述实施例中,可按照分块长度从大到小的方式从所述分块长度集合中选择一个分块长度。
在上述实施例中,升级模块330还可包括第二发送单元331、第二接收单元332和升级单元333。第二发送单元331用于向所述服务器发送零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识。第二接收单元332用于接收来自所述服务器的零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块。升级单元333用于根据所述零差分包请求响应消息中携带的数据分块对待升级版本进行升级。
在本发明的另一实施例,还提供了一种零差分升级装置。该装置可以是服务器或者是服务器的一部分。图5为该装置的结构框图。如图5所示,该装置400包括第一下发模块 410、接收模块420和第二下发模块430。
第一下发模块410,用于向所述终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息。
接收模块420,用于接收所述终端发送的目标版本的目标分块长度信息,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求。
第二下发模块430,用于向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包。
在上述实施例中,第一下发模块410还可包括第一接收单元411和第一发送单元412。第一接收单元411用于接收来自所述终端的第一请求消息,其中,第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息。第一发送单元412用于向所述终端发送第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
在上述实施例中,接收模块包括420还可包括第二接收单元421。第二接收单元421用于接收所述终端发送的零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识。
在上述实施例中,第二下发模块430还可包括第二发送单元431。第二发送单元431用于向所述终端发送零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
下面通过一个实际应用中的实施例来对本发明进行描述。本实施例主要针对在无线网络情况下,当移动终端普通差分升级出现无法挽救的异常情况时,移动终端与FOTA服务器经过交互,最后服务器下发大小合适的零差分包到终端上进行零差分升级,从而完成终端软件顺利升级的应用场景。
图6为本实施例的系统结构示意图。如图6所示,主要涉及FOTA服务器和移动终端侧对应专用模块的处理。移动终端500侧相关功能可以主要包括动态分块CRC(循环冗余校验)校验模块510和零差分升级模块520。其中,动态分块CRC校验模块510的直接目的是找出当前版本和目标版本发生差异的数据块,即主要负责FOTA服务器请求目标版本分块长度集合中各种分块长度下各分块的CRC校验码信息,并计算终端当前版本数据在每个分块长度下各块的CRC校验码,再统计各个分块长度下数据发生改变的所有数据块的总长度(即更新长度),其中根据当前版本各数据块与目标版本对应各数据块CRC校验码不同来判定该数据块发生改变。一般来说,分块长度越小,对应的更新长度会越小。但分块越小一是CRC计算增多,二是处理终端FLASH擦写基于块对齐的操作会增加,从而造成更新时间的增加。因此分块长度需要从大到小进行动态选择,一旦更新长度小于当前终端FOTA储存空间要求则选择停止。然后将当前分块长度作为最优分块长度和该分块下校验码不同 的块对应的标识等信息打包上传给服务器。而零差分升级模块520负责将FOTA服务器下发的零差分包进行解析,得到在最优分块长度下数据发生改变的各个数据块直接进行零差分升级。
FOTA服务器600相关功能主要包括目标版本各分块长度下的各分块CRC计算模块610和零差分打包模块620。其中CRC计算模块610是计算目标版本分块长度集合中各种分块长度下各分块的CRC校验码,并将这些信息打包下发给移动终端500。零差分打包模块620主要负责根据终端选择的最有分块长度和对应数据块发生变化分块标识,将这些标识对应的数据打包成零差分包下发到终端升级500。
基于上述的系统结构,本实施例提供了一种基于循环冗余校验码的零差分升级方法,以下来详细说明其实施过程。
如图7所示,在本实施例中,移动终端侧的主要处理流程具体为:
步骤S701:当正常差分升级异常退出后,向FOTA服务器发起目标版本的校验码信息请求,该校验码信息包含各种分块长度下目标版本的各数据分块的循环冗余校验码。举例,比如一个目标版本的数据大小长度是6M,其分块长度的集合从大到小包含:{512K,256K,128K,64K,32K,8K,4K,2K,1K}。对应分块长度512K,则目标版本被分为6M/512K=6*1024K/512K=12块,则依次计算目标版本上长度为512K数据分块的循环冗余校验码,记为{TR1,TR2,...,TR12}。同理对应分块长度256K,则目标版本被分为6M/256K=6*1024K/256K=24块,则依次计算目标版本上长度为256K数据分块的循环冗余校验码,记为{TM1,TM2,...,TM24}。其他分类长度对应的校验码以此类推。以上这些目标版本的校验码信息都可以在服务器上事先准备好。
步骤S702:接收到FOTA服务器的校验码请求响应,则从响应数据包中解析出分块长度的集合(比如{512K,256K,128K,64K,32K,8K,4K,2K,1K})和各分块对应的目标版本各数据分块的循环冗余校验码(比如{TR1,TR2...TR12},{TM1,TM2...TM24},…)。
步骤S703:从分块长度集合中(比如{512K,256K,128K,64K,32K,8K,4K,2K,1K})从大到小选择一个分块长度。
步骤S704:计算该分块长度(比如512K)下移动终端当前版本各数据据分块的循环冗余校验码,比如依次对应记为{SR1,SR2,...,SR12}。
步骤S705:计算该分块长度下目标版本与当前版本对应数据分块循环冗余校验码不同的数据块总长度,称为该更新长度,比如对于分块长度512K,分别有块1、块3、块9的目标版本校验码与当前版本校验码不同,即TR1不等于SR1,TR3不等于TR3,TR9不等于SR9。则分块长度512K对应的更新长度L=L1+L3+L9,这里L1、L3、L9表示对应该块的长度即都是512K。
步骤S706:判断该分块长度下的更新长度是否满足FOTA分区的存储要求,即L<Lf,其中L是更新长度大小,Lf是FOTA可用的升级包存储空间大小,如果满足则分块长度选择停止,进入下一步骤107,否则重新转入步骤S703。
步骤S707:将最优分块长度(比如512K)和对应校验不同各数据分块标识,即更新数据分块标识(比如1、3、9)打包到向服务器发起零差分请求包中,然后向服务器发起这 个请求;
步骤S708:收到服务器零差分包请求响应,从响应包中解析出目标版本对应的数据块1、数据块3和数据块9。
步骤S709:进行零差分版本更新,比如将数据块1、数据块3、数据块9直接擦写到当前版本对应的区域上。
步骤S710:处理结束。
如图8所示,在本发明实施例中,服务器侧的主要处理流程具体为:
步骤S801:接收到移动终端发送的终端CRC校验码请求,将分块长度集合(比如{512K,256K,128K,64K,32K,8K,4K,2K,1K})和计算好的集合中各分块长度对应的目标版本所有数据分块的循环冗余校验码(比如{TR1,TR2...TR12},{TM1,TM2...TM24},…)打包到响应数据包中。
步骤S802:将该响应数据包下发到请求CRC校验码请求的移动终端。
步骤S803:接收到该移动终端发送的零差分包请求,从请求中解析出最优分块长度和对应CRC校验码不同的各数据分块标识即更新标识,比如最优分块长度是512K,更新标识是1,3,9,表示这些块的数据需要重新更新。
步骤S804:根据最优分块长度和更新数据分块标识,从目标版本中提取出需要更新的数据分块(比如在512K分块长度下的数据块1、数据块3、数据块9)打包到零差分包中。
步骤S805:将该零差分数据包下发到零差分请求移动终端。
步骤S806:处理结束。
在本发明的上述实施例中,针对常规差分升级异常失败且存储空间无法放下零差分升级包的问题,通过和服务器交互得到分块集合和集合中每个分块长度下对应的每块目标版本的循环冗余校验码,并从分块集合中大到小依次选择一个分块长度来计算当前版本每块数据的循环冗余校验码,直到当前版本与目标校验码不同对应块数的数据总长度满足当前升级存储空间要求,则动态分块长度选择停止,然后将最优分块长度和校验码不同块的标识打包在请求信息中发送给服务器,服务器根据请求信息解析出最优分块长度和校验码不同块的标识去获取目标版本中对应的数据块进行打包并下发到终端进行零差分升级,可以有效地解决上述问题。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述方法实施例中的步骤。
在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述方法实施例中的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计 算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,在某些实施例中,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
在本发明的上述实施例中,根据校验码信息来选择满足升级存储要求的分块长度,并基于该分块长度下的升级包进行升级,因此,可以至少在一定程度上解决相关技术中升级存储空间无法存储下零差分升级包,导致零差分升级无法进行的问题。
以上所述仅为本发明的若干实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

  1. 一种零差分升级方法,包括:
    从服务器获取目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
    根据所述校验码信息从所述分块长度集合中确定一个分块长度作为目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求;
    从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级。
  2. 根据权利要求1所述的方法,其中,从服务器获取目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息,包括:
    向服务器发送第一请求消息,其中,所述第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
    接收来自所述服务器的第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
  3. 根据权利要求1所述的方法,其中,根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,包括:
    从所述分块长度集合中选择一个分块长度,并计算待升级版本中该分块长度下各数据分块的校验码;
    计算该分块长度下目标版本与待升级版本的对应数据分块中校验码不同的数据分块的总长度,将所述总长度作为更新长度;
    判断该分块长度下的更新长度是否满足升级存储空间;
    当判定该分块长度下的更新长度满足升级存储空间时,确定该分块长度为目标分块长度;或者
    当判定该分块长度下的更新长度不满足升级存储空间时,从所述分块长度集合中重新选择新的分块长度。
  4. 根据权利要求3所述的方法,其中,从所述分块长度集合中选择一个分块长度包括:从所述分块长度集合中从大到小选择一个分块长度。
  5. 根据权利要求3所述的方法,其中,从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级,包括:
    向所述服务器发送零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识;
    接收来自所述服务器的零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据 分块;
    根据所述零差分包请求响应消息中携带的数据分块对待升级版本进行升级。
  6. 一种零差分升级方法,包括:
    服务器向一终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
    服务器接收所述终端发送的目标版本的目标分块长度信息,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求;
    所述服务器向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包。
  7. 根据权利要求6所述的方法,其中,服务器向所述终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息,包括:
    所述服务器接收来自所述终端的第一请求消息,其中,第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
    所述服务器向所述终端发送第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
  8. 根据权利要求6所述的方法,其中,服务器接收所述终端发送的目标版本的目标分块长度信息,包括:
    所述服务器接收所述终端发送的零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识。
  9. 根据权利要求8所述的方法,其中,所述服务器向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包,包括:
    所述服务器向所述终端发送零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块。
  10. 一种非易失性存储介质,其中,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至9任一项中所述的方法。
  11. 一种电子装置,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至9任一项中所述的方法。
PCT/CN2020/080610 2019-04-17 2020-03-23 零差分升级方法、非易失性存储介质及电子装置 Ceased WO2020211594A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP20790490.5A EP3933573B1 (en) 2019-04-17 2020-03-23 Zero differential upgrade method, non-volatile storage medium and electronic device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910309724.7 2019-04-17
CN201910309724.7A CN111831297B (zh) 2019-04-17 2019-04-17 零差分升级方法及装置

Publications (1)

Publication Number Publication Date
WO2020211594A1 true WO2020211594A1 (zh) 2020-10-22

Family

ID=72836993

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/080610 Ceased WO2020211594A1 (zh) 2019-04-17 2020-03-23 零差分升级方法、非易失性存储介质及电子装置

Country Status (3)

Country Link
EP (1) EP3933573B1 (zh)
CN (1) CN111831297B (zh)
WO (1) WO2020211594A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947983A (zh) * 2021-04-15 2021-06-11 网易(杭州)网络有限公司 应用程序更新方法及装置、电子设备、存储介质
CN113986314A (zh) * 2021-12-09 2022-01-28 北京奕斯伟计算技术有限公司 软件升级方法、装置、电子设备及计算机可读存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527370A (zh) * 2020-12-04 2021-03-19 成都中科慧源科技有限公司 一种对物联网设备进行远程差分升级的方法
CN112732318A (zh) * 2021-01-12 2021-04-30 武汉光庭信息技术股份有限公司 一种单片机固件升级方法
CN114968321A (zh) * 2021-02-25 2022-08-30 新开普电子股份有限公司 一种燃气表终端及其跨版本升级方法
CN113721966B (zh) * 2021-08-27 2024-03-29 杭州华橙软件技术有限公司 节点升级方法、装置、存储介质及电子装置
CN115718614B (zh) * 2022-11-25 2025-07-15 北京亚华物联科技发展有限公司 一种分块差分升级包生成和分块差分升级方法及装置
CN117055936B (zh) * 2023-02-27 2024-07-30 武汉路特斯科技有限公司 增量升级方法、系统、计算机设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770515A (zh) * 2010-01-18 2010-07-07 杭州顺网科技股份有限公司 一种基于数据块比较的数据更新方法
US20130054531A1 (en) * 2011-08-25 2013-02-28 Oracle International Corporation Database cloning
CN105159842A (zh) * 2015-08-31 2015-12-16 浪潮(北京)电子信息产业有限公司 存储系统数据写时拷贝的处理方法和处理装置
CN106528125A (zh) * 2016-10-26 2017-03-22 腾讯科技(深圳)有限公司 一种数据文件的增量更新方法和服务器、客户端以及系统
CN108650287A (zh) * 2018-03-15 2018-10-12 百度在线网络技术(北京)有限公司 物联网中的终端设备的升级方法、设备及计算机可读介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070019188A (ko) * 2005-08-11 2007-02-15 주식회사 팬택 Crc를 이용한 부분다운로드 시스템 및 방법
EP1956482B1 (en) * 2007-02-09 2011-08-17 Telefonaktiebolaget LM Ericsson Generating delta updates for a processing device
US8015220B1 (en) * 2008-08-05 2011-09-06 Smith Micro Software, Inc. Block-based differencing algorithm
US9582431B2 (en) * 2010-03-22 2017-02-28 Seagate Technology Llc Storage address space to NVM address, span, and length mapping/converting
CN102682086B (zh) * 2012-04-23 2014-11-05 华为技术有限公司 数据分块方法及设备
CN103713911B (zh) * 2012-09-28 2017-11-10 中兴通讯股份有限公司 一种单版本升级方法和装置
CN104348884B (zh) * 2013-08-08 2018-05-01 中国科学院计算机网络信息中心 一种云存储自动同步方法
CA2898667C (en) * 2013-08-19 2019-01-15 Huawei Technologies Co., Ltd. Data object processing method and apparatus
CN103634383B (zh) * 2013-11-21 2016-11-23 北京奇虎科技有限公司 基于移动终端的多链接分段下载方法和移动终端
CN103699494B (zh) * 2013-12-06 2017-03-15 北京奇虎科技有限公司 一种数据存储方法、数据存储设备和分布式存储系统
CN104378422A (zh) * 2014-11-13 2015-02-25 中国联合网络通信有限公司保定市分公司 一种移动终端及其文件传输方法和系统
CN106161336A (zh) * 2015-03-25 2016-11-23 阿里巴巴集团控股有限公司 一种信息更新方法、装置及系统
CN105739971B (zh) * 2016-01-20 2019-03-08 网易(杭州)网络有限公司 校验文件的生成、使用方法及装置
CN105786563B (zh) * 2016-02-19 2018-11-09 联州(上海)信息科技有限公司 实现软件在线更新的装置、系统和方法
CN106021003B (zh) * 2016-05-05 2019-11-29 捷开通讯(深圳)有限公司 智能终端的修复方法、智能终端以及服务器
CN107479823B (zh) * 2016-06-07 2020-07-21 阿里巴巴集团控股有限公司 随机读写文件测试中的数据校验方法和装置
CN106354525B (zh) * 2016-08-11 2019-10-01 深圳市宜搜科技发展有限公司 应用软件安装包差分存储方法及系统
CN106254561B (zh) * 2016-10-12 2019-12-17 上海安馨信息科技有限公司 一种网络资源文件的实时离线下载方法及系统
CN106790247A (zh) * 2017-01-23 2017-05-31 青岛海信移动通信技术股份有限公司 一种Android系统升级的方法和装置
US10599619B2 (en) * 2017-06-02 2020-03-24 Apple Inc. Techniques for managing file fragmentation at a computing device
CN108268218B (zh) * 2018-01-10 2021-02-02 北京思特奇信息技术股份有限公司 一种基于网络编码的变长数据段的写入方法及读取方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770515A (zh) * 2010-01-18 2010-07-07 杭州顺网科技股份有限公司 一种基于数据块比较的数据更新方法
US20130054531A1 (en) * 2011-08-25 2013-02-28 Oracle International Corporation Database cloning
CN105159842A (zh) * 2015-08-31 2015-12-16 浪潮(北京)电子信息产业有限公司 存储系统数据写时拷贝的处理方法和处理装置
CN106528125A (zh) * 2016-10-26 2017-03-22 腾讯科技(深圳)有限公司 一种数据文件的增量更新方法和服务器、客户端以及系统
CN108650287A (zh) * 2018-03-15 2018-10-12 百度在线网络技术(北京)有限公司 物联网中的终端设备的升级方法、设备及计算机可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3933573A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947983A (zh) * 2021-04-15 2021-06-11 网易(杭州)网络有限公司 应用程序更新方法及装置、电子设备、存储介质
CN112947983B (zh) * 2021-04-15 2024-03-15 网易(杭州)网络有限公司 应用程序更新方法及装置、电子设备、存储介质
CN113986314A (zh) * 2021-12-09 2022-01-28 北京奕斯伟计算技术有限公司 软件升级方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
EP3933573A4 (en) 2022-05-04
EP3933573B1 (en) 2023-07-12
CN111831297B (zh) 2021-10-26
CN111831297A (zh) 2020-10-27
EP3933573A1 (en) 2022-01-05

Similar Documents

Publication Publication Date Title
EP3933573B1 (en) Zero differential upgrade method, non-volatile storage medium and electronic device
CN110058873B (zh) 应用页面更新方法、装置、设备和存储介质
CN110471692B (zh) 终端程序的空中升级方法、装置、设备及存储介质
CN108011935A (zh) 一种nb-iot设备的程序升级方法、服务器及nb-iot设备
CN104834547B (zh) 一种Squashfs只读根文件系统的远程升级方法及系统
CN107066300B (zh) 一种存储设备的固件升级方法和存储设备
CN110442473B (zh) 一种非易失性数据存储方法、装置、电子设备及介质
WO2022116088A1 (zh) 固件数据处理方法及装置
CN104965736B (zh) 一种连续升级的方法及装置
CN106484454A (zh) 差分升级包的处理方法及装置,升级方法、系统及装置
CN113300875A (zh) 回源数据校验方法、服务器、系统及存储介质
CN103488501A (zh) 光网络终端设备及其系统软件升级方法
CN109656572A (zh) 安装包的打包方法及装置、计算机设备、存储介质
CN114527999A (zh) 设备的升级方法及系统
CN110324407A (zh) 后台服务器的访问控制方法、装置及存储介质
CN116483409A (zh) 一种远程固件更新的方法、系统、电子设备及存储介质
CN112995284A (zh) 文件存储方法、电子设备及存储介质
CN103281356A (zh) 一种分发文件的方法及系统
CN113141267A (zh) 固件升级、信息处理方法、装置及设备
CN111694502B (zh) 区块链数据存储方法、装置、设备及存储介质
CN113918200A (zh) 高效可靠的嵌入式设备应用程序无线升级方法
CN107707395B (zh) 一种数据传输方法、装置和系统
US11314813B2 (en) Apparatus for guaranteeing integrity of state database in blockchain-based environment and method thereof
CN120010747A (zh) 一种数据处理方法及数据存储系统
CN108205588A (zh) 基于主从结构的数据同步方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20790490

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020790490

Country of ref document: EP

Effective date: 20210930

NENP Non-entry into the national phase

Ref country code: DE