Patch method and related devices

By generating differential data on the server and performing differential restoration using a super terminal device, the problem of excessive network bandwidth burden during multi-version APP upgrades was solved, improving patch repair efficiency and user experience.

CN116149716BActive Publication Date: 2026-03-17HUAWEI DEVICE CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-19
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

During the upgrade process of multiple versions of the APP, the server needs to send out multiple patch packages with large data volumes, which leads to excessive network bandwidth burden and low upgrade efficiency.

Method used

By generating differential data on the server and performing differential restoration using a super terminal device, patch packages adapted to different terminal device versions are generated, reducing the amount of data transmitted from the server to each terminal device.

Benefits of technology

This reduces the amount of data transmitted between the server and terminal devices, improves the efficiency of patch repair, and enhances the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116149716B_ABST
    Figure CN116149716B_ABST
Patent Text Reader

Abstract

The application discloses a patch method and related equipment. The method comprises the following steps: calculating, in a server, coincidence degrees of each software module in a first patch for upgrading a first application program of a first electronic device and each software module of a first application program of a third electronic device, selecting each part with the maximum coincidence degree to combine into an integral whole, and generating difference data by differentiating the integral whole from the first patch. The second electronic device can obtain the difference data and restore the first patch package. The first electronic device can receive the first patch package from the second device and upgrade the first application program thereon. The technical scheme of the application can avoid the server from issuing large data patches multiple times, reduce the consumption of network bandwidth, greatly improve the efficiency of patch repair, and bring better use experience to users.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to patching methods and related equipment. Background Technology

[0002] With the development of electronic technology, more and more electronic devices can support the installation of applications (APPs), resulting in the need for the same APP to provide multiple versions adapted to different electronic devices. For example, in a 1+8+N scenario, an APP not only needs a version installed and running on mobile phones, but also multiple versions installed and running on electronic devices such as in-vehicle systems, speakers, headphones, watches / wristbands, tablets, large screens, personal computers (PCs), augmented reality (AR), and virtual reality (VR). When the server uses patches to upgrade different versions of the APP on various devices, the multiple version issue will result in large patch packages and a heavy burden on the server for transmitting patch packages. Summary of the Invention

[0003] The purpose of this application is to provide a patching method and related equipment, which can avoid the problem of multiple large-data-volume patches issued by the server when different terminal devices need to upgrade the same APP. It can reduce the amount of data transmission between the server and various terminal devices, reduce network bandwidth consumption, and quickly restore and generate patches adapted to different terminal devices and different versions of the APP in the super terminal, which greatly improves the efficiency of patch repair and brings users a better user experience.

[0004] The aforementioned and other objectives will be achieved through the features described in the independent claims. Further implementations are illustrated in the dependent claims, the specification, and the drawings.

[0005] In a first aspect, this application provides a patching method applied to a server in a first patching system. The first patching system includes a server and multiple electronic devices, each of which has a first application installed. The method may include: the server generating first differential data based on the first application on a third electronic device and a first patch package; the first patch package being used to upgrade the first application on the first electronic device; the third electronic device being one of the multiple electronic devices on which the first application and the first patch package are installed; wherein the multiple electronic devices include the first electronic device and the third electronic device.

[0006] The server sends the first differential data to the second electronic device; the plurality of electronic devices also includes the second electronic device; the second electronic device can be used to restore the first patch package based on the first differential data and the first software module in the first application on the third electronic device; the first software module overlaps with the first patch package; the second electronic device is used to send the first patch package to the first electronic device.

[0007] In this application, the first electronic device may be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. The first electronic device may be a terminal device with an application installed, i.e., the target device of the patch package.

[0008] In this application, the second electronic device can be a terminal device with strong computing power and sufficient storage capacity, such as a mobile phone, tablet computer, laptop computer, or desktop computer. This second electronic device, acting as a "super terminal," has the function of receiving differential data and restoring patch packages.

[0009] In this application, the third electronic device can be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. This third electronic device, as the most relevant device to the patch package, has an application on it capable of differentially generating differential data with the patch package.

[0010] Implementing the first approach can avoid the problem of the server repeatedly issuing large-scale patches for different devices when the same application is upgraded on different terminal devices, thus saving bandwidth and improving the efficiency of patch issuance.

[0011] In conjunction with the first aspect, in some embodiments, overlap may refer to the fact that the code of the first application and the code of the first patch package have the same methods and variables.

[0012] In conjunction with the first aspect, in some embodiments, the third electronic device may be the electronic device among a plurality of electronic devices whose installed first application and first patch package have the highest degree of overlap or whose degree of overlap is higher than a first threshold.

[0013] In conjunction with the first aspect, in some embodiments, the overlap between the first application installed on the third electronic device and the first patch package can be: (number of identical methods + number of identical variables) / (total number of methods + total number of variables).

[0014] Among them, the same method can be a method that exists in both the first application and the first patch package installed on the third electronic device; the same variable can be a variable that exists in both the first application and the first patch package installed on the third electronic device; the total number of methods can be the difference between the sum of all methods in the first application and the first patch package installed on the third electronic device and the number of the same methods; and the total number of variables can be the difference between the sum of all variables in the first application and the first patch package installed on the third electronic device and the number of the same variables.

[0015] In conjunction with the first aspect, in some embodiments, if the platform-level overlap between the first application installed on the third electronic device and the first patch package is the same as the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices, then the application-level overlap between the first application installed on the third electronic device and the first patch package is higher than the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0016] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0017] In conjunction with the first aspect, in some embodiments, if the application-level overlap between the first application installed on the third electronic device and the first patch package is the same as the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices and the first patch package, then the platform-level overlap between the first application installed on the third electronic device and the first patch package is higher than the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0018] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0019] In conjunction with the first aspect, in some embodiments, one or more software modules in the first application installed on the third electronic device overlap with software modules in the first patch package.

[0020] In conjunction with the first aspect, in some embodiments, overlap may refer to the first application and the first patch package installed on the third electronic device having the same binary code.

[0021] Secondly, this application provides a patching method applied to a first electronic device in a first patching system. The first patching system includes a server and multiple electronic devices, each of which has a first application installed. The multiple electronic devices include the first electronic device. The method may include:

[0022] The first electronic device receives a first patch package sent by the second device. The plurality of electronic devices also includes a second electronic device. The first patch package is reconstructed by the second electronic device using first differential data and a first software module in a first application on a third electronic device. The plurality of electronic devices also includes a third electronic device, which is the electronic device among the plurality of electronic devices whose installed first application overlaps with the first patch package. The first differential data is generated by the server through differential processing of the first application and the first patch package on the third electronic device and then sent to the second electronic device.

[0023] The first electronic device uses a first patch package to upgrade the first application installed on it.

[0024] In this application, the first electronic device may be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. The first electronic device may be a terminal device with an application installed, i.e., the target device of the patch package.

[0025] In this application, the second electronic device can be a terminal device with strong computing power and sufficient storage capacity, such as a mobile phone, tablet computer, laptop computer, or desktop computer. This second electronic device, acting as a "super terminal," has the function of receiving differential data and restoring patch packages.

[0026] In this application, the third electronic device can be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. This third electronic device, as the most relevant device to the patch package, has an application on it capable of differentially generating differential data with the patch package.

[0027] Implementing the second approach can avoid the problem of the server repeatedly issuing large-scale patches for different devices when the same application is upgraded on different terminal devices, thus saving bandwidth and improving the efficiency of patch issuance.

[0028] In conjunction with the second aspect, in some embodiments, overlap may refer to the fact that the code of the first application and the code of the first patch package have the same methods and variables.

[0029] In conjunction with the second aspect, in some embodiments, the third electronic device may be the electronic device among a plurality of electronic devices whose installed first application and first patch package have the highest degree of overlap or whose degree of overlap is higher than a first threshold.

[0030] In conjunction with the second aspect, in some embodiments, the overlap between the first application installed on the third electronic device and the first patch package can be: (number of identical methods + number of identical variables) / (total number of methods + total number of variables).

[0031] Among them, the same method can be a method that exists in both the first application and the first patch package installed on the third electronic device; the same variable can be a variable that exists in both the first application and the first patch package installed on the third electronic device; the total number of methods can be the difference between the sum of all methods in the first application and the first patch package installed on the third electronic device and the number of the same methods; and the total number of variables can be the difference between the sum of all variables in the first application and the first patch package installed on the third electronic device and the number of the same variables.

[0032] In conjunction with the second aspect, in some embodiments, if the platform-level overlap between the first application installed on the third electronic device and the first patch package is the same as the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices, then the application-level overlap between the first application installed on the third electronic device and the first patch package is higher than the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0033] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0034] In conjunction with the second aspect, in some embodiments, if the application-level overlap between the first application installed on the third electronic device and the first patch package is the same as the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices and the first patch package, then the platform-level overlap between the first application installed on the third electronic device and the first patch package is higher than the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0035] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0036] In conjunction with the second aspect, in some embodiments, one or more software modules in the first application installed on the third electronic device overlap with software modules in the first patch package.

[0037] In conjunction with the second aspect, in some embodiments, overlap may refer to the first application and the first patch package installed on the third electronic device having the same binary code.

[0038] Thirdly, this application provides a patching method applied to a second electronic device in a first patching system. The first patching system includes a server and multiple electronic devices, each of which has a first application installed. The multiple electronic devices include the second electronic device. The method may include: the second electronic device receiving first differential data sent by the server, the first differential data being generated by the server by differentially analyzing the first application on a third electronic device and a first patch package, the first patch package being used to upgrade the first application on the first electronic device; the third electronic device being one of the multiple electronic devices whose installed first application overlaps with the first patch package; the multiple electronic devices also include the first electronic device and the third electronic device; then, the second electronic device reconstructs the first patch package based on the first differential data and a first software module in the first application on the third electronic device, the first software module overlapping with the first patch package; and finally, the second electronic device sending the first patch package to the first electronic device.

[0039] The first electronic device uses a first patch package to upgrade the first application installed on it.

[0040] In this application, the first electronic device may be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. The first electronic device may be a terminal device with an application installed, i.e., the target device of the patch package.

[0041] In this application, the second electronic device can be a terminal device with strong computing power and sufficient storage capacity, such as a mobile phone, tablet computer, laptop computer, or desktop computer. This second electronic device, acting as a "super terminal," has the function of receiving differential data and restoring patch packages.

[0042] In this application, the third electronic device can be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. This third electronic device, as the most relevant device to the patch package, has an application on it capable of differentially generating differential data with the patch package.

[0043] Implementing the third approach can avoid the problem of the server repeatedly issuing large-scale patches for different devices when the same application is upgraded on different terminal devices, thus saving bandwidth and improving the efficiency of patch issuance.

[0044] In conjunction with the third aspect, in some embodiments, overlap may refer to the fact that the code of the first application and the code of the first patch package have the same methods and variables.

[0045] In conjunction with the third aspect, in some embodiments, the third electronic device may be the electronic device among a plurality of electronic devices whose installed first application and first patch package have the highest degree of overlap or whose degree of overlap is higher than a first threshold.

[0046] In conjunction with the third aspect, in some embodiments, the overlap between the first application installed on the third electronic device and the first patch package can be: (number of identical methods + number of identical variables) / (total number of methods + total number of variables).

[0047] Among them, the same method can be a method that exists in both the first application and the first patch package installed on the third electronic device; the same variable can be a variable that exists in both the first application and the first patch package installed on the third electronic device; the total number of methods can be the difference between the sum of all methods in the first application and the first patch package installed on the third electronic device and the number of the same methods; and the total number of variables can be the difference between the sum of all variables in the first application and the first patch package installed on the third electronic device and the number of the same variables.

