WO2024037006A1 - 升级包的生成方法、安装方法、设备及存储介质 - Google Patents

升级包的生成方法、安装方法、设备及存储介质 Download PDF

Info

Publication number
WO2024037006A1
WO2024037006A1 PCT/CN2023/088741 CN2023088741W WO2024037006A1 WO 2024037006 A1 WO2024037006 A1 WO 2024037006A1 CN 2023088741 W CN2023088741 W CN 2023088741W WO 2024037006 A1 WO2024037006 A1 WO 2024037006A1
Authority
WO
WIPO (PCT)
Prior art keywords
slice
data
upgrade package
package
processing
Prior art date
Application number
PCT/CN2023/088741
Other languages
English (en)
French (fr)
Inventor
陈超
张赠辉
王艳召
黄九林
Original Assignee
荣耀终端有限公司
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 荣耀终端有限公司 filed Critical 荣耀终端有限公司
Publication of WO2024037006A1 publication Critical patent/WO2024037006A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Definitions

  • the present application relates to the field of communication technology, and in particular to a generation method, installation method, equipment and storage medium of an upgrade package.
  • the system or software of terminal devices such as mobile phones, tablets, and wearable devices can be upgraded after the supplier releases a new version.
  • the current upgrade method mainly adopts a single-package upgrade strategy. Specifically, the terminal device initiates a software version detection, and the server returns a download path to the terminal device, so that the terminal device obtains an upgrade package according to the download path, and then according to the download path Upgrade the version with the upgrade package.
  • the upgrade package is usually a differential file between two adjacent versions.
  • the version of the second installation package is higher than the version of the first installation package.
  • differential processing is performed on the first installation package and the second installation package to obtain a differential file, and the differential file is packaged into an upgrade package.
  • the terminal device obtains the upgrade package, it can perform restoration processing based on the upgrade package and the stored first installation package to obtain the second installation package, and then implements version upgrade by installing the second installation package.
  • the data volume of the upgrade package obtained by differentially processing the first installation package and the second installation package is still large, resulting in a long download time for the terminal device, and the storage resources of the terminal device are required to be large enough to meet the requirements. Download and installation requirements for the upgrade package.
  • This application provides an upgrade package generation method, installation method, equipment and storage medium, which can reduce the data volume of the upgrade package to a large extent, generate an upgrade package with a relatively small data volume, and save the download time of the upgrade package. , and reduce the requirements for storage resources of terminal devices.
  • the technical solutions are as follows:
  • a first aspect provides a method for generating an upgrade package, which is applied to a first device.
  • the method includes:
  • Slices in the second slice sequence with the same order as those in the first slice sequence form a slice pair
  • multiple slices in the second slice sequence and multiple slices in the first slice sequence form multiple slice pairs.
  • the data processing at least includes skip processing, XOR processing or difference. deal with.
  • an upgrade package is generated based on the slice sequence number of each slice pair in the multiple slice pairs, the data processing type and upgrade package data corresponding to each slice pair, and the upgrade package includes the upgrade package data corresponding to the multiple slice sequence numbers and each slice pair.
  • skipping processing means that the data of the corresponding slice pair is not processed, and the upgrade package data corresponding to the slice pair obtained by skipping processing is empty.
  • the corresponding data in the upgrade package whose data processing type is skip processing is empty.
  • XOR processing refers to outputting different results according to whether the slice pairs' data in different digits are the same. That is, the processing result of the XOR processing is used to indicate whether the slice pairs' data in different digits are the same. For example, when the slice pairs have the same data in a certain number of digits, the corresponding number of digits in the XOR processing result is the first value.
  • Differential processing refers to determining the data difference between two slices in a slice pair, that is, the result of differential processing is used to reflect the data difference of each slice pair.
  • the plurality of slice pairs includes a first slice pair, and the first slice pair is composed of a first slice in a first slice sequence and a second slice in the second slice sequence.
  • Data processing is performed on each slice pair based on the data similarity of each slice pair in multiple slice pairs.
  • the operation of obtaining the upgrade package data corresponding to each slice pair may include the following situations:
  • this slice pair does not need to be processed, and the old version of the slice can be directly used for data installation in the future.
  • Second case If the data of the first slice and the second slice are different and the data similarity is greater than or equal to the first threshold, that is, the data is highly similar, then perform XOR processing on the first slice pair to obtain the first data, Determine upgrade package data corresponding to the first slice pair according to the first data.
  • XOR processing can be performed on the slice pair, and the XOR processing result indicates which part of the data in the slice pair is the same and which part of the data is different.
  • the operation of performing XOR processing on the first slice pair to obtain the first data includes: performing XOR processing on the data at corresponding byte positions in the first slice and the second slice to obtain the first data.
  • the data at the corresponding byte position of the first data is the first value. If the data at the corresponding byte position of the first slice and the second slice If different, the data at the corresponding byte position of the first data is the second value. That is, if the data of the first slice and the second slice at the same byte position are the same, the first value will be output at the same byte position of the first data; if the first slice and the second slice are at the same byte position, the first value will be output. If the data at the same byte position is different, the second value is output at the same byte position of the first data.
  • the data of the first slice pair can be converted into binary data first, and then XOR processing is performed on the first slice pair converted into binary data.
  • the XOR operation of data at corresponding byte positions in the first slice and the second slice includes the following two situations:
  • the data of the first slice and the data of the second slice are both binary data
  • XOR processing is performed on the binary values of the corresponding byte positions in the first slice and the second slice to obtain the first data.
  • the values of the corresponding byte positions of the first slice and the second slice are the same, then the value of the corresponding byte positions of the first data is 0. If the values of the corresponding byte positions of the first slice and the second slice are different, Then the value of the corresponding byte position of the first data is 1.
  • the data of at least one of the first slice and the second slice is not binary data
  • convert the data of the first slice and the second slice that is not binary data into binary data and convert the data into binary data.
  • the binary values corresponding to the byte positions in the first slice and the second slice are XOR-processed to obtain the first data. Among them, if the values of the corresponding byte positions of the first slice and the second slice after conversion to binary data are the same, then the value of the corresponding byte position of the first data is 0. If the value of the first slice after conversion to binary data is If the value of the corresponding byte position of the first data is different from the value of the corresponding byte position of the second slice, the value of the corresponding byte position of the first data is 1.
  • the operation of determining the upgrade package data corresponding to the first slice pair according to the first data may include: determining the first data as the upgrade package data corresponding to the first slice pair. Alternatively, compress the first data to obtain third data, and determine the third data as the upgrade package data corresponding to the first slice.
  • the second data is the difference processing result, that is, the difference file of the first slice pair.
  • differential processing can be performed on the first slice pair to represent the data difference of the first slice pair through the differential processing result.
  • determining the upgrade package data corresponding to the first slice pair according to the second data may include: determining the second data as the upgrade package data corresponding to the first slice pair. Alternatively, compress the second data to obtain fourth data; determine the fourth data as the upgrade package data corresponding to the first slice pair.
  • each slice sequence number in the multiple slice pairs can be The upgrade package data corresponding to the indicated slice pair is written into the data information of the initial data package, and the data processing type corresponding to the slice pair indicated by each slice serial number and the corresponding upgrade package data are stored in the data information of the initial data package.
  • the location information is written into the header information of the initial data packet, the initial data packet after the data is written is an upgrade package, and the multiple slice serial numbers are the slice serial numbers of the multiple slice pairs.
  • the storage location information of the upgrade package data corresponding to the slice pair indicated by each slice serial number in the data information of the initial data packet is used to indicate that the upgrade package data corresponding to the slice pair indicated by each slice serial number is in the data information of the initial data packet.
  • the storage location information of the upgrade package data corresponding to each slice pair in the data information of the initial data package may be offset incrementally by the upgrade package data corresponding to each slice pair in the data information of the initial data package.
  • the header information of the generated upgrade package stores: the data processing type corresponding to each slice serial number among the multiple slice serial numbers, and the storage location information of the upgrade package data corresponding to each slice serial number in the data information of the upgrade package. .
  • the data information of the upgrade package stores the upgrade package data corresponding to each slice serial number.
  • the storage location information of the upgrade package data corresponding to the slice serial number whose data processing type is skip processing is empty, that is, there is no corresponding upgrade package data and no corresponding upgrade package for the slice serial number whose data processing type is skip processing.
  • the upgrade package data corresponding to each slice serial number is upgraded.
  • the storage location information in the data information of the level package may be the incremental offset of the upgrade package data corresponding to each slice sequence number in the data information of the upgrade package, etc.
  • the upgrade package generated through the above method can indicate the association between the old version of the installation package and the new version of the installation package. Specifically, it can indicate which slice pairs have the same data, which slice pairs have highly similar data, and which slice pairs have different data in the corresponding slice sequence. Larger, as well as which data are the same and which data are different in slice pairs with highly similar data, as well as the difference files of slice pairs with large data differences. In this way, for a device to be upgraded, after obtaining the upgrade package, the device can also restore a new version of the installation package based on the upgrade package and the stored old version of the installation package.
  • multiple slice serial numbers can also be written into the header information of the initial data packet.
  • multiple slice serial numbers, the data processing type corresponding to each slice serial number, and the storage location information of the corresponding upgrade package data in the data information of the upgrade package are correspondingly written into the header information of the initial data packet. In this way, the corresponding data processing type and upgrade package data can be indicated by the slice serial number.
  • the slice size can also be written into the header information of the initial data packet, so that the header information of the generated upgrade package also includes the slice size.
  • the number of slices can also be written into the header information of the initial data packet, so that the header information of the generated upgrade package also includes the number of slices.
  • the terminal device that has received the upgrade package By writing the slice size and/or the number of slices in the header information, it is convenient for the terminal device that has received the upgrade package to restore and install the old version stored on the terminal device based on the slice size and/or number of slices in the header information.
  • the installation package is sliced to obtain a slice sequence corresponding to multiple slice serial numbers in the upgrade package.
  • the slice size is the size of the slices in the first slice sequence and the second slice sequence.
  • the number of slices is the number of slice pairs with the same order in the first slice sequence and the second slice sequence.
  • the slice size of each slice in the first slice sequence and the second slice sequence is a preset size
  • the slice size written in the header information is the preset size.
  • the number of slices in the first slice sequence and the number of slices in the second slice sequence are the same, both are preset numbers, and the number of slices written in the header information is the preset number.
  • the installation packages of the new and old versions can be sliced according to the preset slice size and the preset number of slices, ensuring that the slice sizes and slice numbers of the slice sequences of the old and new versions are aligned, which is convenient for Subsequently, each slice pair in the aligned slice sequence of the old and new versions is processed to generate an upgrade package.
  • the preset slice size and the preset number of slices in the header information it is convenient for the terminal device that has received the upgrade package to perform restoration and installation.
  • the stored old version of the installation package is sliced to obtain a slice sequence corresponding to multiple slice serial numbers in the upgrade package, which facilitates the subsequent restoration of a new version of the installation package based on the upgrade package data and slice data with the same serial number.
  • a device for generating an upgrade package has the function of realizing the behavior of the method for generating an upgrade package in the first aspect.
  • the device for generating an upgrade package includes at least one module, and the at least one module is used to implement the method for generating an upgrade package provided in the first aspect.
  • a device for generating an upgrade package in a third aspect, includes a processor and a memory.
  • the memory is used to store support for the generation device of the upgrade package to perform the steps provided in the first aspect.
  • the processor is configured to execute a program stored in the memory.
  • the device for generating the upgrade package may further include a communication bus, which is used to establish a connection between the processor and the memory.
  • a computer-readable storage medium stores instructions that, when run on a computer, cause the computer to execute the method for generating an upgrade package described in the first aspect.
  • a fifth aspect provides a computer program product containing instructions that, when run on a computer, causes the computer to execute the method for generating an upgrade package described in the first aspect.
  • a sixth aspect provides a method for installing an upgrade package, which is applied to a second device.
  • the method includes:
  • the upgrade package which includes upgrade package data corresponding to multiple slice serial numbers and data processing type information corresponding to each slice serial number. According to the data processing type corresponding to each slice serial number among the multiple slice serial numbers, the slice corresponding to each slice serial number is restored to obtain the installation package data corresponding to each slice serial number. Then, a new version of the installation package is generated based on the installation package data corresponding to the multiple slice serial numbers, and the new version of the installation package is installed.
  • the data processing type at least includes skip processing, XOR processing or differential processing, and the upgrade package data corresponding to the data processing type of skip processing is empty.
  • the restoration processing methods are different. Specifically, depending on the data processing type and the data processing type corresponding to each slice serial number in the multiple slice serial numbers, the restoration processing of the slice corresponding to each slice serial number includes the following situations:
  • the first case When the data processing type corresponding to each slice sequence number is skip processing, copy the slice corresponding to each slice sequence number in the first slice sequence to obtain the corresponding sequence number of each slice. installation package data.
  • the first slicing sequence is obtained by slicing an old version of the installation package stored on the second device.
  • the slice data at the corresponding position in the first slice sequence can be directly used as the slice data at the corresponding position in the installation package of the new version.
  • the second case when the data processing type corresponding to each slice serial number is XOR processing, the upgrade package data corresponding to each slice serial number and the slice corresponding to each slice serial number in the first slice sequence Perform XOR processing to obtain the installation package data corresponding to each slice serial number.
  • the third case When the data processing type corresponding to each slice serial number is differential processing, perform inverse difference on the upgrade package data corresponding to each slice serial number and the slices corresponding to each slice serial number in the first slice sequence. Process to obtain the installation package data corresponding to each slice serial number.
  • inverse difference processing is the reverse operation of difference processing, and is used to restore the original file based on the difference file.
  • the slice data with the same slice sequence number in the old version of the installation package can be restored according to the data processing type corresponding to each slice serial number in the upgrade package, so as to restore the new version. installation package, and then install the new version of the installation package. Since the amount of data in the upgrade package is small, the storage resources required to restore and install the upgrade package are also small. This reduces the requirements for storage resources of the terminal device and is suitable for version updates on terminal devices with small memory.
  • different forms of restoration processing can be performed on the slices corresponding to each slice serial number. For example, copy processing is performed when the data processing type is skip processing, XOR processing is performed when the data processing type is XOR processing, and inverse difference processing is performed when the data processing type is differential processing.
  • copy processing is performed when the data processing type is skip processing
  • XOR processing is performed when the data processing type is XOR processing
  • inverse difference processing is performed when the data processing type is differential processing.
  • the header information of the upgrade package includes the slice size, and the old version can be updated based on the slice size.
  • the installation package is sliced to obtain the first slice sequence. In this way, the size of each slice in the first slice sequence can be the slice size.
  • the header information of the upgrade package includes the slice size and the number of slices, and the old version of the installation package can be sliced according to the slice size and the number of slices to obtain the first slice sequence.
  • the size of each slice in the first slice sequence can be the slice size
  • the number of slices included in the first slice sequence can be the slice number.
  • the header information of the upgrade package stores the data processing class type corresponding to each slice serial number in multiple slice serial numbers and the storage location information of the corresponding upgrade package data in the data information of the upgrade package
  • the data information of the upgrade package The upgrade package data corresponding to each of the multiple slice serial numbers is stored. Before generating the installation package data corresponding to each slice serial number, you can first obtain the data processing type corresponding to each slice serial number and the storage location information of the corresponding upgrade package data in the data information of the upgrade package from the header information of the upgrade package.
  • the installation package data corresponding to multiple slice serial numbers can be spliced to obtain a second installation package.
  • an installation device for an upgrade package has the function of realizing the behavior of the installation method of the upgrade package in the first aspect.
  • the installation device of the upgrade package includes at least one module, and the at least one module is used to implement the installation method of the upgrade package provided in the first aspect.
  • An eighth aspect provides an installation device for an upgrade package.
  • the structure of the installation device for the upgrade package includes a processor and a memory.
  • the memory is used to store the installation device that supports the upgrade package to perform the steps provided in the first aspect.
  • the processor is configured to execute a program stored in the memory.
  • the installation device of the upgrade package may further include a communication bus, which is used to establish a connection between the processor and the memory.
  • a computer-readable storage medium stores instructions that, when run on a computer, cause the computer to execute the installation method of the upgrade package described in the first aspect.
  • a computer program product containing instructions which when run on a computer causes the computer to execute the installation method of the upgrade package described in the first aspect.
  • the installation packages of the old and new versions can be sliced first, and then according to the data similarity of each slice pair corresponding to the old and new versions, differential processing, XOR processing or skip processing can be performed on each slice pair. For example, in When the data are the same, skip processing is performed, when the data similarity is high, XOR processing is performed, and when the data similarity is low, differential processing is performed to obtain the upgrade package data corresponding to each slice pair. Instead of performing differential processing on all slice pairs corresponding to the old and new versions. Then, an upgrade package is generated based on the data processing type and upgrade package data corresponding to each slice pair.
  • the process of generating the upgrade package by performing differential processing based on the data similarity of the slice pairs, we can overcome the shortcomings of differential processing for all slice pairs and reduce the size of the upgrade package to a greater extent.
  • the data volume is relatively small, and an upgrade package with a relatively small data volume is generated, which further saves the download time of the upgrade package and reduces the requirements on the storage resources of the terminal device.
  • Figure 1 is a schematic diagram of a system for version update of a device provided by an embodiment of the present application
  • Figure 2 is a logical schematic diagram of the generation and installation process of an upgrade package provided by related technologies
  • Figure 3 is a schematic diagram of a system for version update of another device provided by an embodiment of the present application.
  • Figure 4 is a logical schematic diagram of the generation and installation process of an upgrade package provided by an embodiment of the present application.
  • Figure 5 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
  • Figure 6 is a schematic structural diagram of a terminal device provided by an embodiment of the present application.
  • Figure 7 is a flow chart of a method for generating and installing an upgrade package provided by an embodiment of the present application.
  • Figure 8 is a schematic flowchart of version update of a device provided by an embodiment of the present application.
  • Figure 9 is a logical schematic diagram of the generation and installation process of an upgrade package provided by an embodiment of the present application.
  • Figure 10 is a schematic structural diagram of an upgrade package generating device provided by an embodiment of the present application.
  • Figure 11 is a schematic structural diagram of an upgrade package installation device provided by an embodiment of the present application.
  • Terminal devices such as mobile phones, tablets, and wearable devices need to update the system or software of the terminal device according to the upgrade package released by the supplier.
  • terminal devices can use over-the-air (OTA) upgrade technology to implement version updates.
  • OTA technology is a technology that downloads data through a wireless network.
  • OTA upgrade technology is a technology that uses the wireless network interface of the terminal device to remotely update the version of the object to be upgraded, so as to remotely upgrade the system or software of the terminal device. version of the object. It should be understood that the terminal device can also use other technologies to implement version updates.
  • Figure 1 is a schematic diagram of a system for version update of a device provided by an embodiment of the present application.
  • the system includes a first device 11 , a second device 12 , a third device 13 and a fourth device 14 .
  • the first device 11, the second device 12, the third device 13 and the fourth device 14 may communicate through a limited network or a wireless network.
  • the first device 11 is a device used for making and uploading upgrade packages, and may be a terminal device or a server.
  • the second device 12 is a device used to store and deliver the upgrade package, such as a server in the cloud.
  • the third device 13 is a device used to download the upgrade package, and may be a terminal device or a server. In addition, after downloading the upgrade package, the third device 13 may perform a version update based on the upgrade package, or may forward the downloaded upgrade package to the fourth device 14, and the fourth device performs a version update based on the upgrade package.
  • the fourth device 14 is a device used for version upgrade, and may be a terminal device or a server.
  • the terminal device can be a mobile phone, a tablet, a computer or a wearable device, etc.
  • the first device 11 prepares an upgrade package for the object to be upgraded, uploads the upgrade package to the second device 12, and the second device 12 stores it.
  • the third device 13 downloads the upgrade package from the second device 12 and updates the version of the object to be upgraded according to the upgrade package.
  • the third device 13 can also send the upgrade package to the fourth device 14 after downloading the upgrade package from the second device 12, and the fourth device 14 updates its own version of the object to be upgraded based on the upgrade package.
  • upgrade packages there are two main methods for making upgrade packages: one is to use a full upgrade method, that is, package all the data of the new version of the installation package into the upgrade package, but this upgrade package has a large amount of data.
  • the other is to use the differential upgrade method, that is, perform differential processing on the new version of the installation package and the old version of the installation package to obtain the differential file, and package the differential file into the upgrade package.
  • the data volume of this upgrade package is less than the full amount. The amount of data in the upgrade package obtained by the upgrade.
  • upgrade packages are usually produced using a differential upgrade method, that is, the upgrade package is usually a differential file between two adjacent versions.
  • the first device 11 can perform differential processing on the old version of the installation package 1 and the new version of the installation package 2 to obtain a differential file, and package the differential file into an upgrade package, thereby obtaining an upgrade package for the object to be upgraded.
  • the third device 13 or the fourth device 14 obtains the upgrade package, it can perform restoration processing based on the upgrade package and the old version of the installation package 1 to obtain a new version of the installation package 2, and implement the version update by installing the second installation package.
  • the restoration process is the reverse operation of the differential process and is used to restore the original file based on the differential file.
  • the data volume of the upgrade package obtained in this way is still large, resulting in a long download time for the device downloading the upgrade package, and the storage resources of the device to be updated have certain requirements, and the device needs to have sufficient storage resources.
  • Large enough to meet the installation requirements of the upgrade package For example, for devices with small memory such as wearable devices, due to their limited memory, they may not be able to store upgrade packages with a large amount of data, nor can they restore and install upgrade packages with a large amount of data. Therefore, this method The obtained upgrade package cannot meet the version update requirements of small memory devices.
  • FIG 2 is a logical diagram of the generation and installation process of an upgrade package provided by related technologies.
  • the generation process of the upgrade package includes: obtaining the old version of the installation package 1 and installing the new version. Package 2. Then, the installation package 1 is sliced to obtain the slice sequence 1, and the installation package 2 is sliced to obtain the slice sequence 2. After that, for each slice pair with the same sorting in slice sequence 1 and slice sequence 2, differential processing is performed on each slice pair to obtain a differential file corresponding to each slice pair, and then the multiple slice pairs obtained by differential processing are The differential files are spliced to obtain the upgrade package.
  • the installation process of the upgrade package includes: after obtaining the upgrade package, restoring the corresponding differential files and the old version of the installation package 1 according to multiple slices in the upgrade package to obtain the new version of the installation package 2.
  • the installation packages of the new and old versions are first sliced, and then the new and old versions are All corresponding slice pairs are differentially processed to generate differential files of the old and new versions.
  • the data volume of the upgrade package can be reduced to a certain extent, based on the flaws of the differential algorithm, the data of the upgrade package generated in this way The volume may still be large.
  • the installation package of the old and new versions is smaller, the size of the slices obtained by segmentation will also be smaller.
  • the difference files obtained by differential processing will be larger. For example, for a slice pair with a size of 1 byte, the difference file obtained by differential processing is larger than 1 byte.
  • the first device 11 for producing the upgrade package is a package server
  • the second device 12 for storing and delivering the upgrade package is a cloud server
  • the third device 13 for downloading the upgrade package is a mobile phone
  • the third device 13 for performing version updates is a mobile phone.
  • FIG 3 is a schematic diagram of a system for version update of another device provided by an embodiment of the present application.
  • the system includes a package server 21, a cloud server 22, a mobile phone 23 and a headset 24.
  • the package server 21, the cloud server 22, the mobile phone 23 and the headset 24 can be connected through a limited network or a wireless network.
  • the earphone 24 is a wireless earphone, such as a wireless Bluetooth earphone.
  • the package server 21 can obtain the new version of the installation package 1 and the old version of the installation package 2, generate an upgrade package based on the installation package 1 and the installation package 2, and upload the upgrade package to the cloud server 22.
  • the mobile phone 23 downloads the upgrade package from the cloud server 22 and sends the upgrade package to the headset 24 .
  • the headset 24 receives the upgrade package and performs a version update by installing the upgrade package, for example, generating a new version of the installation package based on the old version of the installation package and the upgrade package, and installing the new version of the installation package.
  • the generation process of the upgrade package may include: slicing the installation package 1 to obtain slicing sequence 1, slicing the installation package 2 to obtain slicing sequence 2, and both slicing sequence 1 and slicing sequence 2 include multiple Slices, slices with the same order in slice sequence 1 and slice sequence 2 form a slice pair, and multiple slices in slice sequence 1 and multiple slices in slice sequence 2 form multiple slice pairs.
  • Data processing is performed on each slice pair according to the data similarity of each slice pair in the multiple slice pairs, and the upgrade package data corresponding to each slice pair is obtained.
  • data processing includes skip processing, XOR processing or differential processing, and the slices obtained by skip processing are empty for the corresponding upgrade package data.
  • an upgrade package is generated based on the slice sequence number of each slice pair, the data processing type and upgrade package data corresponding to each slice pair, and the upgrade package includes upgrade package data corresponding to multiple slice sequence numbers and the upgrade package data corresponding to each slice sequence number.
  • Data processing type information, the corresponding upgrade package data whose data processing type is skip processing is empty.
  • the installation process of the upgrade package includes: generating installation package 2 based on the upgrade package and installation package 1; and installing installation package 2. For example, slice the installation package 1 and obtain the slice sequence 1. According to the data processing type corresponding to each slice serial number among the multiple slice serial numbers included in the upgrade package, restore the slice corresponding to each slice serial number in slice sequence 1 to obtain the installation package data corresponding to each slice serial number; according to Installation package data corresponding to multiple slice serial numbers generates a second installation package.
  • differential processing and XOR can be performed on each slice pair according to the data similarity of each slice pair corresponding to the old and new versions.
  • Processing or skip processing such as skip processing when the data is the same, XOR processing when the data similarity is high, and differential processing when the data similarity is low. Instead of performing differential processing on all slice pairs corresponding to the old and new versions.
  • differential processing By performing differential processing based on the data similarity of slice pairs, it is possible to overcome the The disadvantages of differential processing can reduce the data volume of the upgrade package to a large extent, generate an upgrade package with a relatively small data volume, further save the download time of the upgrade package, and reduce the storage resource requirements of the terminal device. .
  • Fig. 5 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
  • the computer device may be the first device 11, the second device 12, the third device 13 or the fourth device 14 shown in Fig. 1 .
  • the computer device includes at least one processor 501 , a communication bus 502 , a memory 503 and at least one communication interface 504 .
  • the processor 501 may be a microprocessor (including a central processing unit (CPU), etc.), an application-specific integrated circuit (ASIC), or one or more processors for controlling the solution of the present application. Integrated circuit for program execution.
  • Communication bus 502 may include a path for communicating information between the above-described components.
  • the memory 503 can be a read-only memory (ROM), a random access memory (RAM), an electrically erasable programmable read-only memory (EEPROM), an optical disk ( Including compact disc read-only memory (CD-ROM), compressed disc, laser disc, digital versatile disc, Blu-ray disc, etc.), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store Without limitation, any other medium that may be the desired program code in the form of instructions or data structures and capable of being accessed by a computer.
  • the memory 503 may exist independently and be connected to the processor 501 through the communication bus 502. Memory 503 may also be integrated with processor 501.
  • the communication interface 504 uses any device such as a transceiver for communicating with other devices or communication networks, such as Ethernet, wireless access network (radio access network, RAN), wireless local area network (WLAN), etc.
  • a transceiver for communicating with other devices or communication networks, such as Ethernet, wireless access network (radio access network, RAN), wireless local area network (WLAN), etc.
  • the processor 501 may include one or more CPUs, such as CPU0 and CPU1 as shown in FIG. 5 .
  • the computer device may include multiple processors, such as the processor 501 and the processor 505 shown in FIG. 5 .
  • processors can be a single-core processor or a multi-core processor.
  • a processor here may refer to one or more devices, circuits, and/or processing cores for processing data (such as computer program instructions).
  • the computer device may also include an output device 506 and an input device 507.
  • Output device 506 communicates with processor 501 and can display information in a variety of ways.
  • the output device 506 may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (cathode ray tube, CRT) display device or a projector (projector), etc.
  • Input device 507 communicates with processor 501 and can receive user input in a variety of ways.
  • the input device 507 may be a mouse, a keyboard, a touch screen device, a sensing device, or the like.
  • the above-mentioned computer equipment may be a general computer equipment or a special purpose computer equipment.
  • the computer device may be a desktop computer, a portable computer, a network server, a handheld computer, a mobile phone, a tablet computer, a wireless terminal device, a communication device or an embedded device.
  • the embodiments of this application do not limit the type of computer device.
  • the memory 503 is used to store the program code 510 for executing the solution of the present application
  • the processor 501 is used to execute the program code 510 stored in the memory 503.
  • the computer device can implement the generation and processing method of the upgrade package provided in the embodiment of FIG. 6 below through the processor 501 and the program code 510 in the memory 503.
  • FIG. 6 is a schematic structural diagram of a terminal device 100 provided by an embodiment of the present application.
  • the terminal device 100 may be the third device 13 or the fourth device 14 shown in FIG. 1 .
  • the terminal device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, and an antenna.
  • a processor 110 an external memory interface 120
  • an internal memory 121 a universal serial bus (USB) interface 130
  • USB universal serial bus
  • Antenna 2 mobile communication module 150, wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone interface 170D, sensor module 180, button 190, motor 191, indicator 192, camera 193, display Screen 194, and subscriber identification module (subscriber identification module, SIM) card interface 195, etc.
  • subscriber identification module subscriber identification module, SIM
  • the structure illustrated in the embodiment of the present application does not constitute a specific limitation on the terminal device 100.
  • the terminal device 100 may include more or less components than shown in the figures, or combine some components, or split some components, or arrange different components.
  • the components illustrated may be implemented in hardware, software, or a combination of software and hardware.
  • the processor 110 may include one or more processing units.
  • the processor 110 may include an application processor (application processor, AP), a modem processor, a graphics processing unit (GPU), and an image signal processor. (image signal processor, ISP), controller, memory, video codec, digital signal processor (digital signal processor, DSP), baseband processor, and/or neural-network processing unit (NPU) wait.
  • application processor application processor, AP
  • modem processor graphics processing unit
  • GPU graphics processing unit
  • image signal processor image signal processor
  • ISP image signal processor
  • controller memory
  • video codec digital signal processor
  • DSP digital signal processor
  • baseband processor baseband processor
  • NPU neural-network processing unit
  • different processing units can be independent devices or integrated in one or more processors.
  • the controller may be the nerve center and command center of the terminal device 100 .
  • the controller can generate operation control signals based on the instruction operation code and timing signals to complete the control of fetching and executing instructions.
  • the processor 110 may also be provided with a memory for storing instructions and data.
  • the memory in processor 110 is cache memory. This memory may hold instructions or data that have been recently used or recycled by processor 110 . If the processor 110 needs to use the instructions or data again, it can be called directly from the memory. Repeated access is avoided and the waiting time of the processor 110 is reduced, thus improving the efficiency of the system.
  • the processor 110 may include one or more interfaces, such as an integrated circuit (inter-integrated circuit, I2C) interface, an integrated circuit built-in audio (inter-integrated circuit sound, I2S) interface, pulse code modulation (pulse code modulation, PCM) interface, universal asynchronous receiver/transmitter (UART) interface, mobile industry processor interface (mobile industry processor interface, MIPI), general-purpose input/output, GPIO) interface, subscriber identity module (SIM) interface, and/or universal serial bus (USB) interface, etc.
  • I2C integrated circuit
  • I2S integrated circuit built-in audio
  • PCM pulse code modulation
  • UART universal asynchronous receiver/transmitter
  • MIPI mobile industry processor interface
  • MIPI mobile industry processor interface
  • GPIO general-purpose input/output
  • SIM subscriber identity module
  • USB universal serial bus
  • the interface connection relationships between the modules illustrated in the embodiments of the present application are only schematic illustrations and do not constitute a structural limitation on the terminal device 100 .
  • the terminal device 100 may also adopt different interface connection methods in the above embodiments, or a combination of multiple interface connection methods.
  • the charging management module 140 is used to receive charging input from the charger.
  • the charger can be a wireless charger, It can also be a wired charger.
  • the power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110.
  • the power management module 141 receives input from the battery 142 and/or the charging management module 140, and supplies power to the processor 110, internal memory 121, external memory, display screen 194, camera 193, wireless communication module 160, etc.
  • the wireless communication function of the terminal device 100 can be implemented through the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor and the baseband processor.
  • Antenna 1 and Antenna 2 are used to transmit and receive electromagnetic wave signals.
  • Each antenna in terminal device 100 may be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve antenna utilization. For example: Antenna 1 can be reused as a diversity antenna for a wireless LAN. In other embodiments, antennas may be used in conjunction with tuning switches.
  • the mobile communication module 150 can provide wireless communication solutions including 2G/3G/4G/5G applied to the terminal device 100.
  • the mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (LNA), etc.
  • the mobile communication module 150 can receive electromagnetic waves through the antenna 1, perform filtering, amplification and other processing on the received electromagnetic waves, and transmit them to the modem processor for demodulation.
  • the mobile communication module 150 can also amplify the signal modulated by the modem processor and convert it into electromagnetic waves through the antenna 1 for radiation.
  • at least part of the functional modules of the mobile communication module 150 may be disposed in the processor 110 .
  • at least part of the functional modules of the mobile communication module 150 and at least part of the modules of the processor 110 may be provided in the same device.
  • a modem processor may include a modulator and a demodulator.
  • the modulator is used to modulate the low-frequency baseband signal to be sent into a medium-high frequency signal.
  • the demodulator is used to demodulate the received electromagnetic wave signal into a low-frequency baseband signal.
  • the demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing.
  • the application processor outputs sound signals through audio devices (not limited to speaker 170A, receiver 170B, etc.), or displays images or videos through display screen 194.
  • the wireless communication module 160 can provide applications on the terminal device 100 including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) network), Bluetooth (bluetooth, BT), and global navigation satellites. Wireless communication solutions such as global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared technology (infrared, IR), etc.
  • the wireless communication module 160 may be one or more devices integrating at least one communication processing module.
  • the wireless communication module 160 receives electromagnetic waves via the antenna 2 , frequency modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110 .
  • the wireless communication module 160 can also receive the signal to be sent from the processor 110, frequency modulate it, amplify it, and convert it into electromagnetic waves through the antenna 2 for radiation.
  • the antenna 1 of the terminal device 100 is coupled to the mobile communication module 150, and the antenna 2 is coupled to the wireless communication module 160, so that the terminal device 100 can communicate with the network and other devices through wireless communication technology.
  • Wireless communication technologies may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), broadband code division Multiple access (wideband code division multiple access, WCDMA), time-division code division multiple access (TD-SCDMA), long term evolution (long term evolution, LTE), BT, GNSS, WLAN, NFC, FM, and/or IR technology, etc.
  • GNSS can include global positioning system (GPS), global navigation satellite system (GLONASS), Beidou navigation satellite system (BDS), quasi-zenith satellite system (quasi-zenith) satellite system (QZSS) and/or satellite based augmentation systems (SBAS).
  • GPS global positioning system
  • GLONASS global navigation satellite system
  • BDS Beidou navigation satellite system
  • QZSS quasi-zenith satellite system
  • SBAS satellite based augmentation systems
  • the terminal device 100 implements display functions through a GPU, a display screen 194, an application processor, and the like.
  • the GPU is an image processing microprocessor and is connected to the display screen 194 and the application processor. GPUs are used to perform mathematical and geometric calculations for graphics rendering.
  • Processor 110 may include one or more GPUs that execute program instructions to generate or alter display information.
  • the display screen 194 is used to display images, videos, etc.
  • Display 194 includes a display panel.
  • the display panel can use a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active matrix organic light emitting diode or an active matrix organic light emitting diode (active-matrix organic light emitting diode).
  • LCD liquid crystal display
  • OLED organic light-emitting diode
  • AMOLED organic light-emitting diode
  • FLED flexible light-emitting diode
  • Miniled MicroLed, Micro-oLed, quantum dot light emitting diode (QLED), etc.
  • the terminal device 100 may include 1 or N display screens 194, where N is an integer greater than 1.
  • the terminal device 100 can implement the shooting function through the ISP, camera 193, video codec, GPU, display screen 194, application processor, etc.
  • the external memory interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the terminal device 100.
  • the external memory card communicates with the processor 110 through the external memory interface 120 to implement the data storage function. For example, save music, video and other files on an external memory card.
  • Internal memory 121 may be used to store computer-executable program code, which includes instructions.
  • the processor 110 executes various functional applications and data processing of the terminal device 100 by executing instructions stored in the internal memory 121 .
  • the internal memory 121 may include a program storage area and a data storage area. Among them, the stored program area can store an operating system, at least one application program required for a function (such as a sound playback function, an image playback function, etc.).
  • the storage data area may store data created during use of the terminal device 100 (such as audio data, phone book, etc.).
  • the internal memory 121 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, universal flash storage (UFS), etc.
  • the terminal device 100 can implement audio functions, such as music playback, recording, etc., through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the headphone interface 170D, and the application processor.
  • audio functions such as music playback, recording, etc.
  • Figure 7 is a flow chart of a method for generating and installing an upgrade package provided by an embodiment of the present application. The method is applied to the first device and the fourth device. As shown in Figure 7, the method includes the following steps:
  • Step 701 The first device obtains a first installation package and a second installation package, and the version of the second installation package is higher than the version of the first installation package.
  • the first installation package and the second installation package are installation packages of different versions of the object to be upgraded, and the version of the second installation package is higher than the version of the first installation package.
  • the object to be upgraded may be a system or software object that needs to be updated.
  • the first installation package and the second installation package are both installation packages of the target software, and the first installation package is version 1.
  • installation package, the second installation package is the installation package of version 2, and version 2 is higher than version 1.
  • the target software can be any software.
  • the first device can obtain the first installation package or the second installation package uploaded by the user.
  • the first installation package is obtained according to the storage path of the first installation package
  • the second installation package is obtained according to the storage path of the second installation package.
  • the first installation package is downloaded according to the download path of the first installation package
  • the second installation package is obtained according to the download path of the second installation package.
  • the first device is installed with upgrade package production software, and relevant personnel can upload the first installation package and the second installation package in the relevant interface of the upgrade package production software, and then trigger the upgrade package production instruction.
  • the upgrade package production software of the first device obtains the first installation package and the second installation package uploaded by the user, and then performs the following steps 702 to 704 on the first installation package and the second installation package.
  • the package is processed and an upgrade package is generated.
  • the relevant personnel can also enter or select the storage path of the first installation package and the storage path of the second installation package in the relevant interface of the upgrade package production software, and then trigger the upgrade package production instruction.
  • the upgrade package production software of the first device can obtain the first installation package according to the storage path of the first installation package, and obtain the second installation package according to the storage path of the second installation package.
  • the first device can also obtain the first installation package and the second installation package through other methods, such as obtaining the first installation package and the second installation package from other devices, such as downloading the first installation package and the second installation package from a server.
  • the embodiment of the present application does not limit the method of obtaining the first installation package and the second installation package.
  • Step 702 The first device slices the first installation package to obtain a first slice sequence, slices the second installation package to obtain a second slice sequence, and the second slice sequence is the same slice sequence as the first slice sequence. To form a slice pair, multiple slices in the second slice sequence and multiple slices in the first slice sequence form multiple slice pairs.
  • the first slice sequence includes multiple slices
  • the second slice sequence also includes multiple slices.
  • the two slices can be called a slice pair.
  • the first slice in the first slice sequence and the first slice in the second slice sequence are called a slice pair
  • the second slice in the first slice sequence and the second slice in the second slice sequence are called a slice pair.
  • a slice is called a slice pair.
  • the first installation package and the second installation package can be sliced according to the same slicing rules.
  • the slicing rules include a preset slicing size.
  • the preset slicing size is used to indicate that the size of each slice obtained by slicing is the same.
  • Default slice size is used to indicate that the size of each slice in the first slice sequence and the second slice sequence.
  • the slicing rule may also include a preset number of slices, which is used to indicate that the number of slices in the slice sequence obtained by slicing is the preset number of slices. In this way, it can be ensured that the first slice sequence and the second slice sequence have the same number of slices.
  • the sizes of the first installation package and the second installation package of different versions are the same or not much different. Therefore, after slicing the first installation package and the second installation package according to the same slicing rules, the first The slice sequence and the second slice sequence have the same number of slices.
  • the first slice sequence obtained by slicing the first installation package according to the slicing rule includes 4 slices, and the slice size of each slice is 16k.
  • the second slice sequence obtained by slicing the second installation package according to the slicing rule also includes 4 slices, and the slice size of each slice is 16k.
  • a slice can be identified as a block, or blk for short.
  • the 4 slices in the first slice sequence can be identified as: 1-blk0, 1-blk1, 1-blk2, 1-blk3, and the 4 slices in the second slice sequence can be They are respectively identified as: 2-blk0, 2-blk1, 2-blk2, 2-blk3.
  • the first slice sequence and the second slice sequence can form 4 slice pairs: 1-blk0 and 2-blk0, 1-blk1 and 2-blk1, 1-blk2 and 2-blk2, and 1-blk3 and 2-blk3.
  • Step 703 The first device performs data processing on each slice pair according to the data similarity of each slice pair in the plurality of slice pairs, and obtains the upgrade package data corresponding to each slice pair.
  • the data processing at least includes skip processing, exception processing. or processing or differential processing.
  • skipping processing means that the data of the corresponding slice pair is not processed, and the upgrade package data corresponding to the slice pair obtained by skipping processing is empty.
  • XOR processing refers to data processing using XOR logic.
  • XOR logic means that when two data are the same, the first value is output, and when the two data are different, the second value is output.
  • XOR processing is performed on the data of corresponding digits in the two slices included in the slice pair.
  • the corresponding digit of the XOR processing result is the first value.
  • the XOR processing result is the second value in the corresponding digit.
  • Differential processing refers to determining the data difference between two slices in a slice pair, that is, the result of differential processing is used to reflect the data difference of each slice pair.
  • each slice pair in order to reduce the data amount of the upgrade package, each slice pair can be differentiated based on the data similarity of each slice pair, instead of performing solid differential processing on each slice pair. For example, if the data are the same, skip processing will be performed, if the data are highly similar, XOR processing will be performed, and if the data differences are large, differential processing will be performed. In this way, relatively matching data processing results can be used to indicate the data correlation between each slice pair based on data similarity, so that the data volume of the upgrade package generated based on the data processing results is smaller.
  • the plurality of slice pairs includes a first slice pair, and the first slice pair is composed of a first slice in a first slice sequence and a second slice in a second slice sequence.
  • Data processing is performed on each slice pair based on the data similarity of each slice pair.
  • the operation of obtaining the upgrade package data corresponding to each slice pair can include the following situations:
  • the upgrade package data corresponding to the first slice pair is empty means that the first slice pair has no corresponding upgrade package data.
  • Second case If the data of the first slice and the second slice are different and the data similarity is greater than or equal to the first threshold, XOR processing is performed on the first slice pair to obtain the first data, which is determined based on the first data The first slice pairs corresponding upgrade package data.
  • the first threshold can be set in advance, for example, to a higher similarity threshold.
  • the first threshold may be 80% or 90%, etc.
  • XOR processing can be performed on the slice pair, and the XOR processing result indicates which part of the data in the slice pair is the same and which part of the data is different.
  • the operation of performing XOR processing on the first slice pair to obtain the first data includes: performing XOR processing on the data at corresponding byte positions in the first slice and the second slice to obtain the first data.
  • the data at the corresponding byte position of the first slice and the second slice are the same, then the data at the corresponding byte position of the first data is the first value. If the data at the corresponding byte position of the first slice and the second slice If different, the data at the corresponding byte position of the first data is the second value.
  • the first data is the XOR processing result.
  • the first slice, the second slice and the first data generally have the same number of bytes.
  • the first value in the first data is used to indicate that the data of the first slice pair at the corresponding byte position are the same, and the second value is used to indicate that the data of the first slice pair at the corresponding byte position are different.
  • the first value and the second value can be preset, for example, the first value is 0 and the second value is 1.
  • the first value is output at the same byte position of the first data; if the first slice and the second slice are at the same byte position, If the data at the same byte position is different, the second value is output at the same byte position of the first data.
  • the processing object of XOR processing is generally binary data. If the data of the first slice pair is not binary data, you can first convert the data of the first slice pair into binary data, and then convert the third slice pair into binary data. All slice pairs are XORed.
  • XOR processing is performed on the data at corresponding byte positions in the first slice and the second slice, and the operation to obtain the first data includes the following two situations:
  • the value of the corresponding byte positions of the first data is 0. If the values of the corresponding byte positions of the first slice and the second slice are different, Then the value of the corresponding byte position of the first data is 1.
  • the first data obtained by XORing the first slice and the second slice is "0001".
  • the "0" in “0001” indicates that the first slice pair has different data at the corresponding byte position
  • "1" indicates that the first slice pair has different data at the corresponding byte position.
  • the value of the corresponding byte position of the first data is 0. If the value of the first slice after conversion to binary data is If the value of the corresponding byte position of the first data is different from the value of the corresponding byte position of the second slice, the value of the corresponding byte position of the first data is 1.
  • the data of the first slice and the second slice are hexadecimal data
  • the operation of determining the upgrade package data corresponding to the first slice pair according to the first data may include any of the following two implementation methods:
  • a first implementation manner determine the first data as the upgrade package data corresponding to the first slice pair.
  • the XOR processing result is directly used as the upgrade package data corresponding to the first slice pair. For example, if the first data is "0001", then "0001" is directly used as the upgrade package data corresponding to the first slice pair.
  • the second implementation method compress the first data to obtain the third data, and determine the third data as the upgrade package data corresponding to the first slice.
  • the XOR processing result is first compressed, and then the compressed XOR processing result is used as the upgrade package data corresponding to the first slice pair.
  • the 0s in the first data can be compressed to obtain the third data. For example, if the first data is "0001", then the 0s in the first data "0001" are compressed to obtain the third data "1". In this way, the amount of data can be reduced, thereby reducing data occupation space and data transmission efficiency.
  • the third data obtained includes 1s and does not include 0s.
  • the third data may also include the byte position information of the compressed 0 or the byte position information corresponding to the remaining 1, to indicate which byte positions of the data are compressed, so that the compressed data can be subsequently processed based on this information.
  • the third data is decompressed to obtain the first data.
  • Third case If the data similarity between the first slice and the second slice is less than the first threshold, perform differential processing on the first slice pair to obtain the second data, and determine the correspondence between the first slice pair based on the second data upgrade package data.
  • the data similarity between the first slice and the second slice is less than the first threshold, it means that the data difference between the first slice and the second slice is large.
  • differential processing can be performed on the first slice pair to The data difference of the first slice pair is represented by the difference processing result.
  • the second data is the difference processing result, that is, the difference file of the first slice pair.
  • Determining the upgrade package data corresponding to the first slice pair according to the second data may include any of the following two implementation methods:
  • a first implementation manner determine the second data as the upgrade package data corresponding to the first slice pair.
  • the difference processing result is directly used as the upgrade package data corresponding to the first slice pair.
  • the second implementation method compress the second data to obtain fourth data; determine the fourth data as the upgrade package data corresponding to the first slice pair.
  • the differential processing result is first compressed, and then the compressed differential processing result is used as the upgrade package data corresponding to the first slice pair.
  • the compression algorithm for compressing the second data can be set in advance as needed, and this is not limited in the embodiments of the present application.
  • upgrade package data corresponding to multiple slice pairs can be obtained.
  • the upgrade package data corresponding to the slice pair whose data processing type is skip processing is empty, that is, there is no corresponding upgrade package data for the slice pair whose data processing type is skip processing.
  • Step 704 The first device generates an upgrade package based on the slice sequence number of each slice pair in the plurality of slice pairs, the data processing type and upgrade package data corresponding to each slice pair, and the upgrade package includes upgrade packages corresponding to multiple slice sequence numbers. Data sum and data processing type information corresponding to each slice sequence number.
  • the data processing type information is used to indicate the data processing type used by the corresponding slice pair for data processing.
  • Data processing types include skip processing, XOR processing, or differential processing.
  • the data processing type and upgrade package data corresponding to the slice pair indicated by each slice sequence number in the multiple slice serial numbers can be packaged into the upgrade package to generate an upgrade package.
  • the multiple slice serial numbers are the slice serial numbers of multiple slice pairs.
  • the slice sequence number of the first slice sequence or the second slice sequence can be represented by 0 to n-1, where n is the number of slices in the slice sequence. It should be understood that the slice serial number of the slice sequence can also be expressed in other ways, such as 1 to n, which is not limited in the embodiment of the present application.
  • the operation of generating the upgrade package includes: matching the slice pairs indicated by each slice sequence number in the multiple slice sequence numbers.
  • the initial data packet after the data is written is an upgrade packet
  • the multiple slice serial numbers are the slice serial numbers of the multiple slice pairs.
  • write the upgrade package data corresponding to each slice pair into the data information of the initial data package write the slice sequence number of each slice pair, the data processing type corresponding to each slice pair, and the upgrade package corresponding to each slice pair.
  • the storage location information of the data in the data information of the initial data packet is written into the header information of the initial data packet, and the initial data packet after the data is written is an upgrade package.
  • the upgrade package data corresponding to the slice pair whose data processing type is skip processing and the storage location information corresponding to the upgrade package data are both empty.
  • the storage location information of the upgrade package data corresponding to the slice pair indicated by each slice serial number in the data information of the initial data packet is used to indicate that the upgrade package data corresponding to the slice pair indicated by each slice serial number is in the data information of the initial data packet.
  • the storage location information of the upgrade package data corresponding to each slice pair in the data information of the initial data package may be offset incrementally by the upgrade package data corresponding to each slice pair in the data information of the initial data package.
  • the header information of the generated upgrade package stores: the data processing type corresponding to each slice serial number among the multiple slice serial numbers, and the storage location information of the upgrade package data corresponding to each slice serial number in the data information of the upgrade package.
  • the data information of the upgrade package stores the upgrade package data corresponding to each slice serial number.
  • the storage location information of the upgrade package data corresponding to the slice serial number whose data processing type is skip processing is empty, that is, there is no corresponding upgrade package data and no corresponding upgrade package for the slice serial number whose data processing type is skip processing. Data storage location information in the upgrade package.
  • multiple slice serial numbers can also be written into the header information of the initial data packet.
  • multiple slice serial numbers, the data processing type corresponding to each slice serial number, and the storage location information of the corresponding upgrade package data in the data information of the upgrade package are correspondingly written into the header information of the initial data packet. In this way, the corresponding data processing type and upgrade package data can be indicated by the slice serial number.
  • the slice size can also be written into the header information of the initial data packet, so that the header information of the generated upgrade package also includes the slice size.
  • the number of slices can also be written into the header information of the initial data packet, so that the header information of the generated upgrade package also includes the number of slices.
  • the terminal device that has received the upgrade package By writing the slice size and/or the number of slices in the header information, it is convenient for the terminal device that has received the upgrade package to restore and install the old version stored on the terminal device based on the slice size and/or number of slices in the header information.
  • the installation package is sliced to obtain a slice sequence corresponding to multiple slice serial numbers in the upgrade package.
  • the slice size is the size of the slices in the first slice sequence and the second slice sequence.
  • the number of slices is the number of slice pairs with the same order in the first slice sequence and the second slice sequence.
  • the slice size of each slice in the first slice sequence and the second slice sequence is a preset size
  • the slice size written in the header information is the preset size.
  • the number of slices in the first slice sequence and the number of slices in the second slice sequence are the same, both are preset numbers, and the number of slices written in the header information is the preset number.
  • the installation packages of the new and old versions can be sliced according to the preset slice size and the preset number of slices, ensuring that the slice sizes and the slice sequences of the new and old versions are consistent. Aligning the number of slices facilitates subsequent processing of each slice pair in the aligned new and old versions of the slice sequence to generate an upgrade package.
  • the preset slice size and the preset number of slices in the header information it is convenient for the terminal device that has received the upgrade package to perform restoration and installation.
  • the stored old version of the installation package is sliced to obtain a slice sequence corresponding to multiple slice serial numbers in the upgrade package, which facilitates the subsequent restoration of a new version of the installation package based on the upgrade package data and slice data with the same serial number.
  • header information of the upgrade package can be expressed in the following format:
  • block_size is the slice size
  • block_num is the number of slices
  • operate_type is the data processing type
  • blk_no and offset are respectively the slice serial number corresponding to the data processing type and the incremental offset of the corresponding upgrade package data in the upgrade package.
  • different data processing types can be represented by different data processing type identifiers.
  • the following data processing type identifiers can be used to identify different data processing types:
  • the first slice sequence includes 4 slices: 1-blk0, 1-blk1, 1-blk2, 1-blk3; the second slice sequence also includes 4 slices: 2-blk0, 2-blk1, 2-blk2, 2 -blk3.
  • the slice size of each slice is 16k.
  • the data processing type corresponding to the first slice pair "1-blk0 and 2-blk0" with the slice sequence number 0 is skip processing, and the data processing type identifier of the skip processing is 0.
  • the data processing type corresponding to the second slice pair "1-blk1 and 2-blk1" with the slice number 1 and the fourth slice pair "1-blk3 and 2-blk3" with the slice number 3 is XOR processing.
  • the data processing type identifier of the processing is 1, and the incremental offsets of the upgrade package data corresponding to the second slice pair and the fourth slice pair in the upgrade package are 10 and 8 respectively.
  • the data processing type corresponding to the third slice pair "1-blk2 and 2-blk2" with the slice serial number 2 is differential processing.
  • the data processing type identifier of differential processing is 2.
  • the upgrade package data corresponding to the third slice pair is being upgraded.
  • the delta offset in the package is 5.
  • the header information of the upgrade package can be:
  • first installation package and the second installation package are sliced according to the same slicing rules and the two slice sequences have different numbers of slices
  • a specific number of blank slices can also be added to the end of the slice sequence with a smaller number of slices. , thereby obtaining the first slice sequence and the second slice sequence with the same number of slices.
  • first slice sequence and the second slice sequence with the same number of slices obtained by supplementing blank slices among the slice pairs with the same order in the first slice sequence and the second slice sequence, two slice pairs in some slice pairs Each slice stores data.
  • this pair of slices is called a first-type slice pair.
  • this kind of slice pair is called the second type of slice pair.
  • the data similarity of the second type of slice pairs is very small.
  • data processing can also be performed on each slice pair according to the data similarity of each slice pair and the category of the slice pair to which it belongs, to obtain the upgrade package data corresponding to each slice pair.
  • data processing may also include copy processing or deletion processing.
  • the slice pair categories include first-type slice pairs or second-type slice pairs.
  • the copying process refers to copying the slices belonging to the second slice sequence in the corresponding slice pair to obtain the upgrade package data corresponding to the slice pair.
  • Deletion processing also means that the data of the corresponding slice pair is not processed, and the corresponding upgrade package data of the slice pair obtained through deletion processing is also empty.
  • the first slice pair For example, for the first slice pair with the same order in the first slice sequence and the second slice sequence, if the data of the first slice pair is the same and the first slice pair belongs to the first type of slice pair, then the first slice pair will be The slice pairs are skipped, and the upgrade package data corresponding to the first slice pair is empty. If the data of the first slice pair are different, the data similarity is greater than or equal to the first threshold and the first slice pair belongs to the first type of slice pair, then XOR processing is performed on the first slice pair to obtain the first data, according to The first data determines the upgrade package data corresponding to the first slice pair.
  • the data similarity pair corresponding to the first slice pair is less than the first threshold and the first slice pair belongs to the first type of slice pair, differential processing is performed on the first slice pair to obtain the second data, and the second slice pair is determined based on the second data.
  • the first slice pair belongs to the second slice pair, and the blank slice in the first slice pair belongs to the first slice sequence, it means that the second installation package If some data is added to the first installation package, the first slice pair can be copied, that is, the slices belonging to the second slice sequence in the first slice pair can be copied to obtain the corresponding first slice pair. upgrade package data.
  • the first slice pair belongs to the second slice pair, and the blank slice in the first slice pair belongs to the second slice sequence, it means that the second installation package is If an installation package deletes some data, the first slice pair can be deleted, and the corresponding upgrade package data of the first slice pair is empty.
  • the generated upgrade package includes the data processing type and upgrade package data corresponding to each slice serial number in the multiple slice serial numbers.
  • the data processing type corresponding to each slice serial number is skip processing, XOR processing, differential processing, and copy processing.
  • deletion processing the upgrade package data corresponding to the data processing type of skip processing and deletion processing is empty, that is, the slice sequence number corresponding to the data processing type of skip processing and deletion processing does not have corresponding upgrade package data.
  • the header information of the upgrade package includes the storage location information of the upgrade package data corresponding to each slice sequence number in the data information of the upgrade package, then the corresponding data processing type is skip processing and deletion processing of the storage location corresponding to the slice sequence number.
  • the location information is empty, that is, the slice sequence number corresponding to the data processing type of skip processing and deletion processing does not have corresponding storage location information.
  • the generated upgrade package can indicate the association between the first installation package and the second installation package. Specifically, it can indicate which slice pairs in the corresponding slice sequence have the same data, which slice pairs have highly similar data, and which slice pairs have different data. Larger, as well as which data are the same and which data are different in slice pairs with highly similar data, as well as the difference files of slice pairs with large data differences.
  • Step 705 The first device sends the upgrade package to the fourth device.
  • the first device may directly send the first device to the fourth device, or may forward the upgrade package to the fourth device through other devices, which is not limited in the embodiments of the present application.
  • the first device can first upload the upgrade package to the second device, and then the third device downloads the upgrade package from the second device, and forwards the downloaded upgrade package to the fourth device.
  • the fourth device may also download the upgrade package from the second device.
  • the first device may first compress the upgrade package to obtain a compressed package of the upgrade package, and then send the compressed package of the upgrade package to the fourth device.
  • the first device can compress the upgrade package, upload the compressed package of the upgrade package to the second device, and then the third device downloads the compressed package of the upgrade package from the second device, and then uploads the compressed package of the upgrade package to the second device.
  • the compressed package of the package is forwarded to the fourth device.
  • the third device downloads the compressed package of the upgrade package from the second device, it may first decompress the compressed package to obtain the upgrade package, and then send the decompressed upgrade package to the fourth device.
  • the fourth device may also download the compressed package of the upgrade package from the second device.
  • Step 706 The fourth device receives the upgrade package from the first device.
  • the fourth device can receive the compressed package of the upgrade package, decompress the compressed package, and obtain the upgrade package. It should be understood that the fourth device can also obtain the upgrade package through other methods, which is not limited in the embodiments of the present application.
  • Step 707 The fourth device generates a second installation package based on the upgrade package and the stored first installation package.
  • the upgrade package Since the upgrade package is generated based on the first installation package and the second installation package, it can indicate the association between the first installation package and the second installation package. Therefore, after the fourth device obtains the upgrade package, it can The first installation package restores the second installation package.
  • the operation of generating the second installation package may include the following steps:
  • the data processing type corresponding to each slice sequence number at least includes skip processing, exclusive OR processing or differential processing.
  • the restoration processing methods are different.
  • the restoration processing of the slice corresponding to each slice serial number may include the following situations:
  • the first case When the data processing type corresponding to each slice sequence number is skip processing, copy the slice corresponding to each slice sequence number in the first slice sequence to obtain the corresponding sequence number of each slice. installation package data.
  • the first slicing sequence is obtained by slicing an old version of the installation package stored on the second device.
  • the slice data at the corresponding position in the first slice sequence can be directly used as the slice data at the corresponding position in the installation package of the new version. For example, if the data processing type corresponding to slice number 0 is skip processing, then the data of the slice corresponding to slice number 0 in the first slice sequence will be used as the installation package data corresponding to slice number 0.
  • the second case when the data processing type corresponding to each slice serial number is XOR processing, the upgrade package data corresponding to each slice serial number and the slice corresponding to each slice serial number in the first slice sequence Perform XOR processing to obtain the installation package data corresponding to each slice serial number.
  • the third case When the data processing type corresponding to each slice serial number is differential processing, perform inverse difference on the upgrade package data corresponding to each slice serial number and the slices corresponding to each slice serial number in the first slice sequence. Process to obtain the installation package data corresponding to each slice serial number.
  • inverse difference processing is the reverse operation of difference processing, and is used to restore the original file based on the difference file.
  • the upgrade package data corresponding to slice number 2 and the data of the slice corresponding to slice number 2 in the first slice sequence are restored to obtain the installation data corresponding to slice number 2.
  • Packet data For example, if the data processing type corresponding to slice number 2 is differential processing, then the upgrade package data corresponding to slice number 2 and the data of the slice corresponding to slice number 2 in the first slice sequence are restored to obtain the installation data corresponding to slice number 2. Packet data.
  • the header information of the upgrade package stores the data processing type corresponding to each of the multiple slice serial numbers and the storage location information of the corresponding upgrade package data in the data information of the upgrade package
  • the data information of the upgrade package is stored
  • the storage location information of the upgrade package data corresponding to each slice serial number in the data information of the upgrade package obtain the upgrade package data corresponding to each slice serial number from the data information of the upgrade package, and then according to each The data processing type corresponding to the slice serial number is to restore the slice corresponding to each slice serial number to obtain the installation package data corresponding to each slice serial number.
  • the data processing type corresponding to each slice serial number in the upgrade package can also include copy processing or deletion processing, then according to the data processing type corresponding to each slice serial number in the multiple slice serial numbers, the slice corresponding to each slice serial number will be processed.
  • the operation of restoring processing also includes the following fourth and fifth situations:
  • the fourth situation When the data processing type corresponding to each slice serial number is copy processing, copy the upgrade package data corresponding to the first slice serial number to obtain the installation package data corresponding to the first slice serial number to achieve Insert the upgrade package data corresponding to the first slice serial number added in the first installation package into the second installation package.
  • the fifth case When the data processing type corresponding to each slice serial number is deletion processing, perform the upgrade package data corresponding to each slice serial number and the slices corresponding to each slice serial number in the first slice sequence. The XOR process is skipped, and the obtained upgrade package data corresponding to the first slice serial number is empty, so as to delete the slice data corresponding to the slice serial number in the first installation package.
  • the stored first installation package may also be sliced to obtain the first slice sequence.
  • the header information of the upgrade package includes a slice size, and the first installation package can be sliced according to the slice size, so that the size of each slice in the first slice sequence is the slice size.
  • the header information of the upgrade package includes the slice size and the number of slices. The first installation package can be sliced according to the slice size and the number of slices, so that the size of each slice in the first slice sequence is the slice. size, and the number of slices included in the first slice sequence is the slice number.
  • the installation package data corresponding to multiple slice serial numbers can be spliced to obtain a second installation package.
  • Step 708 The fourth device installs the second installation package.
  • the version can be updated.
  • copy processing is performed when the data processing type is skip processing
  • XOR processing is performed when the data processing type is XOR processing
  • inverse difference processing is performed when the data processing type is differential processing.
  • the device that makes the upgrade package is the package server 21
  • the device that stores and delivers the upgrade package is the cloud server 22
  • the device that downloads the upgrade package is the mobile phone 23
  • the device that performs version update is the headset 24
  • the generation and installation method of the upgrade package provided by the embodiment of this application will be described in detail.
  • FIG. 8 is a schematic flowchart of version update of a device provided by an embodiment of the present application. As shown in Figure 8, the method includes the following steps:
  • Step 801 The package server 21 obtains the old version of the installation package 1 and the new version of the installation package 2.
  • Installation package 1 and installation package 2 are installation packages of different versions of the object to be upgraded, and the version of installation package 2 is higher than the version of installation package 1.
  • the object to be upgraded may be a system or software object that needs to be updated.
  • Step 802 The package server 21 slices the installation package 1 to obtain the slice sequence 1, slices the installation package 2 to obtain the slice sequence 2, and the slices in the same order in the slice sequence 1 and the slice sequence 2 form multiple slice pairs.
  • FIG. 9 is a schematic diagram of the generation and installation process of an upgrade package provided by an embodiment of the present application.
  • installation package 1 and installation package 2 can be sliced according to the same slicing rules.
  • the slice sequence 1 obtained by slicing the installation package 1 includes 4 slices: 1-blk0, 1-blk1, 1-blk2, and 1-blk3.
  • the slice sequence 2 obtained by slicing the installation package 2 also includes 4 slices: 2-blk0, 2-blk1, 2-blk2, 2-blk3.
  • Step 803 The package server 21 performs data processing on each slice pair according to the data similarity of each slice pair in the multiple slice pairs to obtain the upgrade package data corresponding to each slice pair.
  • the data processing at least includes skip processing, XOR processing or difference processing.
  • skipping processing means that the data of the corresponding slice pair is not processed, and the upgrade package data corresponding to the slice pair obtained by skipping processing is empty.
  • skip processing will be performed. If the data are different and the data similarity is greater than or equal to the first threshold, value, XOR processing is performed, and if the data similarity is less than the first threshold, difference processing is performed.
  • the slice pair "1-blk0 and 2-blk0" corresponding to slice number 0 has the same data, so "1-blk0 and 2-blk0" will be skipped.
  • the upgrade package data corresponding to slice number 0 is Empty, that is, slice serial number 0 has no corresponding upgrade package data. If the data similarity of the slice pair "1-blk1 and 2-blk1" corresponding to slice number 1 is greater than the first threshold, that is, the data is highly similar, then XOR processing is performed on "1-blk1 and 2-blk1" to obtain data p1.
  • the data p1 is compressed to obtain the upgrade package data p1' corresponding to the slice serial number 1.
  • Step 804 The package server 21 writes the upgrade package data corresponding to each slice pair into the data information of the initial data package, and processes the slice number, slice size, slice serial number of each slice pair, and data corresponding to each slice pair.
  • the type and the storage location information of the upgrade package data corresponding to each slice pair in the data information of the initial data package are written into the header information of the initial data package.
  • the initial data package after the data is written is the upgrade package.
  • the storage location information of the upgrade package data corresponding to each slice pair in the data information of the initial data package may be the incremental offset of the upgrade package data corresponding to each slice pair in the data information of the initial data package, etc.
  • the upgrade package data p1' corresponding to slice serial number 1, the upgrade package data p2 corresponding to slice serial number 2, and the upgrade package data p3' corresponding to slice serial number 3 can be written into the data information of the upgrade package.
  • the incremental offsets of p1’, p2 and p3’ in the data information of the upgrade package are 10, 5 and 8 respectively.
  • the number of slices, the slice size, the data processing type corresponding to slice sequence number 0, the data processing type corresponding to slice sequences 1 to 3, and the incremental offset of the upgrade package data can also be written into the header information of the upgrade package.
  • the header information of the upgrade package includes the following content:
  • Step 805 The package server 21 compresses the upgrade package to obtain a compressed package of the upgrade package.
  • Step 806 The package server 21 sends the compressed package of the upgrade package to the cloud server 22.
  • the package server 21 can upload the compressed package of the upgrade package to the cloud server 22 .
  • the package server 21 may also directly send the upgrade package to the cloud server 22 without compressing the upgrade package.
  • Step 807 The cloud server 22 sends the compressed package of the upgrade package to the mobile phone 23.
  • the cloud server 22 can actively push the compressed package of the upgrade package to the mobile phone 23, or can send the compressed package of the upgrade package to the mobile phone 23 according to the download request of the mobile phone 23. This is not limited in the embodiment of the present application.
  • the mobile phone 23 can send a version update request for the object to be upgraded to the cloud server 22, and the cloud server 22 sends a compressed package of the upgrade package to the cloud server 22 according to the version update request.
  • Step 808 The mobile phone 23 decompresses the compressed package of the upgrade package to obtain the upgrade package.
  • Step 809 The mobile phone 23 sends the upgrade package to the headset 24.
  • the earphone 24 is a device bound to the mobile phone 23 in advance.
  • the mobile phone 23 and the headset 24 are connected through a wireless local area network, such as Bluetooth.
  • the mobile phone 3 can download the upgrade package or the compressed package of the upgrade package from the cloud server 22, and then the mobile phone 23 sends it to the headset 24 through the wireless local area network.
  • the mobile phone 23 may not compress the compressed package, but directly send the compressed package to the headset 24.
  • the mobile phone 23 can also receive the upgrade package sent by the cloud server 22 and send the upgrade package to the headset 24 .
  • Step 810 The headset 24 receives the upgrade package, and obtains the number of slices, slice sizes, multiple slice serial numbers, the data processing type corresponding to each slice serial number, and the upgrade packet data corresponding to each slice serial number from the header information of the upgrade package.
  • Step 811 The headset 24 slices the old version of the installation package 1 according to the slice size and the number of slices, and obtains the slice sequence 1.
  • the slice sequence 1 obtained by slicing the installation package 1 includes 4 slices: 1-blk0, 1-blk1, 1-blk2, and 1-blk3.
  • the headset 24 can also obtain the slice sequence 1 corresponding to the installation package 1 through other methods, such as obtaining the stored slice sequence 1, or obtaining the slice sequence 1 from other devices, which is not limited in the embodiment of the present application.
  • Step 812 The headset 24 obtains the corresponding data of each slice serial number in the multiple slice serial numbers from the data information of the upgrade package based on the storage location information of the multiple slice serial numbers and the upgrade package data corresponding to each slice serial number in the data information of the upgrade package. upgrade package data.
  • the upgrade package data p1’ corresponding to slice serial number 1, the upgrade package data p2 corresponding to slice serial number 2, and the upgrade package data p3’ corresponding to slice serial number 3 can be obtained from the data information of the upgrade package. Then, the upgrade package data p1' corresponding to the slice serial number 1 is decompressed to obtain data p1, and the upgrade package data p3' corresponding to the slice serial number 3 is decompressed to obtain p2.
  • Step 813 The headset 24 performs restoration processing on the slices corresponding to each slice serial number according to the data processing type corresponding to each slice serial number among the multiple slice serial numbers, so as to obtain the installation package data corresponding to each slice serial number.
  • the slices with the same slice serial number in slice sequence 1 are copied and processed to obtain the installation package data corresponding to the slice serial number.
  • the data processing type corresponding to a certain slice sequence number is XOR processing
  • XOR processing is performed on the upgrade package data corresponding to the slice sequence number and the slices corresponding to the same slice sequence number in slice sequence 1 to obtain the corresponding slice sequence number.
  • installation package data If the data processing type corresponding to a certain slice sequence number is differential processing, then perform inverse differential processing on the upgrade package data corresponding to each slice sequence number and the slices corresponding to the same slice sequence number in slice sequence 1 to obtain each slice sequence number. Corresponding installation package data.
  • the data processing types corresponding to slice numbers 0 to 3 are skip processing, XOR processing, differential processing and XOR processing respectively. Copy the slice with slice number 0 in slice sequence 1 to obtain the installation package data corresponding to slice number 0, that is, 2-blk0.
  • the decompressed upgrade package data p1 and slices corresponding to slice number 1 The data of 1-blk1 in sequence 1 is XORed to obtain the installation package data corresponding to slice serial number 1, that is, 2-blk1.
  • Step 814 The headset 24 splices the installation package data corresponding to multiple slice serial numbers to obtain a new version of the installation package 2.
  • Step 815 The headset 24 installs the installation package 2.
  • the version can be updated.
  • copy processing is performed when the data processing type is skip processing
  • XOR processing is performed when the data processing type is XOR processing
  • inverse difference processing is performed when the data processing type is differential processing.
  • Figure 10 is a schematic structural diagram of a device for generating an upgrade package provided by an embodiment of the present application.
  • the device can be implemented as part or all of a computer device by software, hardware, or a combination of the two.
  • the computer device can be as shown in Figure 1
  • the device includes: an acquisition module 1001, a slicing module 1002, a processing module 1003 and a generation module 1004.
  • the slicing module 1002 is used to perform step 702 in the above-mentioned embodiment of Figure 7;
  • the processing module 1003 is used to perform step 703 in the above-mentioned embodiment of Figure 7;
  • the generation module 1004 is used to execute step 704 in the above-mentioned embodiment of FIG. 7 .
  • the plurality of slice pairs includes a first slice pair, and the first slice pair is composed of a first slice in the first slice sequence and a second slice in the second slice sequence;
  • the processing module 1003 includes:
  • the first processing unit is configured to skip processing on the first slice pair if the data of the first slice and the second slice are the same, and the upgrade package data corresponding to the first slice pair is empty;
  • the second processing unit is configured to perform XOR processing on the first slice pair to obtain the first data if the data of the first slice and the second slice are different and the data similarity is greater than or equal to the first threshold.
  • the data determines the upgrade package data corresponding to the first slice pair;
  • the third processing unit is configured to perform differential processing on the first slice pair to obtain the second data if the data similarity between the first slice and the second slice is less than the first threshold, and determine the first slice based on the second data. Corresponding upgrade package data.
  • the second processing unit is used for:
  • the second processing unit is used for:
  • the data of the first slice and the data of the second slice are both binary data, perform XOR processing on the binary values of the corresponding byte positions in the first slice and the second slice to obtain the first data; where, if the If the values of the corresponding byte positions of all slices and the second slice are the same, then the value of the corresponding byte position of the first data is 0. If the values of the corresponding byte positions of the first slice and the second slice are different, then the value of the corresponding byte position of the first data is 0. The value of the corresponding byte position is 1;
  • the data of at least one of the first slice and the second slice is not binary data
  • convert the data of the first slice and the second slice that is not binary data into binary data and convert the data into binary data.
  • the binary values of the corresponding byte positions in the first slice and the second slice are XORed to obtain the first data; among them, if the values of the corresponding byte positions of the first slice and the second slice after conversion to binary data are the same , then the value of the corresponding byte position of the first data is 0. If the values of the corresponding byte position of the first slice and the second slice after conversion to binary data are different, then the value of the corresponding byte position of the first data is 1.
  • the second processing unit is used for:
  • the first data is compressed to obtain third data, and the third data is determined as the upgrade package data corresponding to the first slice.
  • the second processing unit is used for:
  • the 0s in the first data are compressed to obtain the third data.
  • the third processing unit is used for:
  • the second data is compressed to obtain fourth data; the fourth data is determined to be the upgrade package data corresponding to the first slice pair.
  • the generation module 1004 is used to:
  • the storage location information in the data information of the initial data packet is written into the header information of the initial data packet.
  • the initial data packet after the data is written is an upgrade package, and the multiple slice serial numbers are the slice serial numbers of the multiple slice pairs.
  • the generation module 1004 is also used to:
  • the number of slice pairs with the same order in the first slice sequence and the second slice sequence, and the slice sizes of the slices in the first slice sequence and the second slice sequence are written into the header information of the initial data packet.
  • the number of slices in the first slice sequence and the number of slices in the second slice sequence are both a preset number, and the number of slice pairs with the same order in which the header information is written is a preset number; the first slice sequence The slice size of each slice in the first slice sequence and the second slice sequence written in the header information is a preset size.
  • the storage location information of the upgrade package data corresponding to the slice pair indicated by each slice serial number in the data information of the initial data packet is the data information of the upgrade package data corresponding to the slice pair indicated by each slice serial number in the initial data packet. Incremental offset in .
  • Figure 11 is a schematic structural diagram of an installation device for an upgrade package provided by an embodiment of the present application.
  • the device can be implemented as part or all of a computer device by software, hardware, or a combination of the two.
  • the computer device can be as shown in Figure 1
  • the device includes: an acquisition module 1101, a generation module 1102 and an installation module 1103.
  • the acquisition module 1101 is used to obtain an upgrade package, which includes upgrade package data corresponding to multiple slice serial numbers and data processing type information corresponding to each slice serial number;
  • Generating module 1102 used to perform step 707 in the above-mentioned embodiment of Figure 7;
  • the installation module 1103 is used to perform step 708 in the above-mentioned embodiment of FIG. 7 .
  • the generation module 1102 includes a first generation unit and a second generation unit;
  • the first generation unit is configured to perform restoration processing on the slices corresponding to each slice sequence number according to the data processing type corresponding to each slice sequence number in the plurality of slice sequence numbers, so as to obtain the installation package data corresponding to each slice sequence number;
  • the slices corresponding to each slice serial number in the first slice sequence are copied to obtain the installation package corresponding to each slice serial number.
  • each slice serial number When the data processing type corresponding to each slice serial number is XOR processing, XOR processing is performed on the upgrade package data corresponding to each slice serial number and the slice corresponding to each slice serial number in the first slice sequence to obtain Installation package data corresponding to each slice serial number;
  • each slice serial number When the data processing type corresponding to each slice serial number is differential processing, inverse differential processing is performed on the upgrade package data corresponding to each slice serial number and the slices corresponding to each slice serial number in the first slice sequence to obtain each Installation package data corresponding to each slice serial number;
  • the second generation unit is configured to generate a second installation package based on the installation package data corresponding to multiple slice serial numbers.
  • the multiple slice serial numbers are slice serial numbers of multiple slice pairs composed of slices with the same order in the first slice sequence and the second slice sequence.
  • the second slice sequence is a pair of second installation packages with a version higher than the first installation package.
  • the installation package is obtained by slicing.
  • the upgrade package data corresponding to each slice serial number in the multiple slice serial numbers is based on the data of the corresponding slice pair.
  • the similarity is obtained by performing data processing on the corresponding slice pair.
  • the data processing at least includes skip processing, XOR processing or differential processing.
  • the corresponding upgrade package data whose data processing type is skip processing is empty.
  • the second generation unit is used to splice installation package data corresponding to multiple slice serial numbers to obtain a second installation package.
  • the header information of the upgrade package includes the data processing type corresponding to each of the multiple slice serial numbers and the storage location information of the corresponding upgrade package data in the data information of the upgrade package. How many data information of the upgrade package are stored? The upgrade package data corresponding to each slice sequence number in the slice sequence numbers;
  • the generation module 1102 also includes an acquisition unit for:
  • the upgrade package data corresponding to each slice serial number is obtained from the data information of the upgrade package.
  • the header information of the upgrade package also includes the slice size; the device further includes a slice module;
  • the slicing module is used to slice the first installation package according to the slice size to obtain the first slice sequence.
  • the acquisition module 1101 is used for:
  • the compressed package is obtained by compressing the upgrade package
  • the new version when installing the upgrade package, the new version can be restored based on the data processing type and upgrade package data corresponding to each slice serial number in the upgrade package, as well as the slice data with the same slice serial number in the old version of the installation package. installation package, and then install the new version of the installation package. Since the amount of data in the upgrade package is small, the storage resources required to restore and install the upgrade package are also small. This reduces the requirements for storage resources of the terminal device and is suitable for version updates on terminal devices with small memory. Moreover, according to the different data processing types corresponding to each slice serial number, different forms of restoration processing can be performed on the slices corresponding to each slice serial number.
  • copy processing is performed when the data processing type is skip processing
  • XOR processing is performed when the data processing type is XOR processing
  • inverse difference processing is performed when the data processing type is differential processing.
  • the upgrade package generating device provided by the above embodiment generates the upgrade package
  • the upgrade package installation device provided by the above embodiment installs the upgrade package
  • only the division of the above functional modules is used as an example.
  • the above function allocation can be completed by different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.
  • Each functional unit and module in the above embodiments can be integrated into one processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit.
  • the above-mentioned integrated unit can either use hardware. It can also be implemented in the form of software functional units.
  • the specific names of each functional unit and module are only for the convenience of distinguishing each other and are not used to limit the scope of protection of the embodiments of the present application.
  • the device for generating the upgrade package and the embodiment of the method for generating the upgrade package provided by the above embodiments belong to the same concept.
  • the device for installing the upgrade package and the embodiment of the method for installing the upgrade package provided by the above embodiment belong to the same concept.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, such as from a website, computer, server, or data center Transmission to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, Digital Subscriber Line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) methods.
  • the computer-readable storage medium can be any available medium that can be accessed by a computer, or a data storage device such as a server or data center integrated with one or more available media.
  • the available media may be magnetic media (such as floppy disks, hard disks, tapes), optical media (such as Digital Versatile Disc (DVD)) or semiconductor media (such as Solid State Disk (SSD)) wait.

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

升级包的生成方法、安装方法、设备及存储介质
本申请要求于2022年8月17日提交到国家知识产权局、申请号为202210988967.X、申请名称为“升级包的生成方法、安装方法、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,特别涉及一种升级包的生成方法、安装方法、设备及存储介质。
背景技术
手机、平板电脑、可穿戴设备等终端设备的系统或软件可以在供应商发布新版本后进行升级。目前的升级方法中主要采用的是单包升级策略,具体为,终端设备发起一次软件版本检测,服务器向该终端设备返回一个下载路径,以便终端设备根据该下载路径获得一个升级包,进而根据该升级包进行版本升级。
相关技术中,为了节省服务器的存储资源和终端设备下载升级包的时间,且降低开发成本,升级包通常为相邻两个版本之间的差分文件。比如,在制作系统或软件等待升级对象的升级包时,可以先获取待升级对象的第一安装包和第二安装包,第二安装包的版本高于第一安装包的版本。然后,对第一安装包和第二安装包进行差分处理,得到差分文件,将差分文件打包到升级包中。终端设备获取到该升级包后,即可根据该升级包和存储的第一安装包进行还原处理,得到第二安装包,然后通过安装第二安装包实现版本升级。
但是,通过对第一安装包和第二安装包整体进行差分处理得到的升级包的数据量仍然较大,导致终端设备花费的下载时间较长,且要求终端设备的存储资源足够大,以满足升级包的下载和安装需求。
发明内容
本申请提供了一种升级包的生成方法、安装方法、设备及存储介质,可以在较大程度上减小升级包的数据量,生成数据量相对较小的升级包,节省升级包的下载时间,以及降低对终端设备的存储资源的要求。所述技术方案如下:
第一方面,提供了一种升级包的生成方法,应用于第一设备中,所述方法包括:
获取旧版本的安装包和新版本的安装包,对新旧版本的安装包分别进行切片,得到旧版本的安装包对应的第一切片序列,以及新版本的安装包对应的第二切片序列。第二切片序列中与第一切片序列中排序相同的切片组成一个切片对,第二切片序列中的多个切片与第一切片序列中的多个切片组成多个切片对。然后,根据多个切片对中的每个切片对的数据相似度对每个切片对进行数据处理,得到每个切片对对应的升级包数据,数据处理至少包括跳过处理、异或处理或差分处理。之后,根据多个切片对中的每个切片对的切片序号、以及每个切片对对应的数据处理类型和升级包数据,生成升级包,升级包包括多个切片序号对应的升级包数据以及每个切片序号对应的数据 处理类型信息。
其中,跳过处理是指不对对应切片对的数据进行处理,通过跳过处理得到的切片对对应的升级包数据为空。升级包中对应数据处理类型为跳过处理的升级包数据为空。异或处理是指按照切片对在不同位数的数据是否相同输出不同结果,即异或处理的处理结果用于指示切片对在不同位数的数据是否相同。比如,当切片对在某个位数的数据相同时,则异或处理结果的相应位数为第一数值,当切片对在某个位数的数据不同时,则异或处理结果在相应位数为第二数值。差分处理是指确定切片对中两个切片的数据差异,即差分处理的结果用于反映每个切片对的数据差异。
本申请实施例中,在制作升级包时,可以先对新旧版本的安装包进行切片,然后根据新旧版本对应的各个切片对的数据相似度,对各个切片对分别进行差分处理、异或处理或跳过处理,比如在数据相同时进行跳过处理,在数据相似度较高时进行异或处理,在数据相似度较低时进行差分处理。而不是对新旧版本对应的所有切片对均进行差分处理。通过根据切片对的数据相似度进行差异性处理,可以克服对所有切片对均进行差分处理存在的缺陷,在较大程度上减小升级包的数据量,生成数据量相对较小的升级包,进一步节省升级包的下载时间,以及降低对终端设备的存储资源的要求。
作为一个示例,多个切片对中包括第一切片对,第一切片对由第一切片序列中的第一切片和所述第二切片序列中的第二切片组成。根据多个切片对中的每个切片对的数据相似度对每个切片对进行数据处理,得到每个切片对对应的升级包数据的操作可以包括如下几种情况:
第一种情况:若第一切片与第二切片的数据相同,则对第一切片对进行跳过处理,第一切片对对应的升级包数据为空。
本申请实施例中,对于数据相同的切片对,可以不对这个切片对进行处理,后续可以直接利用旧版本的切片进行数据安装。
第二种情况:若第一切片与第二切片的数据不同且数据相似度大于或等于第一阈值,即数据高度相似,则对第一切片对进行异或处理,得到第一数据,根据第一数据确定第一切片对对应的升级包数据。
本申请实施例中,对于数据高度相似的切片对,可以对这个切片对进行异或处理,通过异或处理结果指示这个切片对中哪部分数据相同,哪部分数据不同。
作为一个示例,对第一切片对进行异或处理,得到第一数据的操作包括:对第一切片和第二切片中对应字节位置的数据进行异或处理,得到第一数据。
其中,若第一切片和第二切片对应字节位置的数据相同,则第一数据的对应字节位置的数据为第一数值,若第一切片和第二切片对应字节位置的数据不同,则第一数据的对应字节位置的数据为第二数值。也即是,若第一切片和第二切片在相同的某个字节位置的数据相同,则在第一数据的相同字节位置输出第一数值;若第一切片和第二切片在相同的某个字节位置的数据不同,则在第一数据的相同字节位置输出第二数值。
作为一个示例,若第一切片对的数据不是二进制数据,可以先将第一切片对的数据转换为二进制数据,再对转换为二进制数据的第一切片对进行异或处理。例如,对第一切片和第二切片中对应字节位置的数据进行异或处理的操作包括以下两种情况:
若第一切片的数据和第二切片的数据均为二进制数据,则对第一切片和第二切片中对应字节位置的二进制数值进行异或处理,得到第一数据。其中,若第一切片和第二切片对应字节位置的数值相同,则第一数据的对应字节位置的数值为0,若第一切片和第二切片对应字节位置的数值不同,则第一数据的对应字节位置的数值为1。
若第一切片和第二切片中的至少一个切片的数据不是二进制数据,则将第一切片和第二切片中不是二进制数据的切片的数据转换为二进制数据,对转换为二进制数据后的第一切片和第二切片中对应字节位置的二进制数值进行异或处理,得到第一数据。其中,若转换为二进制数据后的第一切片和第二切片对应字节位置的数值相同,则第一数据的对应字节位置的数值为0,若转换为二进制数据后的第一切片和第二切片对应字节位置的数值不同,则第一数据的对应字节位置的数值为1。
作为一个示例,根据第一数据确定第一切片对对应的升级包数据的操作可以包括:将第一数据确定为第一切片对对应的升级包数据。或者,对第一数据进行压缩处理,得到第三数据,将第三数据确定为第一切片对应的升级包数据。
第三种情况:若第一切片与第二切片的数据相似度小于第一阈值,即数据差异较大,则对第一切片对进行差分处理,得到第二数据,根据第二数据确定第一切片对对应的升级包数据。
其中,第二数据为差分处理结果,即第一切片对的差分文件。
本申请实施例中,若第一切片与第二切片的数据差异较大,可以对第一切片对进行差分处理,以通过差分处理结果表示这第一切片对的数据差异。
作为一个示例,根据第二数据确定第一切片对对应的升级包数据可以包括:将第二数据确定为第一切片对对应的升级包数据。或者,对第二数据进行压缩处理,得到第四数据;将第四数据确定为第一切片对对应的升级包数据。
作为一个示例,根据多个切片对中的每个切片对的切片序号、以及每个切片对对应的数据处理类型和升级包数据,生成升级包时,可以将多个切片序号中每个切片序号指示的切片对对应的升级包数据写入初始数据包的数据信息中,将每个切片序号指示的切片对对应的数据处理类型、以及对应的升级包数据在初始数据包的数据信息中的存储位置信息写入所述初始数据包的头信息中,数据写入后的初始数据包为升级包,多个切片序号为所述多个切片对的切片序号。
其中,每个切片序号指示的切片对对应的升级包数据在初始数据包的数据信息中的存储位置信息用于指示每个切片序号指示的切片对对应的升级包数据在初始数据包的数据信息中的存储位置。例如,每个切片对对应的升级包数据在初始数据包的数据信息中的存储位置信息可以每个切片对对应的升级包数据在初始数据包的数据信息中的增量偏移。
如此,生成的升级包的头信息中存储有:多个切片序号中的每个切片序号对应的数据处理类型、以及每个切片序号对应的升级包数据在升级包的数据信息中的存储位置信息。升级包的数据信息中存储有每个切片序号对应的升级包数据。
其中,对应数据处理类型为跳过处理的切片序号对应的升级包数据的存储位置信息为空,即对于数据处理类型为跳过处理的切片序号没有对应的升级包数据,也没有对应的升级包数据在升级包中的存储位置信息。每个切片序号对应的升级包数据在升 级包的数据信息中的存储位置信息可以为每个切片序号对应的升级包数据在升级包的数据信息中的增量偏移等。
通过上述方式生成的升级包可以指示旧版本的安装包和新版本的安装包的关联关系,具体可以指示对应的切片序列中哪些切片对数据相同、哪些切片对数据高度相似、哪些切片对数据差异较大,以及数据高度相似的切片对中哪些数据相同、哪些数据不同,以及数据差异较大的切片对的差分文件。如此,对于待进行版本升级的设备来说,该设备获取到该升级包后,也能够根据该升级包和存储的旧版本的安装包还原出新版本的安装包。
此外,还可以将多个切片序号写入初始数据包的头信息中。比如,将多个切片序号、以及每个切片序号对应的数据处理类型和对应的升级包数据在升级包的数据信息中的存储位置信息对应写入初始数据包的头信息中。如此,可以通过切片序号指示对应的数据处理类型和升级包数据。
此外,还可以将切片尺寸写入初始数据包的头部信息中,使得生成的升级包的头信息还包括切片尺寸。进一步地,还可以将切片数量写入初始数据包的头部信息中,使得生成的升级包的头信息还包括切片数量。
通过在头信息中写入切片尺寸和/或切片数量,便于接收到该升级包的终端设备进行还原安装时,根据头信息中的切片尺寸和/或切片数量对终端设备上存储的旧版本的安装包进行切片,得到与升级包中的多个切片序号对应的切片序列。
其中,切片尺寸为第一切片序列和第二切片序列中切片的尺寸。切片数量为第一切片序列和第二切片序列中排序相同的切片对的数量。示例地,第一切片序列和第二切片序列中各个切片的切片尺寸均为预设尺寸,写入头信息的切片尺寸为该预设尺寸。第一切片序列中的切片数量和第二切片序列中的切片数量相同,均为预设数量,写入头信息的切片数量为该预设数量。
通过预先设置切片尺寸和切片数量,可以在制作升级包时,按照预设切片尺寸和预设切片数量对新旧版本的安装包进行切片,保证新旧版本的切片序列的切片尺寸和切片数量对齐,便于后续根据对齐的新旧版本的切片序列中的各个切片对进行处理,生成升级包。另外,通过在头信息中写入预设切片尺寸和预设切片数量,便于接收到该升级包的终端设备进行还原安装时,也按照头信息中的预设切片尺寸和切片数量对终端设备上存储的旧版本的安装包进行切片,得到与升级包中的多个切片序号对应的切片序列,便于后续根据同序号的升级包数据和切片数据还原出新版本的安装包。
第二方面,提供了一种升级包的生成装置,所述升级包的生成装置具有实现上述第一方面中升级包的生成方法行为的功能。所述升级包的生成装置包括至少一个模块,所述至少一个模块用于实现上述第一方面所提供的升级包的生成方法。
第三方面,提供了一种升级包的生成装置,所述升级包的生成装置的结构中包括处理器和存储器,所述存储器用于存储支持升级包的生成装置执行上述第一方面所提供的升级包的生成方法的程序,以及存储用于实现上述第一方面所述的升级包的生成方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述升级包的生成装置还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的升级包的生成方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的升级包的生成方法。
第六方面,提供一种升级包的安装方法,应用于第二设备中,所述方法包括:
获取升级包,升级包包括多个切片序号对应的升级包数据以及每个切片序号对应的数据处理类型信息空。根据多个切片序号中的每个切片序号对应的数据处理类型,对每个切片序号对应的切片进行还原处理,以得到每个切片序号对应的安装包数据。然后,根据多个切片序号对应的安装包数据,生成新版本的安装包,对新版本的安装包进行安装。
其中,数据处理类型至少包括跳过处理、异或处理或差分处理,对应数据处理类型为跳过处理的升级包数据为空。在数据处理类型不同的情况下,还原处理方式不同。具体地,根据数据处理类型的不同,根据多个切片序号中的每个切片序号对应的数据处理类型,对每个切片序号对应的切片进行还原处理包括以下几种情况:
第一种情况:在每个切片序号对应的数据处理类型为跳过处理的情况下,对第一切片序列中与每个切片序号对应的切片进行复制处理,以得到每个切片序列号对应的安装包数据。
其中,第一切片序列是对存储在第二设备上的旧版本的安装包进行切片处理得到。
也即是,若第一切片序号指示的切片对的数据相同,则可以直接将第一切片序列中相应位置的切片数据作为新版本的安装包中相应位置的切片数据。
第二种情况:在每个切片序号对应的数据处理类型为异或处理的情况下,对每个切片序号对应的升级包数据以及第一切片序列中与所述每个切片序号对应的切片进行异或处理,以得到每个切片序列号对应的安装包数据。
第三种情况:在每个切片序号对应的数据处理类型为差分处理的情况下,对每个切片序号对应的升级包数据以及第一切片序列中与每个切片序号对应的切片进行反差分处理,以得到每个切片序列号对应的安装包数据。
其中,反差分处理为差分处理的反向操作,用于根据差分文件还原出原始文件。
本申请实施例中,在对升级包进行安装时,可以根据升级包中各个切片序号对应的数据处理类型,对旧版本的安装包中相同切片序号的切片数据进行还原处理,以还原出新版本的安装包,再对新版本的安装包进行安装。由于升级包的数据量较小,因此对升级包进行还原安装所需要的存储资源也较小,如此降低了对终端设备的存储资源的要求,适应于内存较小的终端设备进行版本更新。
而且,可以根据各个切片序号对应的数据处理类型的不同,对各个切片序号对应的切片进行不同形式的还原处理。比如,在数据处理类型为跳过处理时进行复制处理,在数据处理类型为异或处理时进行异或处理,在数据处理类型为差分处理时进行反差分处理。如此,可以根据数据量较小的升级包,准确还原出新版本的安装包,提出了一种适配于按照上述第一方面所述的升级包的生成方法生成的升级包的还原安装方法。
作为一个示例,升级包的头信息中包括切片尺寸,可以根据该切片尺寸对旧版本 的安装包进行切片,得到第一切片序列。如此,可以使得第一切片序列中的各个切片的尺寸均为该切片尺寸。
作为另一个示例,升级包的头信息中包括切片尺寸和切片数量,可以根据该切片尺寸和切片数量对旧版本的安装包进行切片,得到第一切片序列。如此,可以使得第一切片序列中的各个切片的尺寸均为该切片尺寸,以及第一切片序列包括的切片的数量为该切片数量。
作为一个示例,若升级包的头信息存储有多个切片序号中每个切片序号对应的数据处理类类型和对应的升级包数据在升级包的数据信息中的存储位置信息,升级包的数据信息存储有多个切片序号中每个切片序号对应的升级包数据。则在生成每个切片序号对应的安装包数据之前,可以先从升级包的头信息中获取每个切片序号对应的数据处理类型和对应的升级包数据在升级包的数据信息中的存储位置信息,根据每个切片序号对应的升级包数据在升级包的数据信息中的存储位置信息,从升级包的数据信息中获取每个切片序号对应的升级包数据,然后根据每个切片序号对应的数据处理类型,对每个切片序号对应的切片进行还原处理。
作为一个示例,可以对多个切片序号对应的安装包数据进行拼接,得到第二安装包。
第七方面,提供了一种升级包的安装装置,所述升级包的安装装置具有实现上述第一方面中升级包的安装方法行为的功能。所述升级包的安装装置包括至少一个模块,所述至少一个模块用于实现上述第一方面所提供的升级包的安装方法。
第八方面,提供了一种升级包的安装装置,所述升级包的安装装置的结构中包括处理器和存储器,所述存储器用于存储支持升级包的安装装置执行上述第一方面所提供的升级包的安装方法的程序,以及存储用于实现上述第一方面所述的升级包的安装方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述升级包的安装装置还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
第九方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的升级包的安装方法。
第十方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的升级包的安装方法。
本申请实施例提供的升级包的生成方法具有如下有益效果:
本申请实施例中,可以先对新旧版本的安装包进行切片,然后根据新旧版本对应的各个切片对的数据相似度,对各个切片对分别进行差分处理、异或处理或跳过处理,比如在数据相同时进行跳过处理,在数据相似度较高时进行异或处理,在数据相似度较低时进行差分处理,得到每个切片对对应的升级包数据。而不是对新旧版本对应的所有切片对均进行差分处理。然后,根据每个切片对对应的数据处理类型和升级包数据,生成升级包。在生成升级包的过程中,通过根据切片对的数据相似度进行差异性处理,可以克服对所有切片对均进行差分处理存在的缺陷,在较大程度上减小升级包 的数据量,生成数据量相对较小的升级包,进一步节省升级包的下载时间,以及降低对终端设备的存储资源的要求。
附图说明
图1是本申请实施例提供的一种设备进行版本更新的系统示意图;
图2是相关技术提供的一种升级包的生成和安装过程的逻辑示意图;
图3是本申请实施例提供的另一种设备进行版本更新的系统示意图;
图4是本申请实施例提供的一种升级包的生成和安装过程的逻辑示意图;
图5是本申请实施例提供的一种计算机设备的结构示意图;
图6是本申请实施例提供的一种终端设备的结构示意图;
图7是本申请实施例提供的一种升级包的生成和安装方法的流程图;
图8是本申请实施例提供的一种设备进行版本更新的流程示意图;
图9是本申请实施例提供的一种升级包的生成和安装过程的逻辑示意图;
图10是本申请实施例提供的一种升级包的生成装置的结构示意图;
图11是本申请实施例提供的一种升级包的安装装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在对本申请实施例提供的生成升级包、安装升级包的方法进行详细说明之前,先对本申请实施例涉及的应用场景和实施环境予以说明。
手机、平板电脑、可穿戴设备等终端设备需要根据供应商发布的升级包,对终端设备的系统或软件等对象进行版本更新。比如,终端设备可以采用空中下载(over the air,OTA)升级技术实现版本更新。OTA技术是一种通过无线网络进行数据下载的技术,OTA升级技术是通过终端设备的无线网络接口实现对终端设备的待升级对象进行远程版本更新的技术,以实现远程升级终端设备的系统或软件等对象的版本。应理解,终端设备也可以采用其他技术实现版本更新。
请参考图1,图1是本申请实施例提供的一种设备进行版本更新的系统示意图。如图1所示,该系统包括第一设备11、第二设备12、第三设备13和第四设备14。第一设备11、第二设备12、第三设备13和第四设备14之间可以通过有限网络或无线网络进行通信。
其中,第一设备11为用于制作和上传升级包的设备,可以为终端设备或服务器等。第二设备12为用于存储和下发升级包的设备,比如云端的服务器。第三设备13为用于下载升级包的设备,可以为终端设备或服务器等。另外,第三设备13在下载升级包后,可以根据该升级包进行版本更新,也可以将下载的升级包转发给第四设备14,由第四设备根据该升级包进行版本更新。第四设备14为用于进行版本升级的设备,可以为终端设备或服务器等。其中,终端设备可以为手机、平板电脑、计算机或可穿戴设备等。
比如,第一设备11制作待升级对象的升级包,将升级包上传至第二设备12,由第二设备12进行存储。第三设备13从第二设备12下载升级包,根据该升级包对待升级对象的版本进行更新。或者,第三设备13也可以在从第二设备12下载升级包之后,将升级包发送给第四设备14,由第四设备14根据该升级包对自身的待升级对象的版本进行更新。
其中,制作升级包的方法主要有两种:一种是采用全量升级方式进行制作,即将新版本的安装包的全部据打包到升级包中,但是这种升级包的数据量较大。另一种是采用差分升级方式进行制作,即对新版本的安装包和旧版本的安装包进行差分处理,得到差分文件,将差分文件打包到升级包中,这种升级包的数据量小于全量升级得到的升级包的数据量。
目前,为了节省服务器的存储资源和终端设备下载升级包的时间,且降低开发成本,升级包通常为采用差分升级方式制作的升级包,即升级包通常为相邻两个版本之间的差分文件。比如,第一设备11可以对旧版本的安装包1和新版本的安装包2整体进行差分处理,得到差分文件,将差分文件打包到升级包中,从而得到待升级对象的升级包。第三设备13或第四设备14获取到该升级包后,可以根据该升级包和旧版本的安装包1进行还原处理,得到新版本的安装包2,通过安装第二安装包实现版本更新。其中,还原处理为差分处理的反向操作,用于根据差分文件还原出原始文件。
但是这种方式得到的升级包的数据量仍然较大,导致下载升级包的设备花费的下载时间较长,且待进行版本更新的设备的存储资源具有一定的要求,需要该设备的存储资源足够大,才能满足升级包的安装需求。比如,对于可穿戴设备等内存较小的设备,由于其内存有限,因此可能无法存储较大数据量的升级包,也无法对较大数据量的升级包进行还原和安装,因此,这种方式得到的升级包无法满足小内存设备的版本更新需求。
为此,相关技术中还提供了另一种制作升级包的方法。请参考图2,图2是相关技术提供的一种升级包的生成和安装过程的逻辑示意图,如图2所示,升级包的生成过程包括:获取旧版本的安装包1和新版本的安装包2。然后,对安装包1进行切片,得到切片序列1,对安装包2进行切片,得到切片序列2。之后,对于切片序列1和切片序列2中排序相同的每个切片对,对每个切片对进行差分处理,得到每个切片对对应的差分文件,然后将差分处理得到的多个切片对对应的差分文件进行拼接,得到升级包。升级包的安装过程包括:获取升级包之后,根据升级包中多个切片对对应的差分文件和旧版本的安装包1进行还原处理,得到新版本的安装包2。
上述制作升级包的方法中,通过先对新旧版本的安装包进行切片,再对新旧版本 对应的所有切片对均进行差分处理,来生成新旧版本的差分文件,虽然可以在一定程度上减小升级包的数据量,但是基于差分算法存在的缺陷,通过这种方式生成的升级包的数据量可能仍然较大。比如,若新旧版本的安装包较小,则切分得到的切片尺寸也较小,对于切片尺寸较小的切片对,对其进行差分处理得到的差分文件反而较大。譬如,对于1个字节大小的切片对,对其进行差分处理得到的差分文件反而大于1个字节。
本申请实施例中,为了较大程度地降低升级包的数据量,节省升级包的下载时间,以及降低对终端设备的存储资源的要求,提供了另一种升级包的生成和安装方法。为了便于理解,接下来将制作升级包的第一设备11为拍包服务器、存储和下发升级包的第二设备12为云端服务器、下载升级包的第三设备13为手机、进行版本更新的第四设备14为耳机为例对设备的版本更新过程进行说明。
图3是本申请实施例提供的另一种设备进行版本更新的系统示意图。如图3所示,该系统包括拍包服务器21、云端服务器22、手机23和耳机24。拍包服务器21、云端服务器22、手机23和耳机24之间可以通过有限网络或无线网络进行连接。其中,耳机24为无线耳机,比如无线蓝牙耳机。拍包服务器21可以获取新版本的安装包1和旧版本的安装包2,根据安装包1和安装包2生成升级包,将升级包上传至云端服务器22。手机23从云端服务器22下载升级包,将该升级包发送给耳机24。耳机24接收该升级包,通过安装该升级包进行版本更新,比如根据旧版本的安装包和升级包,生成新版本的安装包,安装新版本的安装包。
其中,请参考图4,升级包的生成过程可以包括:对安装包1进行切片,得到切片序列1,对安装包2进行切片,得到切片序列2,切片序列1和切片序列2均包括多个切片,切片序列1与切片序列2中排序相同的切片组成一个切片对,切片序列1中的多个切片与切片序列2中的多个切片组成多个切片对。根据多个切片对中的每个切片对的数据相似度对每个切片对进行数据处理,得到每个切片对对应的升级包数据。其中,数据处理包括跳过处理、异或处理或差分处理,通过跳过处理得到的切片对对应的升级包数据为空。然后,根据每个切片对的切片序号、以及每个切片对对应的数据处理类型和升级包数据,生成升级包,该升级包包括多个切片序号对应的升级包数据以及每个切片序号对应的数据处理类型信息,对应数据处理类型为跳过处理的升级包数据为空。
请参考图4,升级包的安装过程包括:根据升级包和安装包1,生成安装包2;对安装包2进行安装。比如,对安装包1进行切片,得到切片序列1。根据升级包包括的多个切片序号中的每个切片序号对应的数据处理类型,对切片序列1中每个切片序号对应的切片进行还原处理,以得到每个切片序号对应的安装包数据;根据多个切片序号对应的安装包数据,生成第二安装包。
也即是,本申请实施例在制作升级包时,在对新旧版本的安装包进行切片之后,可以根据新旧版本对应的各个切片对的数据相似度,对各个切片对分别进行差分处理、异或处理或跳过处理,比如在数据相同时进行跳过处理,在数据相似度较高时进行异或处理,在数据相似度较低时进行差分处理。而不是对新旧版本对应的所有切片对均进行差分处理。通过根据切片对的数据相似度进行差异性处理,可以克服对所有切片 对均进行差分处理存在的缺陷,在较大程度上减小升级包的数据量,生成数据量相对较小的升级包,进一步节省升级包的下载时间,以及降低对终端设备的存储资源的要求。
图5是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备可以是图1中所示的第一设备11、第二设备12、第三设备13或第四设备14。参见图5,该计算机设备包括至少一个处理器501、通信总线502、存储器503以及至少一个通信接口504。
处理器501可以是微处理器(包括中央处理器(central processing unit,CPU)等)、特定应用集成电路(application-specific integrated circuit,ASIC),或者可以是一个或多个用于控制本申请方案程序执行的集成电路。
通信总线502可包括一通路,用于在上述组件之间传送信息。
存储器503可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、电可擦可编程只读存储器(electrically erasable programmable read-Only memory,EEPROM)、光盘(包括只读光盘(compact disc read-only memory,CD-ROM)、压缩光盘、激光盘、数字通用光盘、蓝光光盘等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器503可以是独立存在,并通过通信总线502与处理器501相连接。存储器503也可以和处理器501集成在一起。
通信接口504使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网、无线接入网(radio access network,RAN)、无线局域网(wireless local area network,WLAN)等。
在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,如图5中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备可以包括多个处理器,如图5中所示的处理器501和处理器505。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备506和输入设备507。输出设备506和处理器501通信,可以以多种方式来显示信息。例如,输出设备506可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备507和处理器501通信,可以以多种方式接收用户的输入。例如,输入设备507可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备可以是一个通用计算机设备或一个专用计算机设备。在具体实现中,计算机设备可以是台式机、便携式电脑、网络服务器、掌上电脑、移动手机、平板电脑、无线终端设备、通信设备或嵌入式设备,本申请实施例不限定计算机设备的类型。
其中,存储器503用于存储执行本申请方案的程序代码510,处理器501用于执行存储器503中存储的程序代码510。该计算机设备可以通过处理器501以及存储器503中的程序代码510,来实现下文图6实施例提供的升级包的生成和处理方法。
图6是本申请实施例提供的一种终端设备100的结构示意图。该终端设备100可以是图1中所示的第三设备13或第四设备14。参见图6,终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,比如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口,如可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器, 也可以是有线充电器。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193和无线通信模块160等供电。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。比如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN, NFC,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的整数。
终端设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,比如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。比如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,计算机可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,来执行终端设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100在使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,比如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D以及应用处理器等实现音频功能,比如音乐播放,录音等。
接下来,对本申请实施例提供的升级包的生成和安装过程进行详细说明。
图7是本申请实施例提供的一种升级包的生成和安装方法的流程图,该方法应用于第一设备和第四设备,如图7所示,该方法包括如下步骤:
步骤701:第一设备获取第一安装包和第二安装包,第二安装包的版本高于第一安装包的版本。
第一安装包和第二安装包为待升级对象的不同版本的安装包,且第二安装包的版本高于第一安装包的版本。待升级对象可以为系统或软件等需要进行版本更新的对象。
比如,第一安装包和第二安装包均为目标软件的安装包,第一安装包为版本1的 安装包,第二安装包为版本2的安装包,版本2高于版本1。目标软件可以为任意软件。
作为一个示例,第一设备可以获取用户上传的第一安装包或第二安装包。或者,根据第一安装包的存储路径获取第一安装包,根据第二安装包的存储路径获取第二安装包。或者,根据第一安装包的下载路径下载第一安装包,根据第二安装包的下载路径获取第二安装包。
在一种可能的实现方式中,第一设备安装有升级包制作软件,相关人员可以在该升级包制作软件的相关界面中上传第一安装包和第二安装包,然后触发升级包制作指令。响应于该升级包制作指令,第一设备的升级包制作软件即可获取用户上传的第一安装包和第二安装包,然后按照下述步骤702-步骤704对第一安装包和第二安装包进行处理,生成升级包。或者,相关人员也可以在升级包制作软件的相关界面中输入或选择第一安装包的存储路径以及第二安装包的存储路径,然后触发升级包制作指令。响应于该升级包制作指令,第一设备的升级包制作软件即可根据第一安装包的存储路径获取第一安装包,根据第二安装包的存储路径获取第二安装包。
应理解,第一设备也可以通过其他方式获取第一安装包和第二安装包,比如从其他设备获取第一安装包和第二安装包,譬如从服务器下载第一安装包和第二安装包,本申请实施例对获取第一安装包和第二安装包的方式不做限定。
步骤702:第一设备对第一安装包进行切片,得到第一切片序列,对第二安装包进行切片,得到第二切片序列,第二切片序列与第一切片序列中排序相同的切片组成一个切片对,第二切片序列中的多个切片与第一切片序列中的多个切片组成多个切片对。
其中,第一切片序列包括多个切片,第二切片序列也包括多个切片。对于第一切片序列和第二切片序列中排序相同的任意两个切片,可以将这两个切片称为切片对。比如,第一切片序列中的第一个切片和第二切片序列中的第一个切片称为一个切片对,第一切片序列中的第二个切片和第二切片序列中的第二个切片称为一个切片对。
作为一个示例,可以按照相同的切片规则对第一安装包和第二安装包进行切片,切片规则包括预设切片尺寸,预设切片尺寸用于指示切片得到的各个切片的尺寸相同,均为该预设切片尺寸。如此,可以保证第一切片序列和第二切片序列中各个切片的尺寸相同。
另外,切片规则还可以包括预设切片数量,用于指示切片得到的切片序列的切片数量为预设切片数量。如此,可以保证第一切片序列和第二切片序列的切片数量相同。
一般而言,不同版本的第一安装包和第二安装包的安装包大小相同或相差不大,因此按照相同的切片规则对第一安装包和第二安装包进行切片后,得到的第一切片序列和第二切片序列的切片数量相同。
例如,假设切片规则中的预设切片尺寸为16k。按照该切片规则对第一安装包进行切片得到的第一切片序列包括4个切片,每个切片的切片尺寸均为16k。按照该切片规则对第二安装包进行切片得到的第二切片序列也包括4个切片,每个切片的切片尺寸均为16k。示例地,切片可以标识为block,简称blk。第一切片序列中的4个切片可以分别标识为:1-blk0,1-blk1,1-blk2,1-blk3,第二切片序列中的4个切片可以 分别标识为:2-blk0,2-blk1,2-blk2,2-blk3。第一切片序列和第二切片序列可以构成4个切片对:1-blk0和2-blk0,1-blk1和2-blk1,1-blk2和2-blk2,以及1-blk3和2-blk3。
步骤703:第一设备根据多个切片对中的每个切片对的数据相似度对每个切片对进行数据处理,得到每个切片对对应的升级包数据,数据处理至少包括跳过处理、异或处理或差分处理。
其中,跳过处理是指不对对应切片对的数据进行处理,通过跳过处理得到的切片对对应的升级包数据为空。异或处理是指采用异或逻辑进行的数据处理,异或逻辑是指当两个数据相同时输出第一数值,当两个数据不同时输出第二数值。比如,对切片对包括的两个切片中对应位数的数据进行异或处理,当切片对在某个位数的数据相同时,则异或处理结果的相应位数为第一数值,当切片对在某个位数的数据不同时,则异或处理结果在相应位数为第二数值。差分处理是指确定切片对中两个切片的数据差异,即差分处理的结果用于反映每个切片对的数据差异。
本申请实施例中,为了减小升级包的数据量,可以根据每个切片对的数据相似度对每个切片对进行差异化处理,而非对每个切片对均进行固化的差分处理。比如,若数据相同则进行跳过处理,若数据高度相似则进行异或处理,若数据差异较大则进行差分处理。如此,可以根据数据相似度,采用较为匹配的数据处理结果来指示每个切片对之间的数据关联性,使得根据数据处理结果生成的升级包的数据量较小。
作为一个示例,多个切片对中包括第一切片对,第一切片对由第一切片序列中的第一切片和第二切片序列中的第二切片组成。根据每个切片对的数据相似度对每个切片对进行数据处理,得到每个切片对对应的升级包数据的操作可以包括如下几种情况:
第一种情况:若第一切片与第二切片的数据相同,则对第一切片对进行跳过处理,第一切片对对应的升级包数据为空。
其中,第一切片对对应的升级包数据为空是指第一切片对没有对应的升级包数据。
对于数据相同的切片对,可以不对这个切片对的数据进行处理,仅需记录这个切片对对应的数据处理类型即可,因此这个切片对对应的升级包数据为空,即这切片对没有对应的升级包数据。
第二种情况:若第一切片与第二切片的数据不同且数据相似度大于或等于第一阈值,则对第一切片对进行异或处理,得到第一数据,根据第一数据确定第一切片对对应的升级包数据。
其中,第一阈值可以预先设置,比如设置为一个较高的相似度阈值。当第一切片与第二切片的数据不同且数据相似度大于第一阈值时,说明第一切片和第二切片的数据高度相似,仅少部分数据不同。例如,第一阈值可以为80%或90%等。
对于数据高度相似的切片对,可以对这个切片对进行异或处理,通过异或处理结果指示这个切片对中哪部分数据相同,哪部分数据不同。
作为一个示例,对第一切片对进行异或处理,得到第一数据的操作包括:对第一切片和第二切片中对应字节位置的数据进行异或处理,得到第一数据。
其中,若第一切片和第二切片对应字节位置的数据相同,则第一数据的对应字节位置的数据为第一数值,若第一切片和第二切片对应字节位置的数据不同,则第一数据的对应字节位置的数据为第二数值。
其中,第一数据为异或处理结果。第一切片、第二切片和第一数据的字节数一般相同。第一数据中的第一数值用于指示第一切片对在对应字节位置的数据相同,第二数值用于指示第一切片对在对应字节位置的数据不同。第一数值和第二数值可以预先设置,比如第一数值为0,第二数值为1。
也即是,若第一切片和第二切片在相同的某个字节位置的数据相同,则在第一数据的相同字节位置输出第一数值;若第一切片和第二切片在相同的某个字节位置的数据不同,则在第一数据的相同字节位置输出第二数值。
通常情况下,异或处理的处理对象一般为二进制数据,若第一切片对的数据不是二进制数据,可以先将第一切片对的数据转换为二进制数据,再对转换为二进制数据的第一切片对进行异或处理。
例如,对第一切片和第二切片中对应字节位置的数据进行异或处理,得到第一数据的操作包括以下两种情况:
1)若第一切片的数据和第二切片的数据均为二进制数据,则对第一切片和第二切片中对应字节位置的二进制数值进行异或处理,得到第一数据。
其中,若第一切片和第二切片对应字节位置的数值相同,则第一数据的对应字节位置的数值为0,若第一切片和第二切片对应字节位置的数值不同,则第一数据的对应字节位置的数值为1。
比如,若第一切片的数据为“1100”,第二切片的数据为“1101”,则对第一切片和第二切片进行异或处理得到的第一数据为“0001”。“0001”中的“0”表示第一切片对在对应字节位置的数据不同,“1”表示第一切片对在对应字节位置的数据不同。
2)若第一切片和第二切片中的至少一个切片的数据不是二进制数据,则将第一切片和第二切片中不是二进制数据的切片的数据转换为二进制数据,对转换为二进制数据后的第一切片和第二切片中对应字节位置的二进制数值进行异或处理,得到第一数据。
其中,若转换为二进制数据后的第一切片和第二切片对应字节位置的数值相同,则第一数据的对应字节位置的数值为0,若转换为二进制数据后的第一切片和第二切片对应字节位置的数值不同,则第一数据的对应字节位置的数值为1。
比如,若第一切片和第二切片的数据为十六进制数据,则可以先将两者对应的十六进制数据转换为二进制数据,再对转换为二进制数据后的第一切片和第二切片进行异或处理。
其中,根据第一数据确定第一切片对对应的升级包数据的操作可以包括以下两种实现方式中的任一种:
第一种实现方式:将第一数据确定为第一切片对对应的升级包数据。
也即是,将异或处理结果直接作为第一切片对对应的升级包数据。比如,若第一数据为“0001”,则将“0001”直接作为第一切片对对应的升级包数据。
第二种实现方式:对第一数据进行压缩处理,得到第三数据,将第三数据确定为第一切片对应的升级包数据。
也即是,先对异或处理结果进行压缩,再将压缩后的异或处理结果作为第一切片对对应的升级包数据。
作为一个示例,在第一数据为二进制数据的情况下,可以对第一数据中的0进行压缩处理,得到第三数据。比如,若第一数据为“0001”,则对第一数据“0001”中的0进行压缩,得到第三数据“1”。如此,可以减小数据量,从而减小数据占用空间和数据传输效率。
其中,对第一数据中的0进行压缩处理后,得到的第三数据包括1,不包括0。此外,第三数据还可以包括被压缩掉的0的字节位置信息或者剩余的1对应的字节位置信息,以指示哪些字节位置的数据被压缩掉,以便后续根据这些信息对压缩后的第三数据进行解压,得到第一数据。
应理解,也可以采用其他压缩方式对第一数据进行压缩处理。
第三种情况:若第一切片与第二切片的数据相似度小于第一阈值,则对第一切片对进行差分处理,得到第二数据,根据第二数据确定第一切片对对应的升级包数据。
若第一切片与第二切片的数据相似度小于第一阈值,说明第一切片和第二切片的数据差异较大,这种情况下,可以对第一切片对进行差分处理,以通过差分处理结果表示这第一切片对的数据差异。
其中,第二数据为差分处理结果,即第一切片对的差分文件。
其中,根据第二数据确定第一切片对对应的升级包数据可以包括以下两种实现方式中的任一种:
第一种实现方式:将第二数据确定为第一切片对对应的升级包数据。
也即是,将差分处理结果直接作为第一切片对对应的升级包数据。
第二种实现方式:对第二数据进行压缩处理,得到第四数据;将第四数据确定为第一切片对对应的升级包数据。
也即是,先对差分处理结果进行压缩,再将压缩后的差分处理结果作为第一切片对对应的升级包数据。对第二数据进行压缩处理的压缩算法可以预先根据需要进行设置,本申请实施例对此不做限定。
通过对第一切片序列和第二切片序列中排序相同的各个切片对进行数据处理,可以得到多个切片对对应的升级包数据。其中,对应数据处理类型为跳过处理的切片对对应的升级包数据为空,即对应数据处理类型为跳过处理的切片对没有对应的升级包数据。
步骤704:第一设备根据多个切片对中每个切片对的切片序号、以及每个切片对对应的数据处理类型和升级包数据,生成升级包,升级包包括多个切片序号对应的升级包数据和以及每个切片序号对应的数据处理类型信息。
其中,数据处理类型信息用于指示对应切片对进行数据处理采用的数据处理类型。数据处理类型包括跳过处理、异或处理或差分处理。
在得到每个切片对对应的升级包数据之后,可以将多个切片序号中每个切片序号指示的切片对对应的数据处理类型和升级包数据打包进升级包,以生成升级包。其中,多个切片序号为多个切片对的切片序号。
作为一个示例,第一切片序列或第二切片序列的切片序号可以用0~n-1表示,n为切片序列的切片数量。应理解,切片序列的切片序号也可以采用其他方式表示,比如用1~n表示,本申请实施例对此不做限定。
作为一个示例,根据每个切片对的切片序号、以及每个切片对对应的数据处理类型和升级包数据,生成升级包的操作包括:将多个切片序号中每个切片序号指示的切片对对应的升级包数据写入初始数据包的数据信息中,将每个切片序号指示的切片对对应的数据处理类型、以及对应的升级包数据在初始数据包的数据信息中的存储位置信息写入所述初始数据包的头信息中,数据写入后的初始数据包为升级包,多个切片序号为所述多个切片对的切片序号。
比如,将每个切片对对应的升级包数据写入初始数据包的数据信息中,将每个切片对的切片序号、每个切片对对应的数据处理类型、以及每个切片对对应的升级包数据在初始数据包的数据信息中的存储位置信息写入初始数据包的头信息中,数据写入后的初始数据包为升级包。其中,对应数据处理类型为跳过处理的切片对对应的升级包数据以及升级包数据对应的存储位置信息均为空。
其中,每个切片序号指示的切片对对应的升级包数据在初始数据包的数据信息中的存储位置信息用于指示每个切片序号指示的切片对对应的升级包数据在初始数据包的数据信息中的存储位置。例如,每个切片对对应的升级包数据在初始数据包的数据信息中的存储位置信息可以每个切片对对应的升级包数据在初始数据包的数据信息中的增量偏移。
如此,生成的升级包的头信息中存储有:多个切片序号中每个切片序号对应的数据处理类型、每个切片序号对应的升级包数据在升级包的数据信息中的存储位置信息。升级包的数据信息中存储有每个切片序号对应的升级包数据。其中,对应数据处理类型为跳过处理的切片序号对应的升级包数据的存储位置信息为空,即对于数据处理类型为跳过处理的切片序号没有对应的升级包数据,也没有对应的升级包数据在升级包中的存储位置信息。
此外,还可以将多个切片序号写入初始数据包的头信息中。比如,将多个切片序号、以及每个切片序号对应的数据处理类型和对应的升级包数据在升级包的数据信息中的存储位置信息对应写入初始数据包的头信息中。如此,可以通过切片序号指示对应的数据处理类型和升级包数据。
此外,还可以将切片尺寸写入初始数据包的头部信息中,使得生成的升级包的头信息还包括切片尺寸。进一步地,还可以将切片数量写入初始数据包的头部信息中,使得生成的升级包的头信息还包括切片数量。
通过在头信息中写入切片尺寸和/或切片数量,便于接收到该升级包的终端设备进行还原安装时,根据头信息中的切片尺寸和/或切片数量对终端设备上存储的旧版本的安装包进行切片,得到与升级包中的多个切片序号对应的切片序列。
其中,切片尺寸为第一切片序列和第二切片序列中切片的尺寸。切片数量为第一切片序列和第二切片序列中排序相同的切片对的数量。示例地,第一切片序列和第二切片序列中各个切片的切片尺寸均为预设尺寸,写入头信息的切片尺寸为该预设尺寸。第一切片序列中的切片数量和第二切片序列中的切片数量相同,均为预设数量,写入头信息的切片数量为该预设数量。
通过预先设置切片尺寸和切片数量,可以在制作升级包时,按照预设切片尺寸和预设切片数量对新旧版本的安装包进行切片,保证新旧版本的切片序列的切片尺寸和 切片数量对齐,便于后续根据对齐的新旧版本的切片序列中的各个切片对进行处理,生成升级包。另外,通过在头信息中写入预设切片尺寸和预设切片数量,便于接收到该升级包的终端设备进行还原安装时,也按照头信息中的预设切片尺寸和切片数量对终端设备上存储的旧版本的安装包进行切片,得到与升级包中的多个切片序号对应的切片序列,便于后续根据同序号的升级包数据和切片数据还原出新版本的安装包。
示例地,升级包的头信息可以采用如下格式表示:
其中,block_size为切片尺寸,block_num为切片数量,operate_type为数据处理类型,blk_no和offset分别为该数据处理类型对应的切片序号和对应的升级包数据在升级包中的增量偏移。
其中,不同的数据处理类型可以采用不同的数据处理类型标识来表示。比如,可以采用如下数据处理类型标识来标识不同的数据处理类型:
假设第一切片序列包括4个切片:1-blk0,1-blk1,1-blk2,1-blk3;第二切片序列也包括4个切片:2-blk0,2-blk1,2-blk2,2-blk3。各个切片的切片尺寸均为16k。切片序号为0的第一个切片对“1-blk0和2-blk0”对应的数据处理类型为跳过处理,跳过处理的数据处理类型标识为0。切片序号为1的第二个切片对“1-blk1和2-blk1”以及切片序号为3的第四个切片对“1-blk3和2-blk3”对应的数据处理类型为异或处理,异或处理处理的数据处理类型标识为1,第二个切片对和第四个切片对对应的升级包数据在升级包中的增量偏移分别为10和8。切片序号为2的第三个切片对“1-blk2和2-blk2”对应的数据处理类型为差分处理,差分处理的数据处理类型标识为2,第三个切片对对应的升级包数据在升级包中的增量偏移为5。则升级包的头信息可以为:
另外,若按照相同的切片规则对第一安装包和第二安装包进行切片后得到两个切片序列的切片数量不同,还可以在切片数量较少的切片序列的序列末尾补充特定数量的空白切片,从而得到切片数量相同的第一切片序列和第二切片序列。
对于通过补充空白切片后得到的切片数量相同的第一切片序列和第二切片序列来说,第一切片序列和第二切片序列中排序相同的各个切片对中,有些切片对中的两个切片均存储有数据,为了便于说明,将这种切片对称为第一类切片对。而有些切片对中只有一个切片存储有数据、另一个切片的数据为空,为了便于说明,将这种切片对称为第二类切片对。第二类切片对的数据相似度非常小。
本申请实施例中,还可以根据每个切片对的数据相似度和所属的切片对类别,对每个切片对进行数据处理,得到每个切片对对应的升级包数据。数据处理除了可以包括跳过处理、异或处理或差分处理之外,还可以包括复制处理或删除处理。切片对类别包括第一类切片对或第二类切片对。
其中,复制处理是指对对应切片对中属于第二切片序列的切片进行复制,得到该切片对对应的升级包数据。删除处理也是指不对对应切片对的数据进行处理,通过删除处理得到的切片对对应的升级包数据也为空。
比如,对于第一切片序列和第二切片序列中排序相同的第一切片对,若第一切片对的数据相同且第一切片对属于第一类切片对,则对第一切片对进行跳过处理,第一切片对对应的升级包数据为空。若第一切片对的数据不同、数据相似度大于或等于第一阈值且第一切片对属于第一类切片对,则对第一切片对进行异或处理,得到第一数据,根据第一数据确定第一切片对对应的升级包数据。若第一切片对对应的数据相似对小于第一阈值且第一切片对属于第一类切片对,则对第一切片对进行差分处理,得到第二数据,根据第二数据确定第一切片对对应的升级包数据。
此外,若第一切片对对应的数据相似对小于第一阈值、第一切片对属于第二切片对且第一切片对中的空白切片属于第一切片序列,说明第二安装包相对于第一安装包新增了部分数据,则可以对第一切片对进行复制处理,即对第一切片对中属于第二切片序列的切片进行复制,得到第一切片对对对应的升级包数据。
若第一切片对对应的数据相似对小于第一阈值、第一切片对属于第二切片对且第一切片对中的空白切片属于第二切片序列,说明第二安装包相对于第一安装包删除了部分数据,则可以对第一切片对进行删除处理,第一切片对对应的升级包数据为空。
如此,生成的升级包包括多个切片序号中的每个切片序号对应的数据处理类型和升级包数据,每个切片序号对应的数据处理类型为跳过处理、异或处理、差分处理、复制处理或删除处理,对应数据处理类型为跳过处理和删除处理的升级包数据为空,即对应数据处理类型为跳过处理和删除处理的切片序号没有对应的升级包数据。相应地,若升级包的头信息中包括每个切片序号对应的升级包数据在升级包的数据信息中的存储位置信息,则对应数据处理类型为跳过处理和删除处理的切片序号对应的存储位置信息为空,即对应数据处理类型为跳过处理和删除处理的切片序号没有对应的存储位置信息。
需要说明的是,生成的升级包可以指示第一安装包和第二安装包的关联关系,具体可以指示对应的切片序列中哪些切片对数据相同、哪些切片对数据高度相似、哪些切片对数据差异较大,以及数据高度相似的切片对中哪些数据相同、哪些数据不同,以及数据差异较大的切片对的差分文件。
步骤705:第一设备向第四设备发送升级包。
第一设备可以直接将第一设备发送给第四设备,也可以通过其他设备向第四设备转发升级包,本申请实施例对此不做限定。比如,请参考上述图1,第一设备可以先将升级包上传至第二设备,再由第三设备从第二设备下载升级包,将下载的升级包转发给第四设备。或者,也可以由第四设备从第二设备下载升级包。
另外,第一设备可以先对升级包进行压缩,得到升级包的压缩包,再向第四设备发送升级包的压缩包。比如,请参考上述图1,第一设备可以对升级包进行压缩,将升级包的压缩包上传至第二设备,再由第三设备从第二设备下载升级包的压缩包,将下载的升级包的压缩包转发给第四设备。或者,第三设备从第二设备下载升级包的压缩包后,也可以先对压缩包进行解压得到升级包,再将解压得到的升级包发送给第四设备。或者,也可以由第四设备从第二设备下载升级包的压缩包。
步骤706:第四设备接收来自第一设备的升级包。
作为一个示例,第四设备可以接收升级包的压缩包,对压缩包进行解压,得到升级包。应理解,第四设备也可以通过其他方式获取升级包,本申请实施例对此不做限定。
步骤707:第四设备根据该升级包和存储的第一安装包,生成第二安装包。
由于升级包是根据第一安装包和第二安装包生成得到,可以指示第一安装包和第二安装包之间的关联关系,因此第四设备获取升级包后,可以根据该升级包和存储的第一安装包还原出第二安装包。
作为一个示例,根据升级包和存储的第一安装包,生成第二安装包的操作可以包括如下步骤:
1)根据多个切片序号中的每个切片序号对应的数据处理类型,对每个切片序号对应的切片进行还原处理,以得到每个切片序号对应的安装包数据。
其中,每个切片序号对应的数据处理类型至少包括跳过处理、异或处理或差分处理。在数据处理类型不同的情况下,还原处理方式不同。
具体地,根据数据处理类型的不同,根据多个切片序号中的每个切片序号对应的数据处理类型,对每个切片序号对应的切片进行还原处理可以包括以下几种情况:
第一种情况:在每个切片序号对应的数据处理类型为跳过处理的情况下,对第一切片序列中与每个切片序号对应的切片进行复制处理,以得到每个切片序列号对应的安装包数据。
其中,第一切片序列是对存储在第二设备上的旧版本的安装包进行切片处理得到。
也即是,若第一切片序号指示的切片对的数据相同,则可以直接将第一切片序列中相应位置的切片数据作为新版本的安装包中相应位置的切片数据。比如,切片序号0对应的数据处理类型为跳过处理,则将第一切片序列中切片序号0对应切片的数据作为切片序号0对应的安装包数据。
第二种情况:在每个切片序号对应的数据处理类型为异或处理的情况下,对每个切片序号对应的升级包数据以及第一切片序列中与所述每个切片序号对应的切片进行异或处理,以得到每个切片序列号对应的安装包数据。
其中,具体异或处理方式可以参考上述实施例中的相关描述,本申请实施例在此不再赘述。比如,若切片序号1对应的数据处理类型为异或处理,且切片序号1对应 的升级包数据为“0001”,第一切片序列中切片序号1对应切片的数据为“1100”,则对“0001”和“1100”进行异或处理,得到切片序号1对应的安装包数据为“1101”。
第三种情况:在每个切片序号对应的数据处理类型为差分处理的情况下,对每个切片序号对应的升级包数据以及第一切片序列中与每个切片序号对应的切片进行反差分处理,以得到每个切片序列号对应的安装包数据。
其中,反差分处理为差分处理的反向操作,用于根据差分文件还原出原始文件。
比如,若切片序号2对应的数据处理类型为差分处理,则对切片序号2对应的升级包数据和第一切片序列中切片序号2对应切片的数据进行还原处理,得到切片序号2对应的安装包数据。
作为一个示例,若升级包的头信息存储有多个切片序号中每个切片序号对应的数据处理类型和对应的升级包数据在升级包的数据信息中的存储位置信息,升级包的数据信息存储有多个切片序号中每个切片序号对应的升级包数据。则在得到每个切片序号对应的安装包数据之前,可以先从升级包的头信息中获取多个切片序号中每个切片序号对应的数据处理类型和对应的升级包数据在升级包的数据信息中的存储位置信息,根据每个切片序号对应的升级包数据在升级包的数据信息中的存储位置信息,从升级包的数据信息中获取每个切片序号对应的升级包数据,然后根据每个切片序号对应的数据处理类型,对每个切片序号对应的切片进行还原处理,以得到每个切片序号对应的安装包数据。
此外,若升级包中每个切片序号对应的数据处理类型还可以包括复制处理或删除处理,则根据多个切片序号中的每个切片序号对应的数据处理类型,对每个切片序号对应的切片进行还原处理的操作还包括如下第四种情况和第五种情况:
第四种情况:在每个切片序号对应的数据处理类型为复制处理的情况下,对第一切片序号对应的升级包数据进行复制,得到第一切片序号对应的安装包数据,以实现在第二安装包中插入第一安装包中新增的第一切片序号对应的升级包数据。
第五种情况:在每个切片序号对应的数据处理类型为删除处理的情况下,对每个切片序号对应的升级包数据以及第一切片序列中与所述每个切片序号对应的切片进行异或处理进行跳过处理,得到的第一切片序号对应的升级包数据为空,以实现将第一安装包中对应切片序号的切片数据删除。
另外,生成第二安装包之前,还可以先对存储的第一安装包进行切片,得到第一切片序列。作为一个示例,升级包的头信息中包括切片尺寸,可以根据该切片尺寸对第一安装包进行切片,使得第一切片序列中的各个切片的尺寸均为该切片尺寸。作为另一个示例,升级包的头信息中包括切片尺寸和切片数量,可以根据该切片尺寸和切片数量对第一安装包进行切片,使得第一切片序列中的各个切片的尺寸均为该切片尺寸,以及第一切片序列包括的切片的数量为该切片数量。
2)根据多个切片序号对应的安装包数据,生成第二安装包。
比如,可以对多个切片序号对应的安装包数据进行拼接,得到第二安装包。
步骤708:第四设备对第二安装包进行安装。
通过对第二安装包进行安装,即可实现版本更新。
本申请实施例中,在制作升级包时,可以先对新旧版本的安装包进行切片,然后 根据新旧版本对应的各个切片对的数据相似度,对各个切片对分别进行差分处理、异或处理或跳过处理,比如在数据相同时进行跳过处理,在数据相似度较高时进行异或处理,在数据相似度较低时进行差分处理。而不是对新旧版本对应的所有切片对均进行差分处理。通过根据切片对的数据相似度进行差异性处理,可以克服对所有切片对均进行差分处理存在的缺陷,在较大程度上减小升级包的数据量,生成数据量相对较小的升级包,进一步节省升级包的下载时间,以及降低对终端设备的存储资源的要求。
另外,在对升级包进行安装时,可以根据升级包中各个切片序号对应的数据处理类型,对各个切片序号对应的切片进行还原处理,还原出新版本的安装包,再对新版本的安装包进行安装。由于升级包的数据量较小,因此对升级包进行还原安装所需要的存储资源也较小,如此降低了对终端设备的存储资源的要求,适应于内存较小的终端设备进行版本更新。而且,可以根据各个切片序号对应的数据处理类型的不同,对各个切片序号对应的切片进行不同形式的还原处理。比如,在数据处理类型为跳过处理时进行复制处理,在数据处理类型为异或处理时进行异或处理,在数据处理类型为差分处理时进行反差分处理。如此,可以根据数据量较小的升级包,准确还原出新版本的安装包,提出了一种适配于数据量较小的升级包的还原安装方法。
接下来,结合上述图3,以制作升级包的设备为拍包服务器21、存储和下发升级包的设备为云端服务器22、下载升级包的设备为手机23、进行版本更新的设备为耳机24为例,对本申请实施例提供的升级包的生成和安装方法进行详细说明。
图8是本申请实施例提供的一种设备进行版本更新的流程示意图,如图8所示,该方法包括如下步骤:
步骤801:拍包服务器21获取旧版本的安装包1和新版本的安装包2。
安装包1和安装包2为待升级对象的不同版本的安装包,且安装包2的版本高于安装包1的版本。待升级对象可以为系统或软件等需要进行版本更新的对象。
步骤802:拍包服务器21对安装包1进行切片,得到切片序列1,对安装包2进行切片,得到切片序列2,切片序列1和切片序列2中排序相同的切片组成多个切片对。
请参考图9,图9是本申请实施例提供的一种升级包的生成和安装过程的示意图。如图9所示,在升级包的生成过程中,可以按照相同的切片规则对安装包1和安装包2进行切片,切片规则包括切片尺寸=16k,用于指示切片得到的每个切片的切片尺寸均为16k。另外,对安装包1进行切片得到的切片序列1包括4个切片:1-blk0,1-blk1,1-blk2,1-blk3。对安装包2进行切片得到的切片序列2也包括4个切片:2-blk0,2-blk1,2-blk2,2-blk3。
步骤803:拍包服务器21根据多个切片对中的每个切片对的数据相似度对每个切片对进行数据处理,得到每个切片对对应的升级包数据,数据处理至少包括跳过处理、异或处理或差分处理。
其中,跳过处理是指不对对应切片对的数据进行处理,通过跳过处理得到的切片对对应的升级包数据为空。
其中,若数据相同则进行跳过处理,若数据不同且数据相似度大于或等于第一阈 值,则进行异或处理,若数据相似度小于第一阈值,则进行差分处理。
请参考图9,切片序号0对应的切片对“1-blk0和2-blk0”的数据相同,则对“1-blk0和2-blk0”进行跳过处理,切片序号0对应的升级包数据为空,即切片序号0没有对应的升级包数据。切片序号1对应的切片对“1-blk1和2-blk1”的数据相似度大于第一阈值即数据高度相似,则对“1-blk1和2-blk1”进行异或处理,得到数据p1,对数据p1进行压缩,得到切片序号1对应的升级包数据p1’。切片序号2对应的切片对“1-blk2和2-blk2”的数据相似度小于第一阈值即数据差异较大,则对“1-blk2和2-blk2”进行差分处理,得到切片序号2对应的升级包数据p2。切片序号3对应的切片对“1-blk3和2-blk3”的数据相似度大于第一阈值即数据高度相似,则对“1-blk3和2-blk3”进行异或处理,得到数据p3,对数据p3进行压缩,得到切片序号3对应的升级包数据p3’。
步骤804:拍包服务器21将每个切片对对应的升级包数据写入初始数据包的数据信息中,将切片数量、切片尺寸、每个切片对的切片序号、每个切片对对应的数据处理类型、以及每个切片对对应的升级包数据在初始数据包的数据信息中的存储位置信息写入初始数据包的头信息中,数据写入后的初始数据包为升级包。
其中,每个切片对对应的升级包数据在初始数据包的数据信息中的存储位置信息可以为每个切片对对应的升级包数据在初始数据包的数据信息中的增量偏移等。
请参考图9,可以将切片序号1对应的升级包数据p1’、切片序号2对应的升级包数据p2和切片序号3对应的升级包数据p3’写入升级包的数据信息中。p1’、p2和p3’在升级包的数据信息中的增量偏移分别为10,5和8。另外,还可以将切片数量、切片尺寸、切片序号0对应的数据处理类型、切片序列1~3对应的数据处理类型和升级包数据的增量偏移写入升级包的头信息中。
比如,升级包的头信息包括如下内容:
步骤805:拍包服务器21对升级包进行压缩,得到升级包的压缩包。
步骤806:拍包服务器21向云端服务器22发送升级包的压缩包。
也即是,拍包服务器21可以将升级包的压缩包上传至云端服务器22。
应理解,拍包服务器21也可以不对升级包进行压缩,直接向云端服务器22发送升级包。
步骤807:云端服务器22向手机23发送升级包的压缩包。
其中,云端服务器22可以主动向手机23推送升级包的压缩包,也可以根据手机23的下载请求向手机23发送升级包的压缩包,本申请实施例对此不做限定。
比如,手机23可以向云端服务器22发送待升级对象的版本更新请求,云端服务器22根据版本更新请求向云端服务器22发送该升级包的压缩包。
步骤808:手机23对升级包的压缩包进行解压,得到升级包。
步骤809:手机23向耳机24发送升级包。
其中,耳机24为预先与手机23进行绑定的设备。手机23与耳机24通过无线局域网络进行连接,比如通过蓝牙进行连接。对于耳机24中的系统或软件等待升级对象,可以由手机3从云端服务器22下载待升级对象的升级包或升级包的压缩包,再由手机23通过无线局域网络发送给耳机24。
应理解,手机23接收到云端服务器22发送的升级包的压缩包后,也可以不对压缩包进行压缩,而是直接将压缩包发送给耳机24。或者,手机23也可以接收到云端服务器22发送的升级包,将升级包发送给耳机24。
步骤810:耳机24接收该升级包,从升级包的头信息中获取切片数量、切片尺寸、多个切片序号、以及每个切片序号对应的数据处理类型、每个切片序号对应的升级包数据在升级包的数据信息中的存储位置信息。
步骤811:耳机24根据切片尺寸和切片数量,对旧版本的安装包1进行切片,得到切片序列1。
请参考图9,在升级包的安装过程中,对安装包1进行切片得到的切片序列1包括4个切片:1-blk0,1-blk1,1-blk2,1-blk3。
应理解,耳机24也可以通过其他方式获取安装包1对应的切片序列1,比如获取已存储的切片序列1,或者从其他设备获取切片序列1,本申请实施例对此不做限定。
步骤812:耳机24根据多个切片序号及每个切片序号对应的升级包数据在升级包的数据信息中的存储位置信息,从升级包的数据信息中获取多个切片序号中每个切片序号对应的升级包数据。
获取到每个切片序号对应的升级包数据之后,若某个切片序号对应的升级包数据为压缩数据,还可以对获取的升级包数据进行解压,然后根据解压后的升级包数据执行下述步骤813。
比如,请参考图9,可以从升级包的数据信息中获取到切片序号1对应的升级包数据p1’、切片序号2对应的升级包数据p2和切片序号3对应的升级包数据p3’。然后,对切片序号1对应的升级包数据p1’进行解压,得到数据p1,对切片序号3对应的升级包数据p3’进行解压,得到p2。
步骤813:耳机24根据多个切片序号中的每个切片序号对应的数据处理类型,对每个切片序号对应的切片进行还原处理,以得到每个切片序号对应的安装包数据。
比如,若某个切片序号对应的数据处理类型为跳过处理,则对切片序列1中切片序号相同的切片进行复制处理,以得到该切片序列号对应的安装包数据。若某个切片序号对应的数据处理类型为异或处理,则对该切片序号对应的升级包数据以及切片序列1中相同每个切片序号对应的切片进行异或处理,以得到该切片序列号对应的安装包数据。若某个切片序号对应的数据处理类型为差分处理,则对该每个切片序号对应的升级包数据以及切片序列1中相同切片序号对应的切片进行反差分处理,以得到该每个切片序列号对应的安装包数据。
请参考图9,切片序号0~3对应的数据处理类型分别为跳过处理、异或处理、差分处理和异或处理。对切片序列1中切片序号0的切片进行复制处理,得到切片序号0对应的安装包数据,即2-blk0。对切片序号1对应的解压后的升级包数据p1和切片 序列1中的1-blk1的数据进行异或处理,得到切片序号1对应的安装包数据,即2-blk1。对切片序号2对应的升级包数据p2和切片序列1中的1-blk2中的数据进行反差分处理,得到切片序号2对应的安装包数据,即2-blk2。对切片序号3对应的解压后的升级包数据p3和切片序列3中的1-blk3的数据进行异或处理,得到切片序号3对应的安装包数据,即2-blk4。
步骤814:耳机24对多个切片序号对应的安装包数据进行拼接,得到新版本的安装包2。
请参考图9,将2-blk0、2-blk1、2-blk2和2-blk3进行拼接,得到安装包2。
步骤815:耳机24对安装包2进行安装。
通过对第二安装包进行安装,即可实现版本更新。
本申请实施例中,在制作升级包时,可以先对新旧版本的安装包进行切片,然后根据新旧版本对应的各个切片对的数据相似度,对各个切片对分别进行差分处理、异或处理或跳过处理,比如在数据相同时进行跳过处理,在数据相似度较高时进行异或处理,在数据相似度较低时进行差分处理。而不是对新旧版本对应的所有切片对均进行差分处理。通过根据切片对的数据相似度进行差异性处理,可以克服对所有切片对均进行差分处理存在的缺陷,在较大程度上减小升级包的数据量,生成数据量相对较小的升级包,进一步节省升级包的下载时间,以及降低对终端设备的存储资源的要求。
另外,在对升级包进行安装时,可以根据升级包中各个切片序号对应的数据处理类型,对各个切片序号对应的切片进行还原处理,还原出新版本的安装包,再对新版本的安装包进行安装。由于升级包的数据量较小,因此对升级包进行还原安装所需要的存储资源也较小,如此降低了对终端设备的存储资源的要求,适应于内存较小的终端设备进行版本更新。而且,可以根据各个切片序号对应的数据处理类型的不同,对各个切片序号对应的切片进行不同形式的还原处理。比如,在数据处理类型为跳过处理时进行复制处理,在数据处理类型为异或处理时进行异或处理,在数据处理类型为差分处理时进行反差分处理。如此,可以根据数据量较小的升级包,准确还原出新版本的安装包,提出了一种适配于数据量较小的升级包的还原安装方法。
图10是本申请实施例提供的一种升级包的生成装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为图1所示的第一设备11或图3所示的拍包服务器21。参见图10,该装置包括:获取模块1001、切片模块1002、处理模块1003和生成模块1004。
获取模块1001,用于执行上述图7实施例中的步骤701;
切片模块1002,用于执行上述图7实施例中的步骤702;
处理模块1003,用于执行上述图7实施例中的步骤703;
生成模块1004,用于执行上述图7实施例中的步骤704。
可选地,多个切片对中包括第一切片对,第一切片对由第一切片序列中的第一切片和第二切片序列中的第二切片组成;处理模块1003包括:
第一处理单元,用于若第一切片与第二切片的数据相同,则对第一切片对进行跳过处理,第一切片对对应的升级包数据为空;
第二处理单元,用于若第一切片与第二切片的数据不同且数据相似度大于或等于第一阈值,则对第一切片对进行异或处理,得到第一数据,根据第一数据确定第一切片对对应的升级包数据;
第三处理单元,用于若第一切片与第二切片的数据相似度小于第一阈值,则对第一切片对进行差分处理,得到第二数据,根据第二数据确定第一切片对对应的升级包数据。
可选地,第二处理单元用于:
对第一切片和第二切片中对应字节位置的数据进行异或处理,得到第一数据。
可选地,第二处理单元用于:
若第一切片的数据和第二切片的数据均为二进制数据,则对第一切片和第二切片中对应字节位置的二进制数值进行异或处理,得到第一数据;其中,若第一切片和第二切片对应字节位置的数值相同,则第一数据的对应字节位置的数值为0,若第一切片和第二切片对应字节位置的数值不同,则第一数据的对应字节位置的数值为1;
若第一切片和第二切片中的至少一个切片的数据不是二进制数据,则将第一切片和第二切片中不是二进制数据的切片的数据转换为二进制数据,对转换为二进制数据后的第一切片和第二切片中对应字节位置的二进制数值进行异或处理,得到第一数据;其中,若转换为二进制数据后的第一切片和第二切片对应字节位置的数值相同,则第一数据的对应字节位置的数值为0,若转换为二进制数据后的第一切片和第二切片对应字节位置的数值不同,则第一数据的对应字节位置的数值为1。
可选地,第二处理单元用于:
将第一数据确定为第一切片对对应的升级包数据;
或者,
对第一数据进行压缩处理,得到第三数据,将第三数据确定为第一切片对应的升级包数据。
可选地,第二处理单元用于:
对第一数据中的0进行压缩处理,得到第三数据。
可选地,第三处理单元用于:
将第二数据确定为第一切片对对应的升级包数据;
或者,
对第二数据进行压缩处理,得到第四数据;将第四数据确定为第一切片对对应的升级包数据。
可选地,生成模块1004用于:
将多个切片序号中每个切片序号指示的切片对对应的升级包数据写入初始数据包的数据信息中,将每个切片序号指示的切片对对应的数据处理类型、以及对应的升级包数据在初始数据包的数据信息中的存储位置信息写入初始数据包的头信息中,数据写入后的初始数据包为升级包,多个切片序号为多个切片对的切片序号。
可选地,生成模块1004还用于:
将第一切片序列和第二切片序列中排序相同的切片对的数量、以及第一切片序列和第二切片序列中切片的切片尺寸写入初始数据包的头部信息中。
可选地,第一切片序列中的切片数量和第二切片序列中的切片数量均为预设数量,写入头信息的排序相同的切片对的数量为预设数量;第一切片序列和第二切片序列中各个切片的切片尺寸均为预设尺寸,写入头信息的第一切片序列和第二切片序列中切片的切片尺寸为预设尺寸。
可选地,每个切片序号指示的切片对对应的升级包数据在初始数据包的数据信息中的存储位置信息为每个切片序号指示的切片对对应的升级包数据在初始数据包的数据信息中的增量偏移。
本申请实施例中,在制作升级包时,可以先对新旧版本的安装包进行切片,然后根据新旧版本对应的各个切片对的数据相似度,对各个切片对分别进行差分处理、异或处理或跳过处理,比如在数据相同时进行跳过处理,在数据相似度较高时进行异或处理,在数据相似度较低时进行差分处理。而不是对新旧版本对应的所有切片对均进行差分处理。通过根据切片对的数据相似度进行差异性处理,可以克服对所有切片对均进行差分处理存在的缺陷,在较大程度上减小升级包的数据量,生成数据量相对较小的升级包,进一步节省升级包的下载时间,以及降低对终端设备的存储资源的要求。
图11是本申请实施例提供的一种升级包的安装装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为图1所示的第三设备13或第四设备14,或者图3所示的手机23或耳机24。参见图11,该装置包括:获取模块1101、生成模块1102和安装模块1103。
获取模块1101,用于获取升级包,升级包包括多个切片序号对应的升级包数据以及每个切片序号对应的数据处理类型信息;
生成模块1102,用于执行上述图7实施例中的步骤707;
安装模块1103,用于执行上述图7实施例中的步骤708。
可选地,生成模块1102包括第一生成单元和第二生成单元;
第一生成单元,用于根据多个切片序号中的每个切片序号对应的数据处理类型,对每个切片序号对应的切片进行还原处理,以得到每个切片序号对应的安装包数据;
其中,在每个切片序号对应的数据处理类型为跳过处理的情况下,对第一切片序列中与每个切片序号对应的切片进行复制处理,以得到每个切片序列号对应的安装包数据,其中,第一切片序列是对存储在第二设备上的第一安装包进行切片处理得到;
在每个切片序号对应的数据处理类型为异或处理的情况下,对每个切片序号对应的升级包数据以及第一切片序列中与每个切片序号对应的切片进行异或处理,以得到每个切片序列号对应的安装包数据;
在每个切片序号对应的数据处理类型为差分处理的情况下,对每个切片序号对应的升级包数据以及第一切片序列中与每个切片序号对应的切片进行反差分处理,以得到每个切片序列号对应的安装包数据;
第二生成单元,用于根据多个切片序号对应的安装包数据,生成第二安装包。
可选地,多个切片序号为第一切片序列与第二切片序列中排序相同的切片组成的多个切片对的切片序号,第二切片序列是对版本高于第一安装包的第二安装包进行切片得到,多个切片序号中的每个切片序号对应的升级包数据是根据对应切片对的数据 相似度对对应切片对进行数据处理得到,数据处理至少包括跳过处理、异或处理或差分处理,对应数据处理类型为跳过处理的升级包数据为空。
可选地,第二生成单元,用于对多个切片序号对应的安装包数据进行拼接,得到第二安装包。
可选地,升级包的头信息包括多个切片序号中每个切片序号对应的数据处理类型和对应的升级包数据在升级包的数据信息中的存储位置信息,升级包的数据信息存储有多个切片序号中每个切片序号对应的升级包数据;
生成模块1102还包括获取单元,用于:
从升级包的头信息中获取多个切片序号中每个切片序号对应的数据处理类型和对应的升级包数据在升级包的数据信息中的存储位置信息;
根据每个切片序号对应的升级包数据在升级包的数据信息中的存储位置信息,从升级包的数据信息中获取每个切片序号对应的升级包数据。
可选地,升级包的头信息还包括切片尺寸;装置还包括切片模块;
切片模块,用于根据切片尺寸,对第一安装包进行切片,得到第一切片序列。
可选地,获取模块1101用于:
获取升级包的压缩包,压缩包是对升级包进行压缩得到;
对压缩包进行解压,得到升级包。
本申请实施例中,在对升级包进行安装时,可以根据升级包中各个切片序号对应的数据处理类型和升级包数据,以及旧版本的安装包中相同切片序号的切片数据,还原出新版本的安装包,再对新版本的安装包进行安装。由于升级包的数据量较小,因此对升级包进行还原安装所需要的存储资源也较小,如此降低了对终端设备的存储资源的要求,适应于内存较小的终端设备进行版本更新。而且,可以根据各个切片序号对应的数据处理类型的不同,对各个切片序号对应的切片进行不同形式的还原处理。比如,在数据处理类型为跳过处理时进行复制处理,在数据处理类型为异或处理时进行异或处理,在数据处理类型为差分处理时进行反差分处理。如此,可以根据数据量较小的升级包,准确还原出新版本的安装包,提出了一种适配于按照上述第一方面的升级包的生成方法生成的升级包的还原安装方法。
需要说明的是:上述实施例提供的升级包的生成装置在生成升级包时,以及上述实施例提供的升级包的安装装置在安装升级包时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。
上述实施例提供的升级包的生成装置与升级包的生成方法实施例属于同一构思,上述实施例提供的升级包的安装装置与升级包的安装方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此 处不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(比如:固态硬盘(Solid State Disk,SSD))等。
以上所述为本申请提供的可选实施例,并不用以限制本申请,凡在本申请的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (19)

  1. 一种升级包的生成方法,其特征在于,应用于第一设备,所述方法包括:
    获取第一安装包和第二安装包,所述第二安装包的版本高于所述第一安装包的版本;
    对所述第一安装包进行切片,得到第一切片序列;
    对所述第二安装包进行切片,得到第二切片序列,其中,所述第二切片序列中与所述第一切片序列中排序相同的切片组成一个切片对,所述第二切片序列中的多个切片与所述第一切片序列中的多个切片组成多个切片对;
    根据所述多个切片对中的每个切片对的数据相似度对每个切片对进行数据处理,得到每个切片对对应的升级包数据,所述数据处理至少包括跳过处理、异或处理或差分处理,其中,通过跳过处理得到的切片对对应的升级包数据为空;
    根据所述多个切片对中的每个切片对的切片序号、以及每个切片对对应的数据处理类型和升级包数据,生成升级包,所述升级包包括多个切片序号对应的升级包数据以及每个切片序号对应的数据处理类型信息。
  2. 如权利要求1所述的方法,其特征在于,所述多个切片对中包括第一切片对,所述第一切片对由所述第一切片序列中的第一切片和所述第二切片序列中的第二切片组成;
    所述根据所述多个切片对中的每个切片对的数据相似度对每个切片对进行数据处理,得到每个切片对对应的升级包数据,包括:
    若所述第一切片与所述第二切片的数据相同,则对所述第一切片对进行跳过处理,所述第一切片对对应的升级包数据为空;
    若所述第一切片与所述第二切片的数据不同且数据相似度大于或等于第一阈值,则对所述第一切片对进行异或处理,得到第一数据,根据所述第一数据确定所述第一切片对对应的升级包数据;
    若所述第一切片与所述第二切片的数据相似度小于所述第一阈值,则对所述第一切片对进行差分处理,得到第二数据,根据所述第二数据确定所述第一切片对对应的升级包数据。
  3. 如权利要求2所述的方法,其特征在于,所述对所述第一切片对进行异或处理,得到第一数据,包括:
    对所述第一切片和所述第二切片中对应字节位置的数据进行异或处理,得到所述第一数据。
  4. 如权利要求3所述的方法,其特征在于,所述对所述第一切片和所述第二切片中对应字节位置的数据进行异或处理,得到所述第一数据,包括:
    若所述第一切片的数据和所述第二切片的数据均为二进制数据,则对所述第一切片和所述第二切片中对应字节位置的二进制数值进行异或处理,得到所述第一数据;其中,若所述第一切片和所述第二切片对应字节位置的数值相同,则所述第一数据的对应字节位置的数值为0,若所述第一切片和所述第二切片对应字节位置的数值不同,则所述第一数据的对应字节位置的数值为1;
    若所述第一切片和所述第二切片中的至少一个切片的数据不是二进制数据,则将所述第一切片和所述第二切片中不是二进制数据的切片的数据转换为二进制数据,对转换为二进制数据后的第一切片和第二切片中对应字节位置的二进制数值进行异或处理,得到所述第一数据;其中,若转换为二进制数据后的第一切片和第二切片对应字节位置的数值相同,则所述第一数据的对应字节位置的数值为0,若转换为二进制数据后的第一切片和第二切片对应字节位置的数值不同,则所述第一数据的对应字节位置的数值为1。
  5. 如权利要求2-4任一所述的方法,其特征在于,所述根据所述第一数据确定所述第一切片对对应的升级包数据,包括:
    将所述第一数据确定为所述第一切片对对应的升级包数据;
    或者,
    对所述第一数据进行压缩处理,得到第三数据,将所述第三数据确定为所述第一切片对应的升级包数据。
  6. 如权利要求5所述的方法,其特征在于,所述第一数据为二进制数据,所述对所述第一数据进行压缩处理,得到第三数据,包括:
    对所述第一数据中的0进行压缩处理,得到所述第三数据。
  7. 如权利要求2-6任一所述的方法,其特征在于,所述根据所述第二数据确定所述第一切片对对应的升级包数据,包括:
    将所述第二数据确定为所述第一切片对对应的升级包数据;
    或者,
    对所述第二数据进行压缩处理,得到第四数据;将所述第四数据确定为所述第一切片对对应的升级包数据。
  8. 如权利要求1-7任一所述的方法,其特征在于,所述根据所述多个切片对中的每个切片对的切片序号、以及每个切片对对应的数据处理类型和升级包数据,生成升级包,包括:
    将多个切片序号中每个切片序号指示的切片对对应的升级包数据写入初始数据包的数据信息中,将每个切片序号指示的切片对对应的数据处理类型、以及对应的升级包数据在所述初始数据包的数据信息中的存储位置信息写入所述初始数据包的头信息中,数据写入后的初始数据包为所述升级包,所述多个切片序号为所述多个切片对的切片序号。
  9. 如权利要求8所述的方法,其特征在于,所述方法还包括:
    将所述第一切片序列和所述第二切片序列中排序相同的切片对的数量、以及所述第一切片序列和所述第二切片序列中切片的切片尺寸写入所述初始数据包的头部信息中。
  10. 如权利要求9所述的方法,其特征在于,
    所述第一切片序列中的切片数量和所述第二切片序列中的切片数量均为预设数量,写入所述头信息的所述排序相同的切片对的数量为所述预设数量;
    所述第一切片序列和所述第二切片序列中各个切片的切片尺寸均为预设尺寸,写入所述头信息的所述第一切片序列和所述第二切片序列中切片的切片尺寸为所述预设 尺寸。
  11. 如权利要求8-10任一所述的方法,其特征在于,每个切片序号指示的切片对对应的升级包数据在所述初始数据包的数据信息中的存储位置信息为每个切片序号指示的切片对对应的升级包数据在所述初始数据包的数据信息中的增量偏移。
  12. 一种升级包的安装方法,其特征在于,应用于第二设备,所述方法包括:
    获取升级包,所述升级包包括多个切片序号对应的升级包数据以及每个切片序号对应的数据处理类型信息;
    根据所述多个切片序号中的每个切片序号对应的数据处理类型,对所述每个切片序号对应的切片进行还原处理,以得到所述每个切片序号对应的安装包数据;
    其中,在所述每个切片序号对应的数据处理类型为跳过处理的情况下,对第一切片序列中与所述每个切片序号对应的切片进行复制处理,以得到所述每个切片序列号对应的安装包数据,其中,所述第一切片序列是对存储在所述第二设备上的第一安装包进行切片处理得到;
    在所述每个切片序号对应的数据处理类型为异或处理的情况下,对所述每个切片序号对应的升级包数据以及所述第一切片序列中与所述每个切片序号对应的切片进行异或处理,以得到所述每个切片序列号对应的安装包数据;
    在所述每个切片序号对应的数据处理类型为差分处理的情况下,对所述每个切片序号对应的升级包数据以及所述第一切片序列中与所述每个切片序号对应的切片进行反差分处理,以得到所述每个切片序列号对应的安装包数据;
    根据所述多个切片序号对应的安装包数据,生成第二安装包;
    对所述第二安装包进行安装。
  13. 根据权利要求12所述的方法,其特征在于,所述多个切片序号为所述第一切片序列与第二切片序列中排序相同的切片组成的多个切片对的切片序号,所述第二切片序列是对版本高于所述第一安装包的第二安装包进行切片得到,所述多个切片序号中的每个切片序号对应的升级包数据是根据对应切片对的数据相似度对对应切片对进行数据处理得到,所述数据处理至少包括跳过处理、异或处理或差分处理,对应数据处理类型为跳过处理的升级包数据为空。
  14. 如权利要求12或13所述的方法,其特征在于,所述升级包的头信息包括所述多个切片序号中每个切片序号对应的数据处理类型和对应的升级包数据在所述升级包的数据信息中的存储位置信息,所述升级包的数据信息存储有所述多个切片序号中每个切片序号对应的升级包数据;
    所述根据所述多个切片序号中的每个切片序号对应的数据处理类型,对所述每个切片序号对应的切片进行还原处理,以得到所述每个切片序号对应的安装包数据之前,还包括:
    从所述升级包的头信息中获取所述多个切片序号中每个切片序号对应的数据处理类型和对应的升级包数据在所述升级包的数据信息中的存储位置信息;
    根据每个切片序号对应的升级包数据在所述升级包的数据信息中的存储位置信息,从所述升级包的数据信息中获取每个切片序号对应的升级包数据。
  15. 如权利要求14所述的方法,其特征在于,所述升级包的头信息还包括切片尺 寸;
    所述根据所述多个切片序号中的每个切片序号对应的数据处理类型,对所述每个切片序号对应的切片进行还原处理,以得到所述每个切片序号对应的安装包数据之前,还包括:
    根据所述切片尺寸,对存储在所述第二设备上的所述第一安装包进行切片,得到所述第一切片序列。
  16. 如权利要求12-15任一所述的方法,其特征在于,所述根据所述多个切片序号对应的安装包数据,生成所述第二安装包,包括:
    对所述多个切片序号对应的安装包数据进行拼接,得到所述第二安装包。
  17. 如权利要求12-16任一所述的方法,其特征在于,所述获取升级包,包括:
    获取所述升级包的压缩包,所述压缩包是对所述升级包进行压缩得到;
    对所述压缩包进行解压,得到所述升级包。
  18. 一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-11或权利要求12-17任意一项所述的方法。
  19. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-11或权利要求12-17中任意一项所述的方法。