[0048] In conjunction with the third aspect, in some embodiments, if the platform-level overlap between the first application installed on the third electronic device and the first patch package is the same as the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices, then the application-level overlap between the first application installed on the third electronic device and the first patch package is higher than the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0049] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0050] In conjunction with the third aspect, in some embodiments, if the application-level overlap between the first application installed on the third electronic device and the first patch package is the same as the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices, then the platform-level overlap between the first application installed on the third electronic device and the first patch package is higher than the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0051] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0052] In conjunction with the third aspect, in some embodiments, one or more software modules in the first application installed on the third electronic device overlap with software modules in the first patch package.

[0053] In conjunction with the third aspect, in some embodiments, overlap may refer to the first application and the first patch package installed on the third electronic device having the same binary code.

[0054] Fourthly, this application provides a patching method applied to a third electronic device in a first patching system. The first patching system includes a server and multiple electronic devices, each equipped with a first application. The multiple electronic devices include the third electronic device, a second electronic device, and the first electronic device. The method may include:

[0055] The third electronic device sends a first data packet to the second electronic device. The first data packet includes a first software module in a first application installed on the third electronic device. The first software module overlaps with the first patch package.

[0056] The first patch package is reconstructed by the second electronic device using the first differential data and the first software module in the first application on the third electronic device. The third electronic device is one of multiple electronic devices whose installed first application overlaps with the first patch package. The first differential data is generated by the server by differentially analyzing the first application on the third electronic device and the first patch package, and then sent to the second electronic device. The second electronic device is used to reconstruct the first patch package based on the first differential data and the first software module in the first application on the third electronic device. The second electronic device is also used to send the first patch package to the first electronic device.

[0057] In this application, the first electronic device may be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. The first electronic device may be a terminal device with an application installed, i.e., the target device of the patch package.

[0058] In this application, the second electronic device can be a terminal device with strong computing power and sufficient storage capacity, such as a mobile phone, tablet computer, laptop computer, or desktop computer. This second electronic device, acting as a "super terminal," has the function of receiving differential data and restoring patch packages.

[0059] In this application, the third electronic device can be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. This third electronic device, as the most relevant device to the patch package, has an application on it capable of differentially generating differential data with the patch package.

[0060] Implementing the fourth approach can avoid the problem of the server repeatedly issuing large-scale patches for different devices when the same application is upgraded on different terminal devices, thus saving bandwidth and improving the efficiency of patch issuance.

[0061] In conjunction with the fourth aspect, in some embodiments, overlap may refer to the fact that the code of the first application and the code of the first patch package have the same methods and variables.

[0062] In conjunction with the fourth aspect, in some embodiments, the third electronic device may be the electronic device among a plurality of electronic devices whose installed first application and first patch package have the highest degree of overlap or whose degree of overlap is higher than a first threshold.

[0063] In conjunction with the fourth aspect, in some embodiments, the overlap between the first application installed on the third electronic device and the first patch package can be: (number of identical methods + number of identical variables) / (total number of methods + total number of variables).

[0064] Among them, the same method can be a method that exists in both the first application and the first patch package installed on the third electronic device; the same variable can be a variable that exists in both the first application and the first patch package installed on the third electronic device; the total number of methods can be the difference between the sum of all methods in the first application and the first patch package installed on the third electronic device and the number of the same methods; and the total number of variables can be the difference between the sum of all variables in the first application and the first patch package installed on the third electronic device and the number of the same variables.

[0065] In conjunction with the fourth aspect, in some embodiments, if the platform-level overlap between the first application installed on the third electronic device and the first patch package is the same as the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices, then the application-level overlap between the first application installed on the third electronic device and the first patch package is higher than the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0066] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0067] In conjunction with the fourth aspect, in some embodiments, if the application-level overlap between the first application installed on the third electronic device and the first patch package is the same as the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices and the first patch package, then the platform-level overlap between the first application installed on the third electronic device and the first patch package is higher than the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0068] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0069] In conjunction with the fourth aspect, in some embodiments, one or more software modules in the first application installed on the third electronic device overlap with software modules in the first patch package.

[0070] In conjunction with the fourth aspect, in some embodiments, overlap may refer to the first application and the first patch package installed on the third electronic device having the same binary code.

[0071] Fifthly, this application provides a patching method applied to a first patching system, the first patching system comprising: a server and multiple electronic devices, on which a first application is installed. The method may include: the server performing differential analysis based on the first application on a third electronic device and a first patch package to generate first differential data, the first patch package being used to upgrade the first application on the first electronic device, the third electronic device being one of the multiple electronic devices on which the first application and the first patch package overlap; then, the server sending the first differential data to a second electronic device, the second electronic device reconstructing the first patch package based on the first differential data and a first software module in the first application on the third electronic device, wherein the first software module overlaps with the first patch package; next, the second electronic device sending the first patch package to the first electronic device, the first electronic device using the first patch package to upgrade the first application installed on it.

[0072] In this application, the first electronic device may be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. The first electronic device may be a terminal device with an application installed, i.e., the target device of the patch package.

[0073] In this application, the second electronic device can be a terminal device with strong computing power and sufficient storage capacity, such as a mobile phone, tablet computer, laptop computer, or desktop computer. This second electronic device, acting as a "super terminal," has the function of receiving differential data and restoring patch packages.

[0074] In this application, the third electronic device can be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. This third electronic device, as the most relevant device to the patch package, has an application on it capable of differentially generating differential data with the patch package.

[0075] Implementing the fifth approach can avoid the problem of the server repeatedly issuing large-scale patches for different devices when the same application is upgraded on different terminal devices, thus saving bandwidth and improving the efficiency of patch issuance.

[0076] In conjunction with the fifth aspect, in some embodiments, overlap may refer to the fact that the code of the first application and the code of the first patch package have the same methods and variables.

[0077] In conjunction with the fifth aspect, in some embodiments, the third electronic device may be the electronic device among a plurality of electronic devices whose installed first application and first patch package have the highest degree of overlap or whose degree of overlap is higher than a first threshold.

[0078] In conjunction with the fifth aspect, in some embodiments, the overlap between the first application installed on the third electronic device and the first patch package can be: (number of identical methods + number of identical variables) / (total number of methods + total number of variables).

[0079] Among them, the same method can be a method that exists in both the first application and the first patch package installed on the third electronic device; the same variable can be a variable that exists in both the first application and the first patch package installed on the third electronic device; the total number of methods can be the difference between the sum of all methods in the first application and the first patch package installed on the third electronic device and the number of the same methods; and the total number of variables can be the difference between the sum of all variables in the first application and the first patch package installed on the third electronic device and the number of the same variables.

[0080] In conjunction with the fifth aspect, in some embodiments, if the platform-level overlap between the first application installed on the third electronic device and the first patch package is the same as the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices, then the application-level overlap between the first application installed on the third electronic device and the first patch package is higher than the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0081] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0082] In conjunction with the fifth aspect, in some embodiments, if the application-level overlap between the first application installed on the third electronic device and the first patch package is the same as the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices and the first patch package, then the platform-level overlap between the first application installed on the third electronic device and the first patch package is higher than the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0083] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0084] In conjunction with the fifth aspect, in some embodiments, one or more software modules in the first application installed on the third electronic device overlap with software modules in the first patch package.

[0085] In conjunction with the fifth aspect, in some embodiments, overlap may refer to the first application and the first patch package installed on the third electronic device having the same binary code.

[0086] Sixthly, this application provides a patching system comprising: a server and multiple electronic devices, each electronic device having a first application installed thereon. The server is configured to generate first differential data based on the first application on a third electronic device and a first patch package. The first patch package is used to upgrade the first application on the first electronic device. The third electronic device is one of the multiple electronic devices on which the first application and the first patch package are installed. The multiple electronic devices include the first electronic device and the third electronic device. The server is configured to send the first differential data to a second electronic device. The multiple electronic devices also include the second electronic device. The second electronic device is configured to reconstruct the first patch package based on the first differential data and a first software module in the first application on the third electronic device. The first software module overlaps with the first patch package. The second electronic device is configured to send the first patch package to the first electronic device, and the first electronic device is configured to upgrade the first application installed thereon using the first patch package.

[0087] In this application, the first electronic device may be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. The first electronic device may be a terminal device with an application installed, i.e., the target device of the patch package.

[0088] In this application, the second electronic device can be a terminal device with strong computing power and sufficient storage capacity, such as a mobile phone, tablet computer, laptop computer, or desktop computer. This second electronic device, acting as a "super terminal," has the function of receiving differential data and restoring patch packages.

[0089] In this application, the third electronic device can be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. This third electronic device, as the most relevant device to the patch package, has an application on it capable of differentially generating differential data with the patch package.

[0090] Implementing the sixth approach can avoid the problem of the server repeatedly issuing large-scale patches for different devices when the same application is upgraded on different terminal devices, thus saving bandwidth and improving the efficiency of patch issuance.

[0091] In conjunction with the sixth aspect, in some embodiments, overlap may refer to the fact that the code of the first application and the code of the first patch package have the same methods and variables.

[0092] In conjunction with the sixth aspect, in some embodiments, the third electronic device may be the electronic device among a plurality of electronic devices where the first application installed has the highest degree of overlap with the first patch package or the degree of overlap is higher than a first threshold.

[0093] In conjunction with the sixth aspect, in some embodiments, the overlap between the first application installed on the third electronic device and the first patch package can be: (number of identical methods + number of identical variables) / (total number of methods + total number of variables).

[0094] Among them, the same method can be a method that exists in both the first application and the first patch package installed on the third electronic device; the same variable can be a variable that exists in both the first application and the first patch package installed on the third electronic device; the total number of methods can be the difference between the sum of all methods in the first application and the first patch package installed on the third electronic device and the number of the same methods; and the total number of variables can be the difference between the sum of all variables in the first application and the first patch package installed on the third electronic device and the number of the same variables.

[0095] In conjunction with the sixth aspect, in some embodiments, if the platform-level overlap between the first application installed on the third electronic device and the first patch package is the same as the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices and the first patch package, then the application-level overlap between the first application installed on the third electronic device and the first patch package is higher than the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0096] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0097] In conjunction with the sixth aspect, in some embodiments, if the application-level overlap between the first application installed on the third electronic device and the first patch package is the same as the application-level overlap between the first application installed on another electronic device among the plurality of electronic devices and the first patch package, then the platform-level overlap between the first application installed on the third electronic device and the first patch package is higher than the platform-level overlap between the first application installed on another electronic device among the plurality of electronic devices.

[0098] Platform-level overlap = (number of methods at the same platform level + number of variables at the same platform level) / (total number of methods + total number of variables), and application-level overlap = (number of methods at the same application level + number of variables at the same application level) / (total number of methods + total number of variables).

[0099] In conjunction with the sixth aspect, in some embodiments, one or more software modules in the first application installed on the third electronic device overlap with software modules in the first patch package.

[0100] In conjunction with the sixth aspect, in some embodiments, overlap may refer to the first application and the first patch package installed on the third electronic device having the same binary code.

[0101] In a seventh aspect, this application provides another patching method, which may include: a server performing differential analysis based on a first application on a first electronic device and a first patch package to generate second differential data, wherein the first patch package is used to upgrade the first application on the first electronic device; then, the server sends the second differential data to a second electronic device, wherein the second electronic device restores the first patch package based on the second differential data and a first software module of the first application on the first electronic device, wherein the first software module overlaps with the first patch package; next, the second electronic device sends the first patch package to the first electronic device, wherein the first electronic device uses the first patch package to upgrade the first application installed on it.

[0102] In this application, the first electronic device can be a mobile phone, smart bracelet, smart earphone, smart speaker, smart TV, tablet computer, laptop computer, desktop computer, or other type of terminal device. The first electronic device can be a terminal device with an application installed, i.e., the target device of the patch package.

[0103] In this application, the second electronic device can be a terminal device with strong computing power and sufficient storage capacity, such as a mobile phone, tablet computer, laptop computer, or desktop computer. This second electronic device, acting as a "super terminal," has the function of receiving differential data and restoring patch packages.

[0104] Eighthly, this application provides a server that may include: a communication device, a memory, and a processor coupled to the memory, multiple application programs, and one or more programs. When the processor executes one or more of the programs, the electronic device can perform any of the functions possessed by the electronic device in the first aspect, which will not be elaborated here.

[0105] Ninthly, this application provides an electronic device, which is a first electronic device, and may include: a communication device, a memory and a processor coupled to the memory, multiple application programs, and one or more programs. When the processor executes one or more of the programs, the electronic device can perform any of the functions possessed by the electronic device in the second aspect, which will not be elaborated here.

[0106] In a tenth aspect, this application provides an electronic device, which is a second electronic device, and may include: a communication device, a memory and a processor coupled to the memory, multiple application programs, and one or more programs. When the processor executes one or more of the programs, the electronic device can perform any of the functions possessed by the electronic device in the third aspect, which will not be elaborated here.

[0107] In the eleventh aspect, this application provides an electronic device, which is a third electronic device, and may include: a communication device, a memory and a processor coupled to the memory, multiple application programs, and one or more programs. When the processor executes one or more of the programs, the electronic device can perform any of the functions possessed by the electronic device in the fourth aspect, which will not be elaborated here.

[0108] In a twelfth aspect, this application provides a computer-readable medium in which instructions can be stored. When the instructions are executed on an electronic device, the electronic device can perform any of the functions described in the first and / or second and / or third and / or fourth and / or fifth and / or sixth and / or seventh and / or eighth and / or ninth and / or tenth and / or eleventh aspects, which will not be elaborated here. Attached Figure Description

[0109] Figure 1 This is a schematic diagram of the architecture of a patching system provided in an embodiment of this application;

[0110] Figure 2 This is a schematic diagram illustrating a patching method provided in an embodiment of this application.

[0111] Figure 3A This is a schematic diagram of a method for determining the most relevant device provided in an embodiment of this application;

[0112] Figure 3B This is a schematic diagram of a method for generating differential data C provided in an embodiment of this application;

[0113] Figure 3C This is a schematic diagram of a method for restoring patch 3 provided in an embodiment of this application;

[0114] Figure 4This is a flowchart of a patching method provided in an embodiment of this application;

[0115] Figure 5 This is a schematic diagram illustrating another patching method provided in an embodiment of this application.

[0116] Figure 6A This is a schematic diagram of a method for determining minimum difference data provided in an embodiment of this application;

[0117] Figure 6B This is a schematic diagram of a method for determining minimum difference data provided in an embodiment of this application;

[0118] Figure 6C This is a schematic diagram illustrating three differential methods provided in an embodiment of this application;

[0119] Figure 6D This is a schematic diagram of another method for restoring patch 3 provided in an embodiment of this application;

[0120] Figure 7 This is a flowchart of another patching method provided in an embodiment of this application;

[0121] Figure 8 This is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application;

[0122] Figure 9 This is a schematic diagram of the structure of a server provided in an embodiment of this application;

[0123] Figure 10 This is a schematic diagram of a user interface provided in an embodiment of this application;

[0124] Figure 11A This is a schematic diagram of a user interface provided in an embodiment of this application;

[0125] Figure 11B This is a schematic diagram of a user interface provided in an embodiment of this application;

[0126] Figure 11C This is a schematic diagram of a user interface provided in an embodiment of this application;

[0127] Figure 11D This is a schematic diagram of a user interface provided in an embodiment of this application. Detailed Implementation

[0128] The technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings.

[0129] First, combined Figure 1This paper introduces a patching system 10 and how to use patches in the patching system 10 to upgrade the application "APP-1".

[0130] like Figure 1 As shown in the example, the patching system 10 may include a server 100, a router 101, and multiple terminal devices such as a mobile phone 102, a smart bracelet 103, a smart headset 104, a smart speaker 105, a smart TV 106, and a computer 107. The router 101 can establish a wireless network and transmit wireless network signals. Terminal devices such as the mobile phone 102, smart bracelet 103, smart headset 104, smart speaker 105, smart TV 106, and computer 107 can communicate with the server 100 by accessing the wireless network of the router 101.

[0131] like Figure 1 As shown, different versions of the application "APP-1" can be installed on multiple terminal devices in the patch system 10. Specifically, the version of "APP-1" on mobile phone 102 is "2.0.0", and its corresponding patch 1 is 20M in size; the version of "APP-1" on smart bracelet 103 is "3.0.0", and its corresponding patch 2 is 2M in size; the version of "APP-1" on smart headphones 104 is "4.0.0", and its corresponding patch 3 is 800K in size; the version of "APP-1" on smart speaker 105 is "5.0.0", and its corresponding patch 4 is 1M in size; the version of "APP-1" on smart TV 106 is "6.0.0", and its corresponding patch 5 is 50M in size; and the version of "APP-1" on computer 107 is "7.0.0", and its corresponding patch 6 is 40M in size.

[0132] In patching system 10, when server 100 detects that "APP-1" on smart headset 104 needs to be upgraded, firstly, server 100 can send patch 3, adapted to "APP-14.0.0 for smart headset", to smart headset 104 via router 101. Patch 3 is 800K in size. Next, smart headset 104 can directly download patch 3 to upgrade application "APP-1" from "APP-14.0.0 for smart headset" to "APP-14.1.0 for smart headset". The process of upgrading "APP-1" on other terminal devices using patches is similar to the process of "APP-1" on smart headset 104 directly downloading patch 3 for upgrade.

[0133] from Figure 1As can be seen, since the versions of "APP-1" on different terminal devices are different, the patches issued by server 100 to adapt to "APP-1" on each terminal device will also be different. This will result in a large amount of data transmission and a heavy network burden when server 100 issues multiple patch packages adapted to different terminal devices to the terminal devices that need to be upgraded.

[0134] like Figure 2 As shown, this application provides a patching system 20 and a patching method implemented in the patching system. Figure 2 In the patching system 20 shown, terminal devices with strong computing power and sufficient storage capacity, such as mobile phone 102, can act as "super terminals". The "super terminal" can use relatively small differential data sent by server 100 to reconstruct a patch package adapted to the target device (e.g., smart headset 104). Then, the "super terminal" sends the reconstructed patch package to the target device. This eliminates the need for server 100 to directly transmit large patch packages to each terminal device, thereby reducing data transmission volume and alleviating network burden.

[0135] like Figure 2 As exemplified, the patching system 20 provided in this application embodiment may include: a server 100 and terminal devices such as a mobile phone 102, a smart bracelet 103, and a smart headset 104. The mobile phone 102, smart bracelet 103, and smart headset 104 can be in the same local area network by accessing the same Wi-Fi access point provided by the router 101. The application "APP-1" can be installed on each of the terminal devices, including the mobile phone 102, smart bracelet 103, and smart headset 104. Specifically, the version of "APP-1" on the mobile phone 102 is 2.0.0, the version of "APP-1" on the smart bracelet 103 is 3.0.0, and the version of "APP-1" on the smart headset 104 is 4.0.0.

[0136] In patching system 20, taking the upgrade of "APP-1" installed on smart earphone 104 as an example, the patching method provided in this application embodiment may include the following steps:

[0137] Step 1: Server 100 can prepare the patch 3 required for upgrading "APP-1" of smart earphone 104, which can be, for example, 800K in size.

[0138] Step 2: Server 100 determines the most relevant device from all connected terminal devices. In this example, the most relevant device could be mobile phone 102 and smart bracelet 103. Mobile phone 102 is selected as the most relevant device because its "APP-1 2.0.0" has a software module that highly overlaps with patch 3. Similarly, smart bracelet 103 is also selected as the most relevant device because its "APP-13.0.0" has a software module that highly overlaps with patch 3.

[0139] Step 3: Server 100 can use "APP-1" (specifically, some modules that highly overlap with patch 3) on the most relevant devices (i.e., mobile phone 102 and smart bracelet 103) to generate differential data C with patch 3. Its size can be 50K, which is significantly smaller than the size of patch 3.

[0140] Step 4: Server 100 can send differential data C to mobile phone 102 and inform mobile phone 102 of the target device (i.e. smart earphone 104) and the most relevant device.

[0141] Step 5: Mobile phone 102 can use differential data C and "APP-1" on the most relevant device (specifically, some modules that highly overlap with patch 3) to restore patch 3. Then, mobile phone 102 can send the restored patch 3 to smart earphone 104 (i.e., the target device).

[0142] Step 6: Smart Earphone 104 can upgrade "APP-1" using Patch 3 on Phone 102. Specifically, "APP-1" can be upgraded from the old version 4.0.0 to the new version 4.1.0.

[0143] As can be seen, since the patch system 20 provided in this application embodiment has the role of "super terminal", the server 100 does not need to directly transmit patches with large amounts of data to each terminal device, but only needs to transmit differential data with a smaller amount of data generated by the patch package and the application on the most relevant device to the "super terminal".

[0144] Furthermore, "HyperTerminal" can utilize differential data and the applications on the most relevant devices to reconstruct the patch package, and then transmit the patch package to the target device to ultimately upgrade the applications on the target device. This patching technology significantly reduces the amount of data transfer between the server and each terminal device when upgrading applications on various terminal devices.

[0145] The patching techniques described above will be explained in detail below, including how to determine the most relevant devices, how to generate differential data, and how to use the differential data to reconstruct the patch package.

[0146] 1. How to determine the most relevant equipment?

[0147] In this embodiment of the application, the most relevant device may refer to a terminal device whose "APP-1" has one or more software modules that highly overlap with those in patch 3. For any given patch, one most relevant device may be identified, or multiple most relevant devices may be identified. Figure 2 In the patch system 20 shown, any terminal device may become the most relevant device for patch 3.

[0148] Figure 3A The software architecture of "APP-1" and patch 3 on terminal devices such as mobile phone 102, smart bracelet 103, and smart speaker 105 is illustrated.

[0149] like Figure 3A As shown, Patch 3 and the "APP-1" on various terminal devices can be divided into three software modules based on their software architecture: FA1 interface code, Entrylegcy code, and FA1 code. The FA1 interface code module implements the specific logical structure of the interface layer, the Entrylegcy code module implements software data system compatibility processing functions, and the FA1 code module implements the HarmonyOS card function of the application. Each software module can consist of multiple methods and variables, and the composition of the same software module may differ across different terminal devices and patches.

[0150] For example, such as Figure 3A As shown, the FA1 interface code software module in Patch 3 may include the following variables: Variable 1-a, Variable 1-b, Variable 1-c, Variable 1-d, and the following methods: Method 1-a, Method 1-b, Method 1-c, Method 1-d. The FA1 interface code software module in "APP-1" on mobile phone 102 may include the following variables: Variable 1-a, Variable 1-b, Variable 1-c, Variable 1-d, Variable 1-e, Variable 1-f, and the following methods: Method 1-a, Method 1-b, Method 1-c, Method 1-d, Method 1-e, Method 1-f. The FA1 interface code software module in "APP-1" on smart bracelet 103 may include the following variables: Variable 1-d, Variable 1-e, Variable 1-f, and the following methods: Method 1-d, Method 1-e, Method 1-f. The FA1 interface code software module in "APP-1" on the smart speaker 105 may include the following variables: variable 1-e, variable 1-f, variable 1-g, and the following methods: method 1-e, method 1-f, method 1-g. Similar to patch 3 and other modules of various terminal devices, the variables and methods that may be included are as follows... Figure 3AAs shown in the diagram, it will not be repeated here.