PCT/CN2023/088741 2022-08-17 2023-04-17 升级包的生成方法、安装方法、设备及存储介质 WO2024037006A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210988967.XA CN117632210A (zh) 2022-08-17 2022-08-17 升级包的生成方法、安装方法、设备及存储介质
CN202210988967.X 2022-08-17

Publications (1)

Publication Number Publication Date
WO2024037006A1 true WO2024037006A1 (zh) 2024-02-22

Family

ID=89940538

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/088741 WO2024037006A1 (zh) 2022-08-17 2023-04-17 升级包的生成方法、安装方法、设备及存储介质

Country Status (2)

Country Link
CN (1) CN117632210A (zh)
WO (1) WO2024037006A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108279922A (zh) * 2018-01-03 2018-07-13 深圳市泰比特科技有限公司 差分文件生成方法、基于该差分文件的升级方法及系统
CN110874239A (zh) * 2020-01-20 2020-03-10 翱捷科技(上海)有限公司 一种电子设备的空中固件差分升级方法及装置
CN111522574A (zh) * 2020-03-04 2020-08-11 平安科技(深圳)有限公司 差分包生成方法及相关设备
CN112559020A (zh) * 2020-12-08 2021-03-26 百度在线网络技术(北京)有限公司 文件升级方法、装置、设备和介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108279922A (zh) * 2018-01-03 2018-07-13 深圳市泰比特科技有限公司 差分文件生成方法、基于该差分文件的升级方法及系统
CN110874239A (zh) * 2020-01-20 2020-03-10 翱捷科技(上海)有限公司 一种电子设备的空中固件差分升级方法及装置
CN111522574A (zh) * 2020-03-04 2020-08-11 平安科技(深圳)有限公司 差分包生成方法及相关设备
CN112559020A (zh) * 2020-12-08 2021-03-26 百度在线网络技术(北京)有限公司 文件升级方法、装置、设备和介质