[0151] It can be seen that the FA1 interface code (02) module of "APP-1" on mobile phone 102 and the FA1 interface code (01) module in patch 3 have the highest degree of overlap, and have the following identical variables: variable 1-a, variable 1-b, variable 1-c, variable 1-d, and have the following identical methods: method 1-a, method 1-b, method 1-c, method 1-d.

[0152] The Entrylegcy code (03) module of "APP-1" on the smart bracelet 103 has the highest degree of overlap with the Entrylegcy code (01) module in patch 3, and has the following identical variables: variable 2-b, variable 2-c, variable 2-g, and has the following identical methods: method 2-b, method 2-c, method 2-g.

[0153] The FA1 code (03) module of "APP-1" on the smart bracelet 103 has the highest degree of overlap with the FA1 code (01) module in patch 3, and has the following identical variables: variable 3-a, variable 3-b, variable 3-g, and has the following identical methods: method 3-a, method 3-b, method 3-g.

[0154] Where the overlap is equal to (the number of identical methods + the number of identical variables) / (the total number of methods + the total number of variables).

[0155] Therefore, the module most closely related to the FA1 interface code in patch 3 is the FA1 interface code module in "APP-1" of mobile phone 102, the module most closely related to the Entrylegcy code in patch 3 is the Entrylegcy code module in "APP-1" of smart bracelet 103, and the module most closely related to the FA1 code in patch 3 is the FA1 code module in "APP-1" of smart bracelet 103.

[0156] As mentioned above, the code correspondences of the three modules in different software versions of "APP-1" on different terminal devices are somewhat different. By using the method of calculating correlation, the correlation between the three modules of patch 3 and the modules corresponding to the name "APP-1" on all terminal devices is obtained. The module of "APP-1" with the greatest correlation to the three modules of patch 3 is selected as the most relevant module, and the terminal device where the most relevant module is located is the most relevant device.

[0157] In this application embodiment, the method for calculating correlation in order to determine the most relevant device may include two types:

[0158] The first method is to calculate the coupling coefficient, which involves reverse-analyzing the module's software code to obtain multiple variables and methods in the corresponding code segment, performing structured analysis, and then calculating the coupling coefficient as follows:

[0159] Coupling coefficient = (Change in the number of variables + Change in the number of methods) / (Number of methods + Number of variables)

[0160] The coupling coefficient is calculated on a per-software-module basis. The module with the smallest coupling coefficient, i.e. the highest degree of overlap, is selected as the most relevant module. The terminal device where this module is located is the most relevant device.

[0161] Furthermore, the methods and variables in each software module can be further categorized into two dimensions: platform-level and application-level. Platform-level methods and variables are distinguished solely by the terminal device, while application-level methods and variables are distinguished solely by the application program. (Combined) Figure 3A Explain how to determine the most relevant equipment in two dimensions.

[0162] When identifying the most relevant devices, the priority of methods and variables at the platform level can be distinguished from that at the application level.

[0163] For example, if the platform dimension has a higher priority than the application dimension, then the methods and variables based on the platform dimension should be used to determine which devices have software modules that highly overlap with patch 3.

[0164] exist Figure 3A In the step 2 diagram showing the method for determining the most relevant device, it is assumed that in patch 3, variables 1-d and method 1-d in the FA1 interfacecode(01) module are platform-level variables and methods, and variables 1-a, 1-b, 1-c and methods 1-a, 1-b, and 1-c are application-level variables and methods; in version 2.0.0 of “APP-1” on mobile phone 102, variables 1-d and method 1-d in the FA1 interface code(02) module are platform-level variables and methods, and variables 1-a, 1-b, 1-c, 1-e, 1-f and methods 1-a, 1-b, 1-c, 1-e, and 1-f are application-level variables and methods; in version 3.0.0 of “APP-1”, the FA1 interface... In the code(03) module, variable 1-d and method 1-d are platform-level variables and methods, while variable 1-e, variable 1-f, method 1-e, and method 1-f are application-level variables and methods.

[0165] Therefore, we can see that, at the platform level, the coupling coefficient between the FA1 interface code (01) module in patch 3 and the FA1 interface code (02) module in version 2.0.0 of "APP-1" on mobile phone 102 is zero. Similarly, the coupling coefficient between the FA1 interface code (01) module in patch 3 and the FA1 interface code (03) module in version 3.0.0 of "APP-1" is also zero. That is, the coupling coefficients of the two modules at the platform level are equal to those of the FA1 interface code (01) module in patch 3. Under these circumstances, we can calculate the coupling coefficient at the application level to obtain the module with the smallest coupling coefficient with the FA1 interface code (01) module in patch 3, thereby determining the most relevant device. The calculation method is similar to that at the platform level.

[0166] Conversely, if the application dimension has a higher priority than the platform dimension, then the methods and variables at the application dimension are used first to determine which devices have software modules that highly overlap with Patch 3. The calculation method is similar to that shown above. If the coupling coefficient of a module on two devices calculated at the application dimension is equal to that of a module in Patch 3, then the coupling coefficient at the platform dimension is calculated to determine the most relevant devices.

[0167] In addition to using the above-mentioned methods and coupling coefficients of variables to determine the most relevant device, embodiments of this application can also use the binary code of software modules to determine the most relevant device.

[0168] The second method is to perform correlation calculations on the module software code using binary (including but not limited to the bsdiff algorithm). The following are the correlation coefficients between Patch 3 of Example 1 and the corresponding modules in "APP-1" of various terminal devices:

[0169] The correlation coefficient between the FA1 interface code module of patch 3 and the FA1 interface code module of "APP-1" in mobile phone 102 is 0.8; the correlation coefficient between the Entry Legcycode module of patch 3 and the Entry Legcycode module of "APP-1" in mobile phone 102 is 0.4; and the correlation coefficient between the FA1 code module of patch 3 and the FA1 code module of "APP-1" in mobile phone 102 is 0.2.

[0170] The correlation coefficient between the FA1 interface code module of Patch 3 and the FA1 interface code module of "APP-1" in Smart Bracelet 103 is 0.7; the correlation coefficient between the Entry Legcy code module of Patch 3 and the Entry Legcy code module of "APP-1" in Smart Bracelet 103 is 0.7; and the correlation coefficient between the FA1 code module of Patch 3 and the FA1 code module of "APP-1" in Smart Bracelet 103 is 0.6.

[0171] The correlation coefficient between the FA1 interface code module of patch 3 and the FA1 interface code module of "APP-1" in smart speaker 105 is 0.6; the correlation coefficient between the Entry Legcy code module of patch 3 and the Entry Legcy code module of "APP-1" in smart speaker 105 is 0.6; and the correlation coefficient between the FA1 code module of patch 3 and the FA1 code module of "APP-1" in smart speaker 105 is 0.5.

[0172] Based on the correlation coefficients mentioned above, the highest correlation coefficient (0.8) between FA1 interface code (02) in "APP-1" of mobile phone 102 and FA1 interface code (01) in patch 3 is found to be. Similarly, the highest correlation coefficient (0.7) between EntryLegacycode (03) in "APP-1" of smart headset 104 and EntryLegacycode (01) in patch 3 is found to be. Furthermore, the highest correlation coefficient (0.6) between FA1 code (03) in "APP-1" of smart headset 104 and FA1 code (01) in patch 3 is found to be found to be found to be found to be between mobile phone 102 and smart headset 104.

[0173] exist Figure 3B As shown in the diagram of step 3 regarding how to obtain the differential data, it can be seen that on server 100, the differential data C is obtained from the software module on the most relevant device. Figure 3B The FA1 interface code (02) module, Entry legcy code (03) module, and FA1 code (03) module shown are obtained by differentially analyzing Patch 3 according to the principle of removing similarities and retaining differences. The differential data C also has the same software architecture as Patch 3 and "APP-1" on each terminal device, that is, it also includes the three modules of FA1 interface code, Entry legcy code, and FA1 code.

[0174] 2. How to generate differential data

[0175] Figure 3B An example is provided illustrating the specific steps involved in generating the differenced data C. For instance... Figure 3B As shown, the methods and variables within the gray dashed lines in each module are the methods and variables discarded after differencing, while the remaining methods and variables are the methods and variables retained after differencing.

[0176] It can be seen that the FA1 interface code (00) module is generated by differentially processing the FA1 interface code (01) module in patch 3 and the FA1 interface code (02) module in "APP-1 2.0.0" of mobile phone 102. The Entrylegcy code (00) module is generated by differentially processing the Entrylegcy code (01) module in patch 3 and the Entrylegcy code (03) module in "APP-1 3.0.0" of smart bracelet 103. The FA1 code (00) module is generated by differentially processing the FA1 code (01) module in patch 3 and the FA1 code (03) module in "APP-1 3.0.0" of smart bracelet 103.

[0177] As can be seen from the above, the differential data C obtained in this way is the smallest differential data size, only 50K. This ensures that when the server 100 transmits the differential data C to the mobile phone 102, the amount of data transmitted is minimized and the transmission efficiency is maximized, thereby improving the efficiency of patching and fixing urgent issues.

[0178] 3. How to restore the patch

[0179] exist Figure 3C As shown in the diagram of step 4 regarding how to restore patch 3, it can be seen that in mobile phone 102, each module in the differential data C is most closely related to the most relevant module of the "APP-1" device. Figure 3C The diagram shows that the FA1 interfacecode(02) module, Entrylegcy code(03) module, and FA1 code(03) module are restored according to the principle of discarding common variables and retaining differences. This principle discards variables and methods shared by the difference data C and the most relevant modules, while retaining variables and methods specific to the difference data C and the most relevant modules. The methods and variables within the gray dashed lines in each module are the methods and variables discarded after restoration, while the remaining methods and variables are the methods and variables retained after restoration.

[0180] Specifically, the FA1 interface code (01) module discards the common variables 1-e, 1-f and methods 1-e and 1-f of the FA1 interface code (02) module in smartphone 102 and the FA1 interface code (00) module in differential data C, leaving the unique variables 1-a, 1-b, 1-c, 1-d and methods 1-a, 1-b, 1-c and 1-d of the FA1 interface code (02) module.

[0181] The Entrylegcy code (01) module discards the common variables 2-h and method 2-h of the Entrylegcy code (03) module and the Entrylegcy code (00) module in the difference data C, leaving the variables 2-b, 2-c, 2-g and methods 2-b, 2-c, and 2-g unique to the Entrylegcy code (03) module and the variables 2-f and methods 2-f unique to the Entrylegcy code (00) module.

[0182] The FA1 code(01) module discards the common variables 3-h and method 3-h of the FA1 code(03) module in the smart bracelet 103 and the FA1 code(00) module in the differential data C, leaving the variables 3-a, 3-b, 3-g and methods 3-a, 3-b, and 3-g unique to the FA1 code(03) module and the variables 3-d and methods 3-d unique to the FA1 code(00) module.

[0183] Understandable Figure 2 The implementation scenarios described are merely illustrative of the embodiments of this application and do not constitute any limitation on this application.

[0184] Figure 4 The illustration shows a method flow for patching according to an embodiment of this application. Specifically, it may include the following steps:

[0185] S101. The server checks whether the "APP-1" of the terminal device under the server 100 needs to be patched, and determines that patch 3 needs to be patched for the "APP-1" of the smart headset 104.

[0186] S102, Server 100 sends Patch 3 notification information to mobile phone 102, wherein the notification information includes the terminal device that needs to be updated, namely smart headset 104, and the version information of "APP-1" of the device before and after the update, namely updated from 4.0.0 to 4.1.0.

[0187] S103 and phone 102 detected the user's selection to update.

[0188] S104, Server 100 obtains the user's consent to download patch 3 and update "APP-1".

[0189] S105 and server 100 obtain the version information of "APP-1" of all terminal devices and further determine the most relevant devices in conjunction with patch 3.

[0190] S106, Server 100 obtains differential data C by performing differential analysis between the most relevant device "APP-1" and patch 3.

[0191] S107. Server 100 sends differential data C to mobile phone 102.

[0192] S108 and mobile phone 102 restore patch 3 based on the most relevant module of "APP-1" and differential data C in the most relevant device.

[0193] S109, Mobile phone 102 sends "APP-1 patch 3" to smart headset 104 for updating smart headset 104.

[0194] Download and install patch 3 for S110 and Smart Earphones 104 to update the version.

[0195] S111, Server 100 receives a "APP-1" update success instruction from Smart Earphone 104.

[0196] S112, Server 100 updates and saves the "APP-1" version information of the smart earphone 104.

[0197] S113, Server 100 sends the instruction that "APP-1" has been successfully updated to Mobile Phone 102.

[0198] The S114 and mobile phone 102 display a message indicating that the "APP-1" version of the smart earphone 104 has been successfully updated from 4.0.0 to 4.1.0.

[0199] like Figure 5 As shown, this application embodiment also provides a patching system 30 and a patching method implemented in the patching system. Figure 5In the patching system shown, terminal devices with strong computing power and sufficient storage capacity, such as mobile phone 102, can act as "super terminals." The "super terminal" can also use relatively small amounts of differential data sent by server 100 to reconstruct a patch package adapted to the target device. Then, the "super terminal" sends the reconstructed patch package to the target device. In this way, server 100 also achieves the effect of not needing to directly transmit large patch packages to the target device, thereby reducing data transmission volume and alleviating network burden.

[0200] In some embodiments, the target device of the patch package issued by the server is not in the scenario of 1+8+N devices, but a single terminal device that can establish a connection and communicate with the mobile phone 102. Therefore, there is no most relevant module, nor is there a most relevant device for the patch package.

[0201] like Figure 5 As exemplified, the patching system 30 provided in this application embodiment may include: a server 100 and terminal devices such as a mobile phone 102 and a smart headset 104. The mobile phone 102 and the smart headset 104 can be in the same local area network by accessing the same Wi-Fi access point provided by the router 101. An application "APP-1" can be installed on both the mobile phone 102 and the smart headset 104. Specifically, the version of "APP-1" on the mobile phone 102 is 2.0.0, and the version of "APP-1" on the smart headset 104 is 4.0.0.

[0202] In patching system 30, taking the upgrade of "APP-1" installed on smart earphone 104 as an example, the patching method provided in this application embodiment may include the following steps:

[0203] Step 1: Server 100 can prepare the patch 3 required for upgrading "APP-1" of smart earphone 104, which may be, for example, 800K in size.

[0204] Step 2: Server 100 can use the "APP-1 4.0.0" and patch 3 of smart earphone 104 to generate three different differential data a, b and c. It can be seen that differential data a has the smallest data volume, and its size can be, for example, 80K, which is significantly smaller than the size of patch 3.

[0205] Step 3: Server 100 can send differential data a to mobile phone 102 and inform mobile phone 102 of the target device (i.e., smart earphone 104) and the differential data.

[0206] Step 4: Mobile phone 102 can use the differential data a and the "APP-1 4.0.0" on smart earphone 104 (specifically, the data that has been differentially processed) to restore patch 3. Then, mobile phone 102 can send the restored patch 3 to smart earphone 104 (i.e., the target device).

[0207] Step 5: Smart Earphone 104 can upgrade "APP-1" using Patch 3 on Phone 102. Specifically, "APP-1" can be upgraded from the old version 4.0.0 to the new version 4.1.0.

[0208] As can be seen, since the patch system 30 provided in this application embodiment has the role of "HyperTerminal", the server 100 does not need to directly transmit patches with large amounts of data to each terminal device, but only needs to transmit the smallest difference data between the patch package and the data generated by the application on the target device to the "HyperTerminal".

[0209] Furthermore, "HyperTerminal" can utilize differential data and the application on the target device to reconstruct the patch package, and then transmit the patch package to the target device to ultimately upgrade the application on the target device. This patching technology significantly reduces the amount of data transfer between the server and each target device when upgrading applications on various target devices.

[0210] The following section will explain in detail how to generate minimum difference data and how to use the difference data to reconstruct the patch package.

[0211] 1. How to determine the minimum difference data?

[0212] exist Figure 6A and Figure 6B The step 2 diagram showing the method for determining the minimum difference data includes patch 3, the "APP-1" of the smart earphone 104, and the code architecture of the difference data. Figure 6A As can be seen, the "APP-1" of the smart earphone 104 can be divided into three modules according to its software architecture: FA1 interface code, Entrylegcy code, and FA1 code. Patch 3 can be divided into two modules according to its software architecture: Entrylegcy code and FA1 code.

[0213] Notably, the Entrylegcy code module in Patch 3 is not simply an upgrade of the Entrylegcy code module in "APP-1" of the Smart Headphone 104; rather, it upgrades both the FA1 interface code and Entrylegcy code modules within "APP-1" of the Smart Headphone 104. This results in uncertainty regarding the specific distribution of methods and variables in the FA1 interface code and Entrylegcy code modules of "APP-1" of the Smart Headphone 104. Therefore, three differentiating methods are used to determine the minimum difference data.

[0214] like Figure 6B The diagram showing the determination of the minimum difference data and Figure 6C The three differential methods shown are used to combine the software modules on patch 3 and the software modules on the smart earphone 104 "APP-1" through three different differential methods to form differential data. The three differential methods are as follows:

[0215] The first differential method involves differentially differentiating the FA1 interface code module of "APP-1" in smart earphone 104 with the Entrylegcy code module in patch 3 to obtain differential module 1, which includes variables 1-d, 2-b, 2-e, 2-g and methods 1-d, 2-b, 2-e, and 2-g. Differential module 4 is obtained by differentially differentiating the FA1 code module of "APP-1" in smart earphone 104 with the FA1 code module in patch 3, which includes variables 3-a, 3-d and methods 3-a and 3-d. Differential data a can then be constructed by differential module 1 and differential module 4.

[0216] The second differential method involves differentially differentiating the Entrylegcy code module of "APP-1" in the smart earphone 104 with the Entrylegcy code module in patch 3 to obtain differential module 2, which includes variables 1-a, 1-b, 1-c, 1-d, 2-a, 2-c, 2-e, 2-g and methods 1-a, 1-b, 1-c, 1-d, 2-a, 2-c, 2-e, 2-g. Differential module 4 is obtained by differentially differentiating the FA1 code module of "APP-1" in the smart earphone 104 with the FA1code module in patch 3. Differential module 2 and differential module 4 can constitute differential data b.

[0217] The third differential method involves differentially differentiating the FA1 interface code module and Entrylegcy code module of the "APP-1" of the smart earphone 104 with the Entrylegcy code module in patch 3 to obtain differential module 3, which includes variables 1-d, 2-a, 2-c, 2-e, 2-g and methods 1-d, 2-a, 2-c, 2-e, and 2-g. Differential module 4 is obtained by differentially differentiating the FA1 code module of the "APP-1" of the smart earphone 104 with the FA1 code module in patch 3. Differential module 3 and differential module 4 can constitute differential data c.

[0218] Then, the smallest differential data is selected from the differential data a, b, and c. This results in differential data a being the smallest differential data. This ensures that when the server 100 transmits the differential data to the mobile phone 102, the amount of data transmitted is minimized, the transmission efficiency is maximized, and the efficiency of patching and fixing urgent issues is improved.

[0219] exist Figure 6D In the step 3 diagram showing how to restore the patch, the differential data a includes two modules: Entrylegcycode and FA1 code. The Entrylegcy code module is obtained by differentially analyzing the Entrylegcy code module in patch 3 with the FA1 interface code module in "APP-1" of the smart earphone 104. The FA1 code module is obtained by differentially analyzing the FA1 code module in patch 3 with the FA1 code module in "APP-1" of the smart earphone 104.