Also Published As

Publication number Publication date
CN117632210A (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
WO2021121052A1 (zh) 一种多屏协同方法、系统及电子设备
CN108540193B (zh) 支持使用多频带的设备到设备通信的前端模块及电子设备
CN110865837B (zh) 一种进行系统升级的方法和终端
US9898747B2 (en) Information processing system performing synchronization between memory devices and memory devices performing wireless communication
KR101856486B1 (ko) 컴퓨팅 디바이스에서 수행되는 오픈 시스템과 메인프레임 시스템 사이의 양방향 호출 방법
CN113485858A (zh) 一种电子设备的系统故障处理方法及电子设备
CN115017096B (zh) 数据迁移方法、可读介质和电子设备
CN114116246A (zh) 一种功能调用方法和装置
CN114416723B (zh) 一种数据的处理方法、装置、设备及存储介质
CN114443322A (zh) 核间通信方法、装置、电子设备及存储介质
CN111435318A (zh) 应用程序的dex优化方法及终端
WO2024037006A1 (zh) 升级包的生成方法、安装方法、设备及存储介质
US20230244406A1 (en) Electronic device and storage management method using same
WO2022042363A1 (zh) 一种共享库的复用方法及电子设备
WO2021190313A1 (zh) Db文件的备份方法、装置和电子设备
WO2022247495A1 (zh) 音频焦点的控制方法及相关装置
CN114490127A (zh) 核间通信方法、装置、电子设备及存储介质
CN113641643A (zh) 文件写入方法及装置
EP2726995B1 (en) Methods, apparatuses and computer program products for improving network transmission by reducing memory copy overhead by providing direct access to data
WO2023142696A1 (zh) 缩略图存储方法及电子设备
CN116028433B (zh) 数据迁移方法和电子设备
WO2023231818A1 (zh) 一种应用界面显示方法及电子设备
EP4318215A1 (en) Application icon update method and related apparatus
US20230067968A1 (en) Electronic device and method of electronic device operating file system
WO2024046082A1 (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: 23853916

Country of ref document: EP

Kind code of ref document: A1