[0220] It can be seen that in mobile phone 102, the modules in differential data a and the related modules in "APP-1" of smart earphone 104 that have undergone differential operations ( Figure 6D The FA1 interface code module and FA1 code module of "APP-1" in smart earphone 104 are shown. Patch 3 is restored according to the principle of removing commonalities and retaining differences. The principle of removing commonalities and retaining differences is to discard the variables and methods shared by the differential data a and related modules, and retain the variables and methods unique to the differential data a and the variables and methods unique to the related modules.

[0221] That is, the Entrylegcy code module of patch 3 is composed of the unique variables 1-a, 1-b, 1-c and methods 1-a, 1-b, 1-c left by the FA1 interfacecode module in "APP-1" of smart earphone 104, and the unique variables 1-d, 2-b, 2-e, 2-g and methods 1-d, 2-b, 2-e, 2-g left by the Entrylegcy code module in the difference data a.

[0222] The FA1 code module in patch 3 is composed of the unique variables 3-b, 3-c, and methods 3-b and 3-c of the FA1 code module in "APP-1" of smart earphone 104, and the unique variables 3-d and methods 3-d of the FA1 code module in the difference data a, while discarding the common variables 3-a and methods 3-a.

[0223] In this embodiment, the restoration process is based solely on Figure 6D The gray module shown is the FA1 interface code module and FA1 code module of "APP-1" in the smart earphone 104, which is the differential data a. It does not utilize the Entrylegcy code module of "APP-1" in the smart earphone 104.

[0224] Understandable Figure 5 The implementation scenarios described are merely illustrative of the embodiments of this application and do not constitute any limitation on this application.

[0225] Figure 7 The present application illustrates a method flow for another patching method provided in an embodiment. Specifically, it may include the following steps:

[0226] S201. The server checks whether the "APP-1" of the smart earphone 104 under server 100 needs to be patched, and if so, patches 3 are to be patched.

[0227] S202, Server 100 sends a patch 3 notification message to mobile phone 102, which includes the terminal device that needs to be updated, namely smart headset 104, and the version information of the device's "APP-1" before and after the update, i.e., updated from 4.0.0 to 4.1.0.

[0228] S203, Mobile Phone 102 detected the user's selection to update.

[0229] S204, Server 102 obtains the user's consent to download patch 3 and update "APP-1".

[0230] S205, Server 100 obtains the version information of "APP-1" of Smart Earphone 104, and performs differential analysis with Patch 3 to obtain the minimum differential data, i.e., differential data a.

[0231] S206, Server 100 sends differential data a to mobile phone 102.

[0232] S207 and mobile phone 102 restore patch 3 based on "APP-1" and differential data a from smart earphone 104.

[0233] S208, mobile phone 102 sends "APP-1 patch 3" to smart headset 104 for updating smart headset 104.

[0234] Download and install patch 3 for S209 and Smart Earphones 104 to update the version.

[0235] S210, Server 100 receives the "APP-1" update success instruction from Smart Earphone 104.

[0236] S211, Server 100 updates and saves the "APP-1" version information of Smart Earphone 104.

[0237] S212, Server 100 sends the instruction that "APP-1" has been successfully updated to mobile phone 102.

[0238] The S213 and mobile phone 102 display a message indicating that the "APP-1" version of the smart earphone 104 has been successfully updated from 4.0.0 to 4.1.0.

[0239] Server 100 can generate one or more different patch packages for different electronic devices. The cloud server can send the generated patch packages to mobile phone 102 via far-field communication, and then transmit them to the target device via Bluetooth. Each electronic device can also download the corresponding patch packages itself by connecting to the router's wireless network. The generated patch packages can be used to fix one or more vulnerabilities in the program, or to add one or more product features or functions and / or functionalities; this application does not limit this. For example, an electronic device can add a "voice assistant" function by installing a patch package. This function can help users send messages and make calls without touching the electronic device, and can also help users translate the other party's language into a language they can understand in real time when conversing face-to-face with others in different languages. Before installing this patch package, the electronic device does not have the aforementioned "voice assistant" and related functions. Furthermore, patches can be of various types, such as... For example, in a system, there may be patches of corresponding types at the application (APP) layer, application framework layer, kernel layer, or hardware driver layer, and this application does not impose any restrictions on this.

[0240] In some embodiments, mobile phone 102 may possess strong computing power and ample internal storage space. Mobile phone 102 can function as a super terminal, receiving and processing one or more patch packages from the server side. Mobile phone 102 may have a Bluetooth (BT) module and / or a wireless local area network (WLAN) module. The Bluetooth module may provide one or more Bluetooth communication solutions, including Bluetooth Classic (Bluetooth 2.1) or Bluetooth Low Energy (BLE). The WLAN module may provide one or more WLAN communication solutions, including Wireless Fidelity Direct (Wi-Fi Direct), Wireless Fidelity Local Area Networks (Wi-Fi LAN), or Wireless Fidelity Software Access Point (Wi-Fi Soft AP). Mobile phone 102 can establish wireless communication connections with other electronic devices in the vicinity of mobile phone 102 using Bluetooth, WLAN, or other types of one or more wireless communication technologies, and then send patches to other electronic devices through these wireless communication connections.

[0241] In some embodiments, various terminal devices on the local area network, such as mobile phone 102, smart bracelet 103, smart earphone 104, smart speaker 105, smart TV 106, computer 107, etc., may be installed with the same operating system. The system, connected by router 101, forms a system ecosystem. Under the same operating system, the code differences of the patch programs corresponding to different versions of the same software on various devices are small. The server can quickly generate the corresponding differential data based on the version information of the most relevant terminal devices.

[0242] It is understood that the patching system 10 shown in this embodiment does not constitute a specific limitation on the embodiments of this application. In other embodiments of this application, the patching system 10 may include more or fewer devices than shown. For example, the communication system 10 may also include other electronic devices such as smart lamps and smart refrigerators, and this application does not impose any limitations in this regard.

[0243] The exemplary electronic device 100 provided in the embodiments of this application is described below.

[0244] Figure 8 A schematic diagram of the structure of the electronic device 100 is shown.

[0245] Electronic device 100 may include processor 110, external memory interface 120, internal memory 121, universal serial bus (USB) interface 130, charging management module 140, power management module 141, battery 142, antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone jack 170D, sensor module 180, button 190, motor 191, indicator 192, camera 193, display screen 194, and subscriber identification module (SIM) card interface 195, etc. The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, a barometric pressure sensor 180C, a magnetic sensor 180D, an accelerometer sensor 180E, a distance sensor 180F, a proximity sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.

[0246] The electronic device 100 can be a mobile phone 102, a smart bracelet 103, a smart headset 104, a smart speaker 105, a smart TV 106, a computer 107, or other electronic devices such as desktop computers, laptop computers, handheld computers, notebook computers, ultra-mobile personal computers (UMPCs), netbooks, cellular phones, personal digital assistants (PDAs), augmented reality (AR) devices, virtual reality (VR) devices, artificial intelligence (AI) devices, wearable devices, in-vehicle devices, smart home devices, and / or smart city devices. This application does not impose any special limitations on the specific type of electronic device. In other embodiments of this application, the electronic device 100 may include more or fewer components than illustrated, or combine certain components, or split certain components, or have different component arrangements. The illustrated components can be implemented in hardware, software, or a combination of software and hardware.

[0247] Electronic devices can be portable terminal devices running iOS, Android, Microsoft or other operating systems, such as mobile phones, tablets, wearable devices, etc., or non-portable terminal devices such as laptops or desktop computers with touch-sensitive surfaces or touch panels.

[0248] In this embodiment of the application, when the electronic device 100 is implemented as Figure 2 When the mobile phone 102 is in use, the electronic device 100 can receive differential data C, target device information (i.e., smart earphone 104), and relevant information of the most relevant device from the server 100 via the wireless communication module 160. The electronic device 100 can also receive the most relevant module from the most relevant devices (i.e., mobile phone 102 and smart bracelet 103) via the wireless communication module 160. Therefore, the processor 110 of the electronic device 100 can use the received differential data C and the most relevant module to perform patch restoration. After restoring patch 3, the electronic device 100 can send patch 3 to the smart earphone 104 via the wireless communication module 160, enabling the smart earphone 104 to perform an "APP-1" upgrade using patch 3. For instructions on patch restoration, please refer to the foregoing. Figure 3C The method for restoring the patch package, as described above, will not be repeated here.

[0249] When electronic device 100 is implemented as Figure 2 When the most relevant device is the smart bracelet 103, the electronic device 100 can transmit the most relevant module to the mobile phone 102 via the wireless communication module 160, so that the mobile phone 102 can use the most relevant module in the smart bracelet 103 to perform patch restoration. For an explanation of the most relevant module, please refer to the above. Figure 3A The method for determining the most relevant equipment, as described above, will not be repeated here.

[0250] When electronic device 100 is implemented as Figure 2 When the target device is the smart earphone 104, the electronic device 100 can receive patch 3 from the mobile phone 102 through the wireless communication module 160, and use the patch 3 to upgrade "APP-1" from version 4.0.0 to version 4.1.0.

[0251] Processor 110 may include one or more processing units, such as application processors (APs), modem processors, graphics processing units (GPUs), image signal processors (ISPs), controllers, video codecs, digital signal processors (DSPs), baseband processors, and / or neural network processing units (NPUs). These different processing units may be independent devices or integrated into one or more processors.

[0252] The processor 110 may also include a memory for storing instructions and data.

[0253] USB interface 130 is an interface that conforms to the USB standard specification, specifically it can be a Mini USB interface, Micro USB interface, USB Type C interface, etc.

[0254] It is understood that the interface connection relationships between the modules illustrated in the embodiments of the present invention are merely illustrative and do not constitute a structural limitation on the electronic device 100. In other embodiments of this application, the electronic device 100 may also employ different interface connection methods or combinations of multiple interface connection methods as described in the above embodiments.

[0255] The charging management module 140 is used to receive charging input from the charger.

[0256] The power management module 141 is used to connect the battery 142, the charging management module 140, and the processor 110.

[0257] The wireless communication function of electronic device 100 can be realized through antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, modem processor and baseband processor, etc.

[0258] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals.

[0259] The mobile communication module 150 can provide wireless communication solutions, including 2G / 3G / 4G / 5G, for use on electronic devices 100.

[0260] The wireless communication module 160 can provide solutions for wireless communication applications on the electronic device 100, including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared (IR) technology, etc.

[0261] Display screen 194 is used to display images, videos, etc.

[0262] Camera 193 is used to capture still images or videos.

[0263] The external memory interface 120 can be used to connect to external non-volatile memory to expand the storage capacity of the electronic device 100.

[0264] Electronic device 100 can implement audio functions through audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone jack 170D, and application processor.

[0265] Pressure sensor 180A senses pressure signals and converts them into electrical signals. Gyroscope sensor 180B determines the motion posture of electronic device 100. Barometric pressure sensor 180C measures air pressure. Magnetic sensor 180D includes a Hall effect sensor. Accelerometer sensor 180E detects the magnitude of acceleration of electronic device 100 in various directions (typically three axes). Distance sensor 180F measures distance. Proximity sensor 180G may include, for example, a light-emitting diode (LED) and a photodetector; ambient light sensor 180L senses ambient light intensity. Fingerprint sensor 180H collects fingerprints. Temperature sensor 180J detects temperature. Touch sensor 180K detects touch operations applied to or near it. Bone conduction sensor 180M acquires vibration signals. Buttons 190 include a power button, volume buttons, etc. Motor 191 generates vibration cues. Indicator 192 may be an indicator light. SIM card interface 195 connects a SIM card.

[0266] Figure 9 The structure of the server 200 involved in an embodiment of this application is illustrated by way of example. Figure 9As shown, server 200 includes, but is not limited to, the following components: one or more network device processors 201, memory 202, communication interface 203, transmitter 205, receiver 206, coupler 207, and antenna 208.

[0267] These components can be connected via bus 204 or other means. Figure 9 Taking a bus connection as an example:

[0268] The communication interface 203 can be used by the server 200 to communicate with other communication devices, such as mobile phone 102, smart bracelet 103, and smart headset 104. Specifically, the communication interface 203 can be a 3G communication interface, a Long Term Evolution (LTE) (4G) communication interface, a 5G communication interface, a WLAN communication interface, a WAN communication interface, etc. Not limited to wireless communication interfaces, the network device processor 201 can also be configured with a wired communication interface 203 to support wired communication; for example, the backhaul link between the server 200 and other servers can be a wired communication connection.

[0269] In some embodiments of this application, transmitter 205 and receiver 206 can be considered as a wireless modem. Transmitter 205 can be used to transmit signals output by network device processor 201. Receiver 206 can be used to receive signals. In server 200, the number of transmitters 205 and receivers 206 can be one or more. Antenna 208 can be used to convert electromagnetic energy in a transmission line into electromagnetic waves in free space, or to convert electromagnetic waves in free space into electromagnetic energy in a transmission line. Coupler 207 can be used to split mobile communication signals into multiple paths and distribute them to multiple receivers 206. Understandably, the antenna 208 of the network device can be implemented as a massive MIMO (Massively Multi-Size Antenna Array).

[0270] The memory 202 is coupled to the network device processor 201 and is used to store various software programs and / or multiple sets of instructions. Specifically, the memory 202 may include high-speed random access memory and may also include non-volatile memory, such as one or more disk storage devices, flash memory devices, or other non-volatile solid-state storage devices.

[0271] Server 200 can provide Figure 2 Server 100 in the patch system shown could also be Figure 5 Server 100 in the patch system shown.

[0272] When server 200 is implemented as Figure 2When the server 100 is in the middle, the memory 202 in the server 200 stores the version information and software code of "APP-1" that is connected to all terminal electronic devices. The network device processor 201 in the server 200 generates a patch 3 that can upgrade the "APP-1" on the target device, i.e., the smart earphone 104. The network device processor 201 can use the patch 3 and the most relevant modules of the most relevant devices (i.e., mobile phone 102 and smart bracelet 103) stored in the memory 202 to perform differential analysis to generate differential data C. Then, the differential data C is sent to the mobile phone 102 through the transmitter 205. At the same time, the server 200 sends the target device information (i.e., smart earphone 104) and the relevant information of the most relevant devices to the mobile phone 102 through the communication interface 203.

[0273] When server 200 is implemented as Figure 5 When the server 100 is in the middle, the memory 202 in the server 200 stores the version information and software code of "APP-1" of the target device connected to it, namely the smart headset 104. The network device processor 201 in the server 200 generates a patch 3 that can upgrade the "APP-1" on the smart headset 104. The network device processor 201 can use the patch 3 and the software module of "APP-1" on the smart headset 104 stored in the memory 202 to perform differential analysis to generate the minimum differential data a. Then, the differential data a is sent to the mobile phone 102 through the transmitter 205. At the same time, the server 200 sends the relevant information of the differential software module of "APP-1" on the smart headset 104 to the mobile phone 102 through the communication interface 203.

[0274] It needs to be explained that, Figure 9 The server 200 shown is merely one implementation of the embodiments of this application. In actual applications, the server 200 may include more or fewer components, which is not limited here.

[0275] The patching method provided in this application will now be described in detail based on the aforementioned patching system and electronic device 100.

[0276] The term "user interface (UI)" used in the following embodiments of this application refers to the medium interface through which an application or operating system interacts and exchanges information with the user. It realizes the conversion between the internal form of information and the form that the user can accept. The user interface is source code written in a specific computer language such as Java or Extensible Markup Language (XML). The interface source code is parsed and rendered on the electronic device, ultimately presenting content that the user can recognize. A common form of user interface is the graphical user interface (GUI), which refers to a user interface related to computer operation displayed graphically. It can be visible interface elements such as text, icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, navigation bars, and widgets displayed on the screen of an electronic device.

[0277] The following describes an exemplary user interface for the application menu on mobile phone 102.

[0278] Figure 10 An exemplary user interface 1001 is shown.

[0279] The user interface 1001 may include: a status bar 1002, a calendar indicator 1003, other application icons 1004, a page indicator 1005, and a tray 1006 with commonly used application icons.

[0280] The status bar 1002 may include: one or more signal strength indicators for mobile communication signals (also known as cellular signals), one or more signal strength indicators for wireless fidelity (Wi-Fi) signals, battery status indicators, etc.

[0281] The calendar indicator 1003 can be used to indicate the current time, such as the date, day of the week, hour and minute information, etc.

[0282] Other application icons (1004) can include, for example, reading icons, photo icons, clock icons, theme icons, etc.

[0283] Page indicator 1005 can be used to indicate which application on which page the user is currently viewing. Users can swipe left or right on the area containing other application icons to browse application icons on other pages.

[0284] The tray icon 1006, which features icons for commonly used applications, can display icons such as: phone icon, settings icon, contacts icon, and messages icon.

[0285] In some embodiments, Figure 10The exemplary user interface 1001 can be the home screen.

[0286] In some other embodiments, the electronic device may also include a home screen button. This home screen button can be a physical button or a virtual button. The home screen button can receive user commands to return the currently displayed UI to the home screen, allowing the user to easily access the home screen at any time. Specifically, the command may be a single press of the home screen button, a double press within a short period, or a long press for a predetermined time. In other embodiments of this application, the home screen button may also integrate a fingerprint reader, enabling fingerprint collection and recognition when the user presses the home screen button.

[0287] Understandable Figure 10 The user interface on the mobile phone 102 is merely shown as an example and should not be construed as limiting the embodiments of this application.

[0288] The following describes the application scenarios involved in this application and some embodiments of the user interface implemented on the mobile phone 102.

[0289] Figure 10 The user interface shown on the mobile phone 102 is illustrated when the server 100 detects that the smart headset 104 needs an update.

[0290] like Figure 10As shown, when server 100 needs to send patch 3 to smart headset 104 for version update, mobile phone 102 on the same local area network as smart headset 104 can display a prompt box 1007 in user interface 1001. This prompt box 1007 can be used to prompt the user whether to allow server 100 to perform patch differential operation and send differential data to mobile phone 102. For example, the prompt message displayed in prompt box 1007 could be the text "A new version of smart headset 'APP-1' has been found. Do you want to update?". The prompt message is not limited to text; it can also be voice output by mobile phone 102 or other types of prompt messages, and this application does not impose any limitations on this. The prompt box 1007 can also display corresponding controls so that the user can choose whether to update "APP-1" of smart headset 104. In response to the user's touch operation (e.g., click) on the control, mobile phone 102 can execute the option corresponding to the control to allow "APP-1" of smart headset 104 to be updated, or allow "APP-1" of smart headset 104 to be updated. For example, the prompt box 1007 can display a "Yes" control and a "No" control. If a user touches the "Yes" control (e.g., clicks), the mobile phone 102 can always allow the smart headset 104 to obtain patch packages for updates through the mobile phone 102 when connected to the network.

[0291] Figure 11A , Figure 11B , Figure 11C , Figure 11D The user interface is shown in relation to the technical effects exhibited after implementing the technical solution of this application.

[0292] The user interface 1101 of mobile phone 102 allows the user to perform operations on mobile phone 102. Figure 10 The user interface 1101 is displayed when the cloud server generates the "APP-1" patch for the smart earphone 104 after clicking the "Yes" control in the operation shown. The user interface 1101 may include a title bar 1102, a program version update main interface 1103, etc.

[0293] The title bar 1102 may include a current page indicator and a return navigation control. The current page indicator can be used to indicate the current page; for example, the text "Smart Headphones" can indicate that the current page displays system update information. It is not limited to text; the current page indicator can also be an icon. The return navigation control can be used to listen for actions (such as touch operations). In response to this action, the electronic device can return from the current interface to the previous interface.

[0294] The main interface for program version updates 1103 can display one or more version update-related information entries, which may include: a notification that the electronic device has discovered a new patch for "APP-1", a download size information entry, an update time information entry, an update log information entry, etc.

[0295] On the main interface for program version updates (1103), each entry related to version update information has a corresponding title and text description. For example, the title of the entry for "New Patch Found on Electronic Device" is "New Patch Found for 'APP-1'", the title of the entry for "Patch Package Size" is "Download Size", and the text description is "Approximately 50K" for the new version number found. The title of the entry for "Update Time" is "Update Time", and the text description is "October 15, 2021". The title of the entry for "Update Log" is "Update Log", and the text description is "This update upgrades 'APP-1' version 4.0.0 to version 4.1.0", etc.

[0296] The main interface 1103 for program version updates may also include an "Update" control 1104 and a "Cancel" control 1105, which can be used to listen for operations (such as touch operations) performed through these controls. In response to an operation performed on "Update" or "Cancel", the electronic device will either update the patch or cancel the update patch.

[0297] In other embodiments, the program version update page may display information related to other program version updates, including but not limited to, third-party applications. The version update page may add or remove entries related to version updates; this application does not impose any limitations on this.

[0298] Figure 11B The user interface 1107 of the mobile phone 102 illustrated herein can be the user interface displayed on the mobile phone 102 when receiving and downloading a patch from a cloud-based server. This user interface 1107 can be used to indicate the progress of the patch download from the cloud-based server to the user. For example, an icon 1106 can be displayed to indicate that the patch is downloading and the download progress is 25%. The user interface 1107 can also display the text message "Downloading data (50K)" to indicate to the user that the patch is downloading. The notification is not limited to text; it can also be voice or other types of notification output by the mobile phone 102, and this application does not limit this. The user interface 1107 can also display a cancel control 1108 for listening to touch operations (e.g., clicks) performed on the control. In response to the "cancel" operation, the mobile phone 102 can cancel the download of the patch from the cloud-based server.

[0299] Figure 11CThe user interface 1110 of the mobile phone 102 shown in the example can be the user interface displayed on the mobile phone 102 when the smart headset 104 receives a patch from the mobile phone 102. This user interface 1110 can be used to indicate the progress of the smart headset 104 downloading the patch from the mobile phone 102. For example, an icon 1109 can be displayed, indicating to the user that the patch is downloading and the download progress is 25%. The user interface 1110 can also display the text message "Smart headset is downloading and installing patch (800K)" to indicate to the user that the patch is downloading. This is not limited to text information; the prompt can also be voice output by the mobile phone 102 or other types of prompts, and this application does not limit this. The user interface 1110 can also display a cancel control 1111 for listening to touch operations (e.g., clicks) performed on the control. In response to the "cancel" operation, the mobile phone 102 can cancel the operation of the smart headset 104 downloading and installing the patch from the mobile phone 102.

[0300] Figure 11D An exemplary user interface 1112 of mobile phone 102 is shown, which can prompt the user that the version of "APP-1" in smart headset 104 has been successfully upgraded. For example, user interface 1112 can display the text message "Download and installation complete" and the version number information of "APP-1" in smart headset 104, "APP-1 has been upgraded to version 4.1.0". The prompt is not limited to text information; it can also be voice output by the electronic device or other types of prompts, and this application does not impose any limitations on this.

[0301] exist Figure 11A , Figure 11B , Figure 11C , Figure 11D In the illustrated embodiment, only mobile phone 102 downloads the differential data for "APP-1" for smart earphone 104 from the cloud server. Mobile phone 102 can then, based on the differential data and the built-in application packages of "APP-1" for different electronic devices, reconstruct a patch package to upgrade "APP-1" of smart earphone 104 from version 4.0.0 to 4.1.0. Mobile phone 102 then sends the patch package to smart earphone 104. For the specific method of processing the patch package for smart earphone 104 by server 100 and mobile phone 102 in the 1+8+N HarmonyOS application software scenario, please refer to Method Embodiment 1. For the specific method of processing the patch package for smart earphone 104 by server 100 and mobile phone 102 in a single-device scenario, please refer to Method Embodiment 2. These methods will not be elaborated upon here.

[0302] Smart bracelets 103 and smart earphones 104, which are located on the same local area network as mobile phone 102, no longer need to download patches for the target devices from the cloud server. Figure 11AWhile mobile phone 102 is downloading differential data, smart bracelet 103 and smart earphone 104 do not download patches from server 100. However, after mobile phone 102 completes the download of differential data, the phone will regenerate patch packages for different target devices on the same local area network. Implementing this embodiment can avoid downloading large data patches issued by the server, saving bandwidth and improving patch issuance efficiency.

[0303] Understandable Figure 10 , Figure 11A , Figure 11B , Figure 11C , Figure 11D These are merely examples of user interfaces and do not constitute any limitation on other embodiments of this application.

[0304] As used in the above embodiments, depending on the context, the term "when..." can be interpreted as meaning "if...", "after...", "in response to determining...", or "in response to detecting...". Similarly, depending on the context, the phrase "when determining..." or "if (the stated condition or event) is interpreted as meaning "if determining...", "in response to determining...", "when (the stated condition or event) is detected", or "in response to detecting (the stated condition or event)".

[0305] The technical solutions in the embodiments of this application will be clearly and thoroughly described below with reference to the accompanying drawings. In the description of the embodiments of this application, unless otherwise stated, " / " means "or," for example, A / B can mean A or B; the word "and / or" in the text is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Furthermore, in the description of the embodiments of this application, "multiple" refers to two or more than two.

[0306] Hereinafter, the terms "first" and "second" are used for descriptive purposes only and should not be construed as implying or suggesting relative importance or implicitly indicating the number of indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature, and in the description of the embodiments of this application, unless otherwise stated, "multiple" means two or more.

[0307] Below, we introduce some terms and concepts related to this application.

[0308] A patch is a small program released to address problems exposed during the use of a large software system or application. Patches can be used to fix one or more software vulnerabilities; for example, a patch can fix one or more vulnerabilities, including but not limited to those in the application, application framework, kernel, and hardware drivers. Patches can also be used to add new product features or functionalities.

[0309] The 1+8+N device scenario architecture can be a business ecosystem for the Internet of Things (IoT). Here, 1 represents the user (mobile phone), 8 represents 8 types of devices (vehicle infotainment system, speaker, headphones, watch / band, tablet, large screen, PC, AR / VR), and N represents smart hardware and apps connected to HarmonyOS. All devices are interconnected and communicate with each other through a super terminal (mobile phone).

[0310] HarmonyOS SuperTerminal acts as a multi-device control center, enabling seamless connection between multiple devices. Its functionality allows users to automatically connect nearby Huawei phones, batteries, tablets, speakers, computers, cameras, and other smart devices running HarmonyOS, achieving collaborative management and resource sharing to create a collaborative work environment. The specific operation of SuperTerminal is as follows: First, enable Bluetooth and WLAN on your phone and log in to your account. Then, enable Bluetooth and WLAN on other devices with Bluetooth and WLAN capabilities and log in to the same account as your phone.

[0311] The devices involved in patch generation and activation primarily include servers and terminal devices. Servers may include patch application tools, patch archives, and patch distribution mechanisms. The patch application tool is a script running in the server background that packages patch files into a compressed file; the overall layout of the files within this compressed file is unique to each patch package. Patch archives are used to place the patch packages generated by the patch application tool into a designated archive address for subsequent server retrieval. Patch distribution is used by the server to send patch files to terminal devices. Terminal devices may include patch downloaders, patch engines, patch upgrade mechanisms, and patch partitions. Patch downloaders receive patch packages from the server. Patch upgrades refer to the process where, after a user searches for a patch package on their mobile phone and confirms the download, the patch engine downloads, verifies, and installs the patch package. The patch engine encapsulates various types of business logic, including patch file verification, enabling patch activation, and revoking abnormal patches. A patch partition is a space address on the terminal device's hard drive where the binary patch image from the patch package can be burned.

[0312] The various embodiments of this application can be combined arbitrarily to achieve different technical effects.

[0313] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium accessible to a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk (SSD)).

[0314] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. This program can be stored in a computer-readable storage medium, and when executed, it can include the processes described in the above method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as ROM or random access memory (RAM), magnetic disks, or optical disks.

[0315] In summary, the above description is merely an embodiment of the technical solution of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made according to the disclosure of the present invention should be included within the scope of protection of the present invention.

Claims

1. A patching method characterized by, A server applied to a first patch system, the first patch system comprising: a server, a plurality of electronic devices, the electronic devices being installed with a first application; the method comprising: The server generates first differential data by difference according to the first application on a third electronic device and a first patch package; the first patch package is used to upgrade the first application on a first electronic device; the third electronic device is an electronic device in the plurality of electronic devices, and the installed first application coincides with the first patch package; the plurality of electronic devices comprises the first electronic device and the third electronic device; The server sends the first differential data to a second electronic device; the plurality of electronic devices further comprises the second electronic device; the second electronic device is used to restore the first patch package according to the first differential data and a first software module in the first application on the third electronic device; the first software module coincides with the first patch package; and the second electronic device is used to send the first patch package to the first electronic device.

2. The method of claim 1, wherein, The coincidence specifically comprises: The code of the first application and the code of the first patch package have the same method and variable.

3. The method according to any one of claims 1-2, characterized in that, The third electronic device is an electronic device in the plurality of electronic devices, and the installed first application coincides with the first patch package to the highest degree or to a degree higher than a first threshold.

4. The method of claim 3, wherein, The coincidence degree of the installed first application on the third electronic device and the first patch package = (number of same methods + number of same variables) / (total number of methods + total number of variables), Wherein, the same method is a method that exists in both the installed first application on the third electronic device and the first patch package, the same variable is a variable that exists in both the installed first application on the third electronic device and the first patch package, the total number of methods is the difference between the sum of all methods in the installed first application on the third electronic device and the first patch package and the number of same methods, and the total number of variables is the difference between the sum of all variables in the installed first application on the third electronic device and the first patch package and the number of same variables.

5. The method of claim 4, wherein, If the platform-level coincidence degree of the installed first application on the third electronic device and the first patch package is the same as the platform-level coincidence degree of the installed first application on another electronic device in the plurality of electronic devices and the first patch package, the application-level coincidence degree of the installed first application on the third electronic device and the first patch package is higher than the application-level coincidence degree of the installed first application on another electronic device in the plurality of electronic devices and the first patch package, Wherein, the platform-level coincidence degree = (number of same platform-level methods + number of same platform-level variables) / (total number of methods + total number of variables), and the application-level coincidence degree = (number of same application-level methods + number of same application-level variables) / (total number of methods + total number of variables).

6. The method of claim 4, wherein, If the application level coincidence degree of the first application program installed on the third electronic device and the first patch package is same as the application level coincidence degree of the first application program installed on another electronic device in the plurality of electronic devices and the first patch package, then the platform level coincidence degree of the first application program installed on the third electronic device and the first patch package is higher than the platform level coincidence degree of the first application program installed on another electronic device in the plurality of electronic devices and the first patch package, Wherein, the platform level coincidence degree=(the number of same platform level methods+the number of same platform level variables) / (the total number of methods+the total number of variables), and the application level coincidence degree=(the number of same application level methods+the number of same application level variables) / (the total number of methods+the total number of variables).

7. The method according to any one of claims 1 to 6, characterized in that, One or more software modules in the first application program installed on the third electronic device coincide with the software modules in the first patch package.

8. The method of claim 7, wherein, One or more software modules in the first application program installed on the third electronic device coincide with the software modules in the first patch package, specifically including that the first application program installed on the third electronic device and the first patch package have the same binary code.

9. A patching method characterized by, The method is applied to a first electronic device in a first patch system, the first patch system comprising a server, a plurality of electronic devices, the electronic devices being installed with a first application program, and the plurality of electronic devices comprising the first electronic device; the method comprising: The first electronic device receives a first patch package sent by a second electronic device; the plurality of electronic devices further comprise the second electronic device, the first patch package being restored by the second electronic device using first differential data and a first software module in a first application program on a third electronic device, the plurality of electronic devices further comprising the third electronic device, the third electronic device being an electronic device in the plurality of electronic devices, the installed first application program coinciding with the first patch package; the first differential data being generated by the server by differentiating the first application program on the third electronic device and the first patch package, and being sent to the second electronic device; The first electronic device upgrades the first application program installed thereon using the first patch package.

10. A patching method characterized by, The method is applied to a second electronic device in a first patch system, the first patch system comprising a server, a plurality of electronic devices, the electronic devices being installed with a first application program, and the plurality of electronic devices comprising the second electronic device; the method comprising: The second electronic device receives first differential data sent by the server; the first differential data being generated by the server by differentiating a first application program on a third electronic device and a first patch package; the first patch package being used to upgrade the first application program on a first electronic device; the third electronic device being an electronic device in the plurality of electronic devices, the installed first application program coinciding with the first patch package; the plurality of electronic devices further comprising the first electronic device and the third electronic device. The second electronic device restores the first patch package according to the first differential data and a first software module in a first application program on the third electronic device; the first software module has an overlap with the first patch package; The second electronic device sends the first patch package to the first electronic device.

11. The method of claim 10, wherein, The overlap specifically includes: The code of the first application program and the code of the first patch package have the same method and variable.

12. The method according to any one of claims 10-11, characterized in that, The third electronic device is an electronic device in the plurality of electronic devices, and a first application program installed on the third electronic device has the highest overlap or an overlap higher than a first threshold with the first patch package.

13. The method of claim 12, wherein, The overlap of the first application program installed on the third electronic device with the first patch package = (number of same methods + number of same variables) / (total number of methods + total number of variables), Wherein, the same method is a method that is in both the first application program installed on the third electronic device and the first patch package, the same variable is a variable that is in both the first application program installed on the third electronic device and the first patch package, the total number of methods is a difference between a sum of all methods in the first application program installed on the third electronic device and the first patch package and the number of same methods, and the total number of variables is a difference between a sum of all variables in the first application program installed on the third electronic device and the first patch package and the number of same variables.

14. The method of claim 13, wherein, If the platform-level overlap of the first application program installed on the third electronic device with the first patch package is the same as the platform-level overlap of a first application program installed on another electronic device in the plurality of electronic devices with the first patch package, then the application-level overlap of the first application program installed on the third electronic device with the first patch package is higher than the application-level overlap of the first application program installed on the another electronic device in the plurality of electronic devices with the first patch package, Wherein, the platform-level overlap = (number of same platform-level methods + number of same platform-level variables) / (total number of methods + total number of variables), and the application-level overlap = (number of same application-level methods + number of same application-level variables) / (total number of methods + total number of variables).

15. The method of claim 13, wherein, If the application-level overlap of the first application program installed on the third electronic device with the first patch package is the same as the application-level overlap of a first application program installed on another electronic device in the plurality of electronic devices with the first patch package, then the platform-level overlap of the first application program installed on the third electronic device with the first patch package is higher than the platform-level overlap of the first application program installed on the another electronic device in the plurality of electronic devices with the first patch package, Wherein, the platform-level overlap = (number of same platform-level methods + number of same platform-level variables) / (total number of methods + total number of variables), and the application-level overlap = (number of same application-level methods + number of same application-level variables) / (total number of methods + total number of variables).

16. The method according to any one of claims 10-15, characterized in that, The one or more software modules in the first application program installed on the third electronic device coincide with the software modules in the first patch package.

17. The method of claim 10, wherein, The one or more software modules in the first application program installed on the third electronic device coincide with the software modules in the first patch package, specifically including that the first application program installed on the third electronic device and the first patch package have the same binary code.

18. A patching method characterized by, The third electronic device applied to the first patch system, the first patch system comprising: a server, a plurality of electronic devices, the electronic devices being installed with a first application program, the plurality of electronic devices comprising the third electronic device, a second electronic device, a first electronic device; the method comprising: The third electronic device sends a first data package to the second electronic device, the first data package comprising a first software module in the first application program installed on the third electronic device, the first software module coinciding with a first patch package; The first patch package is restored by the second electronic device using first differential data and the first software module in the first application program on the third electronic device, the third electronic device being an electronic device in the plurality of electronic devices, the installed first application program coinciding with the first patch package; the first differential data is generated by the server by differentiating the first application program on the third electronic device and the first patch package, and is sent to the second electronic device; the second electronic device is configured to restore the first patch package according to the first differential data and the first software module in the first application program on the third electronic device; and the second electronic device is further configured to send the first patch package to the first electronic device.

19. A patch system characterized in that The patch system comprises: a server, a plurality of electronic devices, the electronic devices being installed with a first application program; wherein: The server is configured to generate first differential data by differentiating the first application program on the third electronic device and the first patch package; the first patch package is configured to upgrade the first application program on the first electronic device; the third electronic device is an electronic device in the plurality of electronic devices, the installed first application program coinciding with the first patch package; the plurality of electronic devices comprise the first electronic device and the third electronic device; The server is configured to send the first differential data to the second electronic device; the plurality of electronic devices further comprise the second electronic device; The second electronic device is configured to restore the first patch package according to the first differential data and a first software module in the first application program on the third electronic device; the first software module coincides with the first patch package; The second electronic device is configured to send the first patch package to the first electronic device; The first electronic device is configured to upgrade the first application program installed thereon using the first patch package.

20. The system of claim 19, wherein, The third electronic device is an electronic device in the plurality of electronic devices, the installed first application program coinciding with the first patch package to the highest degree or having a coincidence degree higher than a first threshold.

21. A server, comprising: Comprise: A communication device, a memory, and a processor coupled to the memory, a plurality of applications, and one or more programs; The processor, when executing the one or more programs, causes the server to implement the method of any one of claims 1-8.

22. An electronic device, comprising: Comprising: A communication device, a memory, and a processor coupled to the memory, a plurality of applications, and one or more programs; The processor, when executing the one or more programs, causes the electronic device to implement the method of any one of claims 9-18.

23. A computer-readable storage medium comprising instructions, wherein: The instructions, when executed on the electronic device, cause the electronic device to perform the method of any one of claims 1-18.

Citation Information

Patent Citations

  • Software upgrading method, terminal equipment and server

    CN109828770A

  • System and method for implementing a filesystem agent management solution

    US20210149682A1