CN115080088A - Software upgrading method, system and medium based on OTA technology - Google Patents

Software upgrading method, system and medium based on OTA technology Download PDF

Info

Publication number
CN115080088A
CN115080088A CN202210802867.3A CN202210802867A CN115080088A CN 115080088 A CN115080088 A CN 115080088A CN 202210802867 A CN202210802867 A CN 202210802867A CN 115080088 A CN115080088 A CN 115080088A
Authority
CN
China
Prior art keywords
client
upgrade
software
data
upgrading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210802867.3A
Other languages
Chinese (zh)
Other versions
CN115080088B (en
Inventor
唐利来
徐林浩
龙步新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BDstar Intelligent and Connected Vehicle Technology Co Ltd
Original Assignee
BDstar Intelligent and Connected Vehicle Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BDstar Intelligent and Connected Vehicle Technology Co Ltd filed Critical BDstar Intelligent and Connected Vehicle Technology Co Ltd
Priority to CN202210802867.3A priority Critical patent/CN115080088B/en
Publication of CN115080088A publication Critical patent/CN115080088A/en
Application granted granted Critical
Publication of CN115080088B publication Critical patent/CN115080088B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

The invention discloses a software upgrading method, a system and a medium based on an OTA technology, wherein the method comprises the following steps: the server side carries out coding encryption on the upgrade file package and generates corresponding update notification information to be sent to the client side, the client side compares the update notification information with installed software to judge whether software update is carried out or not, if the software update is carried out, the encrypted upgrade data is received to be decrypted, the upgrade file package is obtained through restoration and is verified, and if the verification is passed, the system is restarted to complete software upgrade update according to the upgrade file package. By the method, the upgrade file packet is encoded and encrypted to obtain the encrypted upgrade data for transmission, the data transmission safety can be greatly improved, the client performs verification after the upgrade file packet is restored and obtained, software upgrade is performed only after the verification is passed, software upgrade can be performed on the client only after the upgrade file packet is ensured to be abnormal, and therefore the reliability of software upgrade is improved.

Description

Software upgrading method, system and medium based on OTA technology
Technical Field
The invention relates to the technical field of Internet of things, in particular to a software upgrading method, a system and a medium based on an OTA technology.
Background
Vehicle-mounted terminal equipment is usually installed in an automobile, and the vehicle-mounted terminal equipment can be used as internet of things equipment to access the internet; with the development of intellectualization and networking of automobiles, the software updating speed is faster and faster, and the OTA upgrading technology is widely applied to the vehicle-mounted terminals of the automobiles. The vehicle-mounted terminal upgraded by the OTA relates to a plurality of use functions such as a driving system and an entertainment system, and the vehicle-mounted terminal can be safely and smoothly upgraded every time by the OTA, so that the integrity and the accuracy of software in the vehicle-mounted terminal after each upgrade are ensured.
The vehicle-mounted terminal in the vehicle machine is upgraded in two modes, wherein one mode is that an upgrade package is placed in a USB flash disk to upgrade a popup frame. One is to put the upgrade package in the background server, download the upgrade package in the local folder of the vehicle-mounted terminal, and then upgrade. For the mass-produced automobile, the vehicle-mounted terminal is often embedded in the automobile, so that OTA online upgrade can be performed only on the vehicle-mounted terminal in the user automobile, but due to the fact that a server side, a client side, upgrade data transmission and the like are involved in the OTA upgrade process, upgrade is easy to cause abnormity, and due to the fact that the reliability of the upgrade process is low, the integrity of software functions in the whole vehicle-mounted terminal and the safety of vehicle driving are affected. And if the OTA upgrading process fails, a plurality of functions of the car machine cannot be normally used, after-sales personnel are required to upgrade the USB flash disk to recover the software program installed in the car terminal, so that the efficiency is low, and the normal operation of the car terminal cannot be quickly recovered. Therefore, the problem of low reliability of the upgrading process exists when software is upgraded by the OTA technology in the prior art method.
Disclosure of Invention
The embodiment of the invention provides a software upgrading method, a system and a medium based on an OTA technology, aiming at solving the problem of low upgrading processing reliability when software is upgraded by the OTA technology in the prior art.
In a first aspect, an embodiment of the present invention provides a software upgrading method based on an OTA technology, where the method is applied to a software upgrading system based on an OTA technology, the system includes a server and a client, and the server is in network connection with the client to implement data information transmission;
the method comprises the following steps executed at the server side:
if a newly added upgrade file package is received, generating update notification information corresponding to the upgrade file package and sending the update notification information to the client;
encoding and encrypting the upgrade file packet to obtain corresponding encrypted upgrade data;
if an updating request from the client is received, sending the encrypted upgrading data to the client;
sending a file packet checking instruction to the client to obtain a checking result fed back by the client;
if the check result is passed, sending a restart instruction to the client;
the method further comprises the following steps performed at the client:
comparing and judging the received update notification information with the installed software to obtain a judgment result of whether software upgrading is performed or not;
if the judgment result is that software upgrading is carried out, an updating request is sent to the server side;
receiving encrypted upgrading data from the server side according to a communication interface in the software version information;
decrypting the encrypted upgrading data to restore to obtain a corresponding upgrading file packet;
verifying the upgrade file package according to the received file package verifying instruction to obtain a verification result of whether the upgrade file package passes or not and feeding the verification result back to the server side;
and if a restart instruction from the server side is received, restarting the system to update the software according to the upgrade file package.
In a second aspect, an embodiment of the present invention provides a software upgrading system based on an OTA technology, which includes a server and a client, where the server and the client are connected via a network to implement transmission of data information;
the system comprises the following units configured at the server side:
the update notification information sending unit is used for generating update notification information corresponding to the upgrade file package and sending the update notification information to the client if the newly added upgrade file package is received;
the file package encryption unit is used for encoding and encrypting the upgrade file package to obtain corresponding encrypted upgrade data;
the encrypted upgrading data sending unit is used for sending the encrypted upgrading data to the client if an updating request from the client is received;
the file packet checking instruction sending unit is used for sending a file packet checking instruction to the client so as to obtain a checking result fed back by the client;
the restarting instruction sending unit is used for sending a restarting instruction to the client if the checking result is that the restarting instruction passes;
the system also comprises the following units configured at the client:
the comparison judging unit is used for comparing and judging the received update notification information with the installed software to obtain a judgment result of whether to upgrade the software;
an update request sending unit, configured to send an update request to the server if the determination result indicates that software upgrade is performed;
the encrypted upgrading data receiving unit is used for receiving encrypted upgrading data from the server side according to a communication interface in the software version information;
the decryption unit is used for decrypting the encrypted upgrading data to restore and obtain a corresponding upgrading file packet;
the verification result feedback unit is used for verifying the upgrade file package according to the received file package verification instruction to obtain a verification result which is passed or not and feeding the verification result back to the server side;
and the restarting unit is used for restarting the system to update the software according to the upgrading file package if a restarting instruction from the server side is received.
In a third aspect, an embodiment of the present invention further provides a software upgrading system based on OTA technology, which includes a server and a client, where the server includes a first memory, a first processor, and a first computer program stored in the first memory and executable on the first processor, and the client includes a second memory, a second processor, and a second computer program stored in the second memory and executable on the second processor, where the first processor executes the first computer program and the second processor executes the second computer program, which collectively implement the software upgrading method based on OTA technology according to the first aspect.
In a fourth aspect, an embodiment of the present invention further provides a computer-readable storage medium, where the computer-readable storage medium stores a first computer program and a second computer program, and when the first computer program is executed by a first processor and the second computer program is executed by a second processor, the first computer program and the second computer program jointly implement the OTA technology based software upgrading method described in the first aspect.
The embodiment of the invention provides a software upgrading method, a system and a medium based on an OTA technology. The method comprises the following steps: the server side encodes and encrypts the upgrade file package and generates corresponding update notification information to be sent to the client side, the client side compares the update notification information with installed software to judge whether software update is performed, if the software update is performed, the encrypted upgrade data is received and decrypted, the upgrade file package is obtained through restoration and verified, and if the verification is passed, the system is restarted to complete software upgrade update according to the upgrade file package. By the method, the upgrade file packet is encoded and encrypted to obtain the encrypted upgrade data for transmission, the data transmission safety can be greatly improved, the client performs verification after the upgrade file packet is restored and obtained, software upgrade is performed only after the verification is passed, software upgrade can be performed on the client only after the upgrade file packet is ensured to be abnormal, and therefore the reliability of software upgrade is improved.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings needed to be used in the description of the embodiments are briefly introduced below, and it is obvious that the drawings in the following description are some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
Fig. 1 is a schematic flowchart of a software upgrading method based on OTA technology according to an embodiment of the present invention;
fig. 2 is a schematic view of an application scenario of a software upgrading method based on OTA technology according to an embodiment of the present invention;
fig. 3 is a sub-flow diagram of a software upgrading method based on OTA technology according to an embodiment of the present invention;
fig. 4 is another sub-flow diagram of a software upgrading method based on OTA technology according to an embodiment of the present invention;
fig. 5 is a schematic sub-flow chart of a software upgrading method based on OTA technology according to an embodiment of the present invention;
fig. 6 is a schematic diagram of a later sub-flow of the software upgrading method based on the OTA technology according to the embodiment of the present invention;
fig. 7 is another schematic flowchart of a software upgrading method based on OTA technology according to an embodiment of the present invention;
fig. 8 is a schematic flowchart of a software upgrading method based on OTA technology according to an embodiment of the present invention;
fig. 9 is a schematic block diagram of a software upgrade system based on OTA technology provided by an embodiment of the present invention;
FIG. 10 is a schematic block diagram of a computer device provided by an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
It will be understood that the terms "comprises" and/or "comprising," when used in this specification and the appended claims, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It is also to be understood that the terminology used in the description of the invention herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used in the specification of the present invention and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.
It should be further understood that the term "and/or" as used in this specification and the appended claims refers to and includes any and all possible combinations of one or more of the associated listed items.
Referring to fig. 1 and fig. 2, fig. 1 is a schematic flowchart of a software upgrading method based on an OTA technology according to an embodiment of the present invention, and fig. 2 is a schematic application scenario diagram of the software upgrading method based on the OTA technology according to the embodiment of the present invention; the software upgrading method based on the OTA technology is applied to a software upgrading system based on the OTA technology, the system comprises a server terminal 10 and a client terminal 20, the server terminal 10 is in network connection with the client terminal 20 to realize the transmission of data information, and the software upgrading method based on the OTA technology is executed through application software installed in the client terminal 20 and the server terminal 10; the server 10 is a server device, such as a server built in an enterprise or a government department, for executing a software upgrading method based on the OTA technology to obtain information fed back by the client 20 and sending instructions and encrypted upgrading data to the client 20 to upgrade a software program in the client 20; the client 20 is a terminal device for performing the OTA technology-based software upgrading method to feed back the request information and receive the encrypted upgrade data to upgrade the system software program, the client 20 may be a vehicle-mounted terminal installed in the vehicle, and the client 20 may also be another internet of things terminal similar to the vehicle-mounted terminal, such as a smart speaker, a smart television, and the like. Fig. 2 only illustrates one client 20 and the server 20 for information transmission, and in practical applications, the server 20 may also establish communication connections with multiple clients 10 at the same time to implement data information transmission. As shown in fig. 1, the method includes steps S110 to S210.
S110, if the server side receives the newly added upgrade file package, generating update notification information corresponding to the upgrade file package and sending the update notification information to the client side.
The operation and maintenance personnel can input the upgrade file package to the server side, the newly added upgrade file package is also the newly added upgrade file package, the upgrade file package can be a file package used for upgrading the MCU module in the client side, and the server side can generate corresponding update notification information according to the upgrade file package and broadcast the update notification information to one or more client sides. For example, the server may obtain information such as a program version number, a newly added time, and an operation and maintenance staff code of the upgrade file package, and generate corresponding update notification information according to the obtained information, where the update notification information at least includes the program version number.
And S120, the server side encodes and encrypts the upgrade file packet to obtain corresponding encrypted upgrade data.
In order to improve the transmission efficiency of the upgrade file package, the server side can encode and encrypt the upgrade file package to obtain encrypted upgrade data and then transmit the encrypted upgrade data.
In an embodiment, as shown in fig. 3, step S120 includes sub-steps S121, S122, S123 and S124.
And S121, framing the upgrade file package to obtain corresponding file frames, wherein each file frame contains data information equal to the preset unit data quantity.
Specifically, the server may perform framing processing on the upgrade file package to obtain a plurality of file frames, each file frame may include data information of a preset unit data amount, and one file frame may correspond to one complete information transmission fragment. For example, the preset unit data amount may be 512 bytes or 1024 bytes, and in order to improve the data transmission efficiency of the upgrade file package, a larger unit data amount may be set, so that the data amount sent to the client at each time is correspondingly increased, thereby reducing the overall transmission time of the upgrade file package.
And S122, respectively generating a check code corresponding to each file frame according to a preset check code generation rule.
The check code corresponding to each file frame can be generated according to the check code generation rule, and each file frame corresponds to one check code. For example, each character in the file frame may be summed to obtain a checksum (checksum), the checksum may occupy a length of two characters, and the obtained checksum may be used as a check code corresponding to the file frame.
In other embodiments, the manner of generating the check code may also be that each character in the first file frame is summed to obtain a sum check code as the check code of the file frame, the sum check code of the second file frame and the sum check code of the first file frame are summed, and the obtained result is used as the check code of the second file frame; that is, the sum check code of the file frame and the sum check code of the previous file frame are added and calculated, and the obtained result is used as the check code of the current file frame. When the check code of each file frame is checked after the subsequent client receives data, if the previous file frame is missing, the client check code corresponding to the current file frame cannot be accurately calculated, that is, the check code of the current file frame cannot be checked to pass, so that the missing detection of the file frame is realized in real time, the client can immediately check the integrity of the received file while calculating the check code, and the reliability of the file frame transmission process is further improved.
And S123, adding the check code to the tail corresponding to the file frame to obtain initial upgrading data corresponding to each file frame.
And adding the check code to the end of the file frame corresponding to the check code, namely adding a plurality of characters at the end of the file frame to obtain initial upgrading data corresponding to the file frame. For example, when a checksum of two character lengths is used as the check code, two characters are added at the end of the file frame, and the value of the checksum is added to the positions of the two added characters, so that an initial upgrade data can be obtained for each file frame.
And S124, encrypting the initial upgrading data respectively according to preset encryption rules to obtain corresponding encrypted upgrading data.
And encrypting each initial upgrade data according to the encryption rule to obtain the encrypted upgrade data corresponding to each initial upgrade data. Specifically, the encryption rule may be a COBS encoding encryption rule, a COBS (constant Overhead Byte Stuffing) is a fixed Overhead Byte Stuffing algorithm, the Byte Stuffing is used for processing character sequence codes containing special or reserved characters, an encoded character sequence is generated at the length +1 of an original character sequence through a certain algorithm, a new sequence will not contain the special or reserved characters appearing in the previous sequence, the initial upgrade data is encrypted through the encoding process, and the original information in the data transmission process is ensured not to be leaked due to the lack of few characters in the obtained encrypted upgrade data, so that the security of the encrypted upgrade data in the transmission process is improved.
S130, the client compares and judges the received update notification information with the installed software to obtain a judgment result of whether to upgrade the software.
After receiving the update notification information from the server, the client may compare and determine the update notification information with software installed in the client, specifically, may obtain a program version number in the update notification information, obtain a vehicle-mounted version number of the installed software, and compare and determine the program version number with the vehicle-mounted version number, thereby obtaining a determination result of whether to perform software upgrade.
For example, the program version number is B, the vehicle-mounted version number is a, and if B is greater than a, the version number of the upgrade file package is considered to be higher than the version number of the installed software, that is, the installed software in the client needs to be updated and upgraded, if the update prompt information is displayed in the client, the user only needs to click the client to perform the subsequent updating process; if B is not larger than A, the version number of the upgrade file package is not higher than the version number of the installed software, and the installed software in the client does not need to be updated and upgraded.
And S140, if the judgment result is that the software is upgraded, the client sends an updating request to the server.
If the judgment result is that the software is upgraded, the client can send an update request to the server, wherein the update request is request information for updating the software program in the client. Specifically, if the judgment result is that software is upgraded, the client can directly send an update request to the server; or, if the judgment result is that the software is upgraded, the update prompt information is displayed, and the user sends the update request to the server after clicking and confirming.
S150, if the server side receives the updating request from the client side, the server side sends the encrypted upgrading data to the client side.
And after receiving the updating request from any client, the server side can send the encrypted updating data generated in the steps to the client.
In addition, the management server may send a data erasure command to the corresponding client before sending the encrypted upgrade data to the client. After receiving the data erasing instruction, the client can erase the Flash storage medium so as to erase the data stored in the Flash storage medium.
In one embodiment, as shown in FIG. 4, step S150 includes sub-steps S151 and S152.
S151, obtaining a copy of the encrypted upgrading data, sending the encrypted upgrading data to the client, and obtaining receiving information fed back by the client after sending the encrypted upgrading data; and S152, if receiving information fed back by the client, sequentially obtaining a next part of the encrypted upgrading data and sending the next part of the encrypted upgrading data to the client until all the encrypted upgrading data are sent.
Specifically, since the upgrade file package is split in the above steps to obtain multiple copies of encrypted upgrade data, the server may sequentially obtain the encrypted upgrade data and send the encrypted upgrade data to the client, that is, the server sends the data in the upgrade file package to the client in a frame-by-frame manner.
Waiting for a certain time correspondingly every time when sending a piece of encrypted upgrading data; the client receives a copy of encrypted upgrade data, namely, a copy of successfully received receiving information can be correspondingly fed back to the server, and if the management server receives the receiving information fed back by the client within a preset time (such as 2 seconds), the next copy of encrypted upgrade data is obtained and sent until all encrypted upgrade data are sent; if the management server does not receive the receiving information fed back by the client within the preset time, the management server can repeatedly send the current encrypted upgrading data, and repeatedly send the receiving information which is not fed back by the client for five times, the client is considered to be failed in upgrading, and a restarting instruction can be sent to the client to restart the client.
And S160, the client receives the encrypted upgrading data from the server according to the communication interface in the software version information.
The software version information also comprises communication interfaces, namely data transmission interfaces corresponding to newly-added upgrade file packages, and each upgrade file package can correspond to different communication interfaces so as to isolate transmission paths of different upgrade file packages; the client can sequentially receive a plurality of copies of encrypted upgrading data sent by the server according to the communication interface and store the received encrypted upgrading data into a flash storage medium (flash memory). The client correspondingly feeds back a piece of receiving information to the server end every time the client receives an encrypted upgrading data; meanwhile, the client can correspondingly generate an upgrading progress bar according to the proportion of the received encrypted upgrading data to display in a display module of the client, and a user can master the whole progress of the software upgrading process by looking at the upgrading progress bar displayed in the display module.
S170, the client decrypts the encrypted upgrading data to restore and obtain a corresponding upgrading file package.
After the client end finishes receiving a copy of encrypted upgrading data, the client end can decrypt the received copy of encrypted upgrading data immediately, namely, the client end decrypts the received data while receiving the data; the decryption means that the encrypted upgrade data is restored, and the upgrade file package can be obtained by restoring all the encrypted upgrade data after decryption. In addition, the client can also uniformly decrypt the received encrypted upgrade data after receiving all the encrypted upgrade data.
In one embodiment, as shown in FIG. 5, step S170 includes sub-steps S171 and S172.
S171, decrypting each part of the encrypted upgrading data respectively according to a preset decryption rule to obtain decryption data corresponding to each part of the encrypted upgrading data.
Specifically, the client may decrypt the received encrypted upgrade data according to a decryption rule, where the decryption rule corresponds to the encryption rule, the implementation process of data decryption is an inverse operation process of the data encryption process, and the decrypted data corresponding to each encrypted upgrade data may be obtained through decryption.
And S172, sequentially integrating the decrypted data to restore and obtain a corresponding upgrade file package.
The obtained decrypted data can be sequentially integrated according to the receiving sequence of the encrypted upgrading data, and thus the upgrading file package containing all the data files is finally obtained through restoration. The client can store the obtained upgrade file package into a Flash storage medium.
In an embodiment, as shown in fig. 6, step S170 further includes sub-steps S1721 and S1722.
S1721, generating a client check code corresponding to each decrypted data according to the check code generation rule.
The client check code corresponding to each decrypted data can be generated according to the check code generation rule. For example, the values corresponding to the last two characters in the decrypted data may be removed, and the remaining decrypted data may be summed to obtain a sum check code, where the generated sum check code is the client check code corresponding to the decrypted data, and each decrypted data may correspond to one client check code.
In another embodiment, the sum of the previous-segment characters in the first decrypted data is added to obtain a sum check code as the client-side check code of the decrypted data, the sum of the previous-segment characters in the second decrypted data and the sum of the previous-segment characters in the first decrypted data are added to calculate, and the obtained result is used as the client-side check code of the second decrypted data; that is, the checksum of the decrypted data is added to the checksum of the previous decrypted data, and the result is used as the client-side checksum of the current decrypted data.
S1722, judging whether the client check codes corresponding to the decrypted data are the same as the check codes in the decrypted data so as to obtain a data check result of whether an error occurs or not; and if the data verification result is that no error exists, executing the step of sequentially integrating the decrypted data to restore and obtain the corresponding upgrade file package.
Judging whether the client check code of the decrypted data is the same as the check code contained in the decrypted data or not, and if the client check code of each decrypted data is the same as the check code, obtaining a data check result without errors; and if the client check code of any decrypted data is different from the check code, obtaining a data check result with an error.
If the data verification result is that no error exists, executing the subsequent steps; if the data verification result is error, the encrypted upgrade data corresponding to the decrypted data which is verified to be error can be obtained again; that is, the client can generate a data retransmission request according to the decrypted data with errors in data verification, the server retransmits the corresponding encrypted upgrade data according to the data retransmission request of the client, and the client acquires the corresponding encrypted upgrade data again.
And S180, the server side sends a file packet checking instruction to the client side so as to obtain a checking result fed back by the client side.
After the server side completes sending of all encrypted upgrading data and correspondingly receives the receiving information fed back by the client side, the server side can also send a file package checking instruction to the client side, and the client side can check the obtained upgrading file package according to the file package checking instruction and feed back the obtained corresponding checking result to the server side.
And S190, the client checks the upgrade file package according to the received file package checking instruction, obtains a checking result of whether the upgrade file package passes or not, and feeds the checking result back to the server.
Specifically, the client can verify the obtained upgrade file package according to a file package verification instruction, the file package verification instruction can include information such as the total number of files of the upgrade file package, the data size and the like, and the upgrade file package restored by the client can be verified through the information in the file package verification instruction; the client can acquire the basic information of the upgrade file package obtained by decryption and restoration, and judge whether the basic information is the same as the information in the file package checking instruction, so that the integrity check of the upgrade file package obtained by restoration is realized at the client. If the basic information of the upgrade text packet obtained by the client side is the same as the information in the file packet verification instruction, a verification result that the verification is passed is obtained; otherwise, obtaining the verification result which is not verified.
In another embodiment, the file package check instruction does not include information such as the total number of files of the upgrade file package, the data size and the like, but includes a comprehensive check code obtained by summing the total check codes of all file frames, the client performs summing calculation on the total check codes of all decrypted data, and compares whether the obtained result is equal to the comprehensive check code in the file package check instruction, and if the result obtained by calculation at the client side is equal to the comprehensive check code, the check result that the check is passed is obtained; and if not, obtaining a verification result that the verification fails.
And S200, if the verification result is that the client passes, the server side sends a restart instruction to the client side.
And if the server receives the verification result that the verification passes, the server can send a restart instruction to the client.
And S210, if the client receives a restart instruction from the server, restarting the system to update the software according to the upgrade file package.
After the client receives the restart instruction, the restart instruction can be called to complete the restart of the system, and the system can update and install the software according to the upgrade file package, so that the software installed in the client is upgraded and updated.
In one embodiment, as shown in fig. 7, steps S211 and S212 are further included after step S210.
S211, judging whether the software is updated successfully; and S212, if the software is updated successfully, transferring the upgrade file package to a preset backup storage space for storage.
After the system is restarted, the client can judge whether the software is successfully updated, and if the software is successfully updated, the upgrade file package can be transferred to a pre-configured backup storage space for storage, wherein the backup storage space can be a space of a storage medium for persistently storing data in the client, such as a storage space in a hard disk.
In addition, the client can also feed back the information of successful update to the server, and the server can feed back a data erasing instruction to the corresponding client after receiving the information of successful update. After receiving the data erasing instruction, the client can erase the Flash storage medium so as to erase the upgrade file package and related data in the Flash storage medium.
In an embodiment, as shown in fig. 8, steps S213 and S214 are further included after step S211.
S213, if the software fails to be updated, feeding back corresponding failure information to the server; s214, if a backup upgrading instruction fed back by the server according to the failure information is received, acquiring the latest upgrading file package in the backup storage space and carrying out software upgrading again.
If the client judges that the software updating is failed, failure information can be fed back to the server, the server can send a backup upgrading instruction to the client after receiving the failure instruction, and the client can obtain the latest upgrading file package in the backup storage space to update the software again after receiving the backup upgrading instruction, namely, the software is reinstalled according to the latest upgrading file package stored so as to update the software in the client again.
In the OTA technology-based software upgrading method provided by the embodiment of the invention, the method comprises the following steps: the server side carries out coding encryption on the upgrade file package and generates corresponding update notification information to be sent to the client side, the client side compares the update notification information with installed software to judge whether software update is carried out or not, if the software update is carried out, the encrypted upgrade data is received to be decrypted, the upgrade file package is obtained through restoration and is verified, and if the verification is passed, the system is restarted to complete software upgrade update according to the upgrade file package. By the method, the upgrade file packet is encoded and encrypted to obtain the encrypted upgrade data for transmission, the data transmission safety can be greatly improved, the client performs verification after the upgrade file packet is restored and obtained, software upgrade is performed only after the verification is passed, software upgrade can be performed on the client only after the upgrade file packet is ensured to be free of abnormality, and therefore the reliability of software upgrade is improved.
The embodiment of the invention also provides a software upgrading system based on the OTA technology, which can be configured in the user terminal and the management server and is used for executing any embodiment of the software upgrading method based on the OTA technology. Specifically, referring to fig. 9, fig. 9 is a schematic block diagram of a software upgrading system based on OTA technology according to an embodiment of the present invention.
As shown in fig. 9, the software upgrading system 100 based on OTA technology includes the following units configured in the server 10: an update notification information sending unit 110, configured to generate, if a newly added upgrade file package is received, update notification information corresponding to the upgrade file package and send the update notification information to the client; a file package encryption unit 120, configured to encode and encrypt the upgrade file package to obtain corresponding encrypted upgrade data; an encrypted upgrade data sending unit 130, configured to send the encrypted upgrade data to the client if an update request from the client is received; a file packet verification instruction sending unit 140, configured to send a file packet verification instruction to the client, so as to obtain a verification result fed back by the client; a restart instruction sending unit 150, configured to send a restart instruction to the client if the verification result is that the client passes.
The OTA technology based software upgrade system 100 also includes the following elements configured in the client 20: a comparison determination unit 210, configured to perform comparison determination on the received update notification information and installed software to obtain a determination result of whether to perform software upgrade; an update request sending unit 220, configured to send an update request to the server if the determination result indicates that software upgrade is performed; an encrypted upgrade data receiving unit 230, configured to receive encrypted upgrade data from the server according to a communication interface in the software version information; a decryption unit 240, configured to decrypt the encrypted upgrade data to restore and obtain a corresponding upgrade file package; a verification result feedback unit 250, configured to verify the upgrade file package according to the received file package verification instruction, obtain a verification result that whether the upgrade file package passes or not, and feed the verification result back to the server; and the restarting unit 260 is configured to restart the system to update the software according to the upgrade file package if a restarting instruction from the server is received.
The software upgrading method based on the OTA technology is applied to the software upgrading system based on the OTA technology, and the method comprises the following steps: the server side encodes and encrypts the upgrade file package and generates corresponding update notification information to be sent to the client side, the client side compares the update notification information with installed software to judge whether software update is performed, if the software update is performed, the encrypted upgrade data is received and decrypted, the upgrade file package is obtained through restoration and verified, and if the verification is passed, the system is restarted to complete software upgrade update according to the upgrade file package. By the method, the upgrade file packet is encoded and encrypted to obtain the encrypted upgrade data for transmission, the data transmission safety can be greatly improved, the client performs verification after the upgrade file packet is restored and obtained, software upgrade is performed only after the verification is passed, software upgrade can be performed on the client only after the upgrade file packet is ensured to be abnormal, and therefore the reliability of software upgrade is improved.
The software upgrading method based on the OTA technology can be implemented in the form of a computer program, and both the client and the server in the software upgrading system based on the OTA technology can be implemented as a computer device, and the computer program can be run on the computer device as shown in fig. 10. The server side comprises a first memory, a first processor and a first computer program which is stored on the first memory and can run on the first processor, and the client side comprises a second memory, a second processor and a second computer program which is stored on the second memory and can run on the second processor; the computer device implemented by the server can run a computer program corresponding to a part of the method steps that can be executed at the server in the software upgrading method based on the OTA technology; the computer device realized by the client can run a computer program corresponding to part of the method steps which can be executed at the client in the software upgrading method based on the OTA technology.
Referring to fig. 10, fig. 10 is a schematic block diagram of a computer device according to an embodiment of the present invention. The computer device may be a user terminal or a server terminal for performing a software upgrade method based on OTA technology to upgrade a software program within a client.
Referring to fig. 10, the computer device 500 includes a processor 502, memory, and a network interface 505 connected by a system bus 501, where the memory may include a storage medium 503 and an internal memory 504.
The storage medium 503 may store an operating system 5031 and a computer program 5032. The computer programs 5032, when executed, may cause the processor 502 to perform a software upgrade method based on OTA technology, wherein the storage medium 503 may be a volatile storage medium or a non-volatile storage medium.
The processor 502 is used to provide computing and control capabilities that support the operation of the overall computer device 500.
The internal memory 504 provides an environment for the execution of the computer program 5032 in the storage medium 503, and when the computer program 5032 is executed by the processor 502, the processor 502 can be caused to perform a software upgrade method based on the OTA technology.
The network interface 505 is used for network communication, such as providing transmission of data information. It will be appreciated by those skilled in the art that the configuration shown in fig. 10 is a block diagram of only a portion of the configuration associated with aspects of the present invention, and is not intended to limit the computing device 500 to which aspects of the present invention may be applied, as a particular computing device 500 may include more or fewer components than shown, or may combine certain components, or have a different arrangement of components.
The processor 502 is configured to run a computer program 5032 stored in the memory to implement the corresponding functions in the software upgrading method based on the OTA technology.
Those skilled in the art will appreciate that the embodiment of a computer device illustrated in fig. 10 does not constitute a limitation on the specific construction of the computer device, and that in other embodiments a computer device may include more or fewer components than those illustrated, or some components may be combined, or a different arrangement of components. For example, in some embodiments, the computer device may only include a memory and a processor, and in such embodiments, the structures and functions of the memory and the processor are consistent with those of the embodiment shown in fig. 10, and are not described herein again.
It should be understood that, in the embodiment of the present invention, the Processor 502 may be a Central Processing Unit (CPU), and the Processor 502 may also be other general-purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) or other Programmable logic devices, discrete Gate or transistor logic devices, discrete hardware components, and the like. Wherein a general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
In another embodiment of the present invention, a computer-readable storage medium is provided. The computer readable storage medium may be a volatile or non-volatile computer readable storage medium. The computer readable storage medium stores a first computer program configured in a server and a second computer program configured in a client, where the server includes a first processor and the client includes a second processor, and when the first computer program is executed by the first processor and the second computer program is executed by the second processor, the first computer program and the second computer program jointly implement the steps included in the OTA technology-based software upgrading method.
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described apparatuses, devices and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again. Those of ordinary skill in the art will appreciate that the elements and algorithm steps of the examples described in connection with the embodiments disclosed herein may be embodied in electronic hardware, computer software, or combinations of both, and that the components and steps of the examples have been described in a functional general in the foregoing description for the purpose of illustrating clearly the interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the technical solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
In the several embodiments provided in the present invention, it should be understood that the disclosed apparatus, device and method may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only a logical division, and there may be other divisions in actual implementation, or units with the same function may be grouped into one unit, for example, multiple units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may also be an electric, mechanical or other form of connection.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one position, or may be distributed on multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment of the present invention.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention essentially contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product stored in a computer-readable storage medium, which includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned computer-readable storage media comprise: various media capable of storing program codes, such as a usb disk, a removable hard disk, a Read-Only Memory (ROM), a magnetic disk, or an optical disk.
While the invention has been described with reference to specific embodiments, the invention is not limited thereto, and various equivalent modifications and substitutions can be easily made by those skilled in the art within the technical scope of the invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

Claims (10)

1. A software upgrading method based on OTA technology is characterized in that the method is applied to a software upgrading system based on OTA technology, the system comprises a server side and a client side, and the server side and the client side are in network connection to realize data information transmission;
the method comprises the following steps executed at the server side:
if a newly added upgrade file package is received, generating update notification information corresponding to the upgrade file package and sending the update notification information to the client;
encoding and encrypting the upgrade file packet to obtain corresponding encrypted upgrade data;
if an updating request from the client is received, sending the encrypted upgrading data to the client;
sending a file packet checking instruction to the client to obtain a checking result fed back by the client;
if the check result is passed, sending a restart instruction to the client;
the method further comprises the following steps performed at the client:
comparing and judging the received update notification information with the installed software to obtain a judgment result of whether software upgrading is performed or not;
if the judgment result is that software upgrading is carried out, an updating request is sent to the server side;
receiving encrypted upgrading data from the server side according to a communication interface in the software version information;
decrypting the encrypted upgrading data to restore to obtain a corresponding upgrading file packet;
verifying the upgrade file package according to the received file package verifying instruction to obtain a verification result of whether the upgrade file package passes or not and feeding the verification result back to the server side;
and if a restart instruction from the server side is received, restarting the system to update the software according to the upgrade file package.
2. The OTA technology-based software upgrading method of claim 1, wherein the encoding and encrypting the upgrade file package to obtain corresponding encrypted upgrade data comprises:
framing the upgrade file package to obtain corresponding file frames, wherein each file frame comprises data information equal to the preset unit data quantity;
respectively generating a check code corresponding to each file frame according to a preset check code generation rule;
adding the check code to the tail corresponding to the file frame to obtain initial upgrading data corresponding to each file frame;
and encrypting the initial upgrading data respectively according to a preset encryption rule to obtain corresponding encrypted upgrading data.
3. The OTA technology-based software upgrade method of claim 1, wherein the sending the encrypted upgrade data to the client comprises:
acquiring a copy of the encrypted upgrading data, sending the encrypted upgrading data to the client, and acquiring receiving information fed back by the client after the encrypted upgrading data is sent;
and if receiving information fed back by the client, sequentially obtaining a next part of the encrypted upgrading data and sending the next part of the encrypted upgrading data to the client until all the encrypted upgrading data are sent.
4. The OTA technology-based software upgrading method of claim 2, wherein the decrypting the encrypted upgrade data to recover the corresponding upgrade file package comprises:
decrypting each part of the encrypted upgrading data respectively according to a preset decryption rule to obtain decryption data corresponding to each part of the encrypted upgrading data;
and sequentially integrating the decrypted data to restore and obtain a corresponding upgrade file package.
5. The OTA technology-based software upgrading method of claim 4, wherein before the sequentially integrating the decrypted data to restore and obtain the corresponding upgrade file package, further comprising:
generating a client check code corresponding to each decrypted data according to the check code generation rule;
judging whether the client check codes corresponding to the decrypted data are the same as the check codes in the decrypted data or not so as to obtain a data check result of whether errors exist or not;
and if the data verification result is that no error exists, executing the step of sequentially integrating the decrypted data to restore and obtain a corresponding upgrade file package.
6. The OTA technology-based software upgrade method according to claim 1, further comprising, after restarting the system to perform a software update according to the upgrade file package:
judging whether the software updating is successful;
and if the software is updated successfully, transferring the upgrade file package to a preset backup storage space for storage.
7. The OTA technology-based software upgrade method of claim 6, wherein after determining whether the software update was successful, further comprising:
if the software updating fails, feeding back corresponding failure information to the server;
and if a backup upgrading instruction fed back by the server according to the failure information is received, acquiring the latest upgrading file packet in the backup storage space and updating the software again.
8. A software upgrading system based on OTA technology is characterized by comprising a server and a client, wherein the server is in network connection with the client to realize data information transmission;
the system comprises the following units configured at the server side:
the update notification information sending unit is used for generating update notification information corresponding to the upgrade file package and sending the update notification information to the client if the newly added upgrade file package is received;
the file package encryption unit is used for encoding and encrypting the upgrade file package to obtain corresponding encrypted upgrade data;
the encrypted upgrading data sending unit is used for sending the encrypted upgrading data to the client if an updating request from the client is received;
the file packet checking instruction sending unit is used for sending a file packet checking instruction to the client so as to obtain a checking result fed back by the client;
the restarting instruction sending unit is used for sending a restarting instruction to the client if the checking result is that the restarting instruction passes;
the system also comprises the following units configured at the client:
the comparison judging unit is used for comparing and judging the received update notification information with the installed software to obtain a judgment result of whether to upgrade the software;
an update request sending unit, configured to send an update request to the server if the determination result indicates that software upgrade is performed;
the encrypted upgrading data receiving unit is used for receiving encrypted upgrading data from the server side according to a communication interface in the software version information;
the decryption unit is used for decrypting the encrypted upgrading data to restore and obtain a corresponding upgrading file packet;
the verification result feedback unit is used for verifying the upgrade file package according to the received file package verification instruction to obtain a verification result which is passed or not and feeding the verification result back to the server side;
and the restarting unit is used for restarting the system to update the software according to the upgrading file package if a restarting instruction from the server side is received.
9. A software upgrade system based on OTA technology, comprising a server and a client, the server comprising a first memory, a first processor and a first computer program stored on the first memory and executable on the first processor, the client comprising a second memory, a second processor and a second computer program stored on the second memory and executable on the second processor, characterized in that the first processor executes the first computer program and the second processor executes the second computer program to jointly implement the OTA technology based software upgrade method according to any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that it stores a first computer program and a second computer program which, when executed by a first processor and by a second processor, together implement a method for software upgrade based on OTA technology as claimed in one of claims 1 to 7.
CN202210802867.3A 2022-07-07 2022-07-07 Software upgrading method, system and medium based on OTA technology Active CN115080088B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210802867.3A CN115080088B (en) 2022-07-07 2022-07-07 Software upgrading method, system and medium based on OTA technology

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210802867.3A CN115080088B (en) 2022-07-07 2022-07-07 Software upgrading method, system and medium based on OTA technology

Publications (2)

Publication Number Publication Date
CN115080088A true CN115080088A (en) 2022-09-20
CN115080088B CN115080088B (en) 2024-08-09

Family

ID=83256989

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210802867.3A Active CN115080088B (en) 2022-07-07 2022-07-07 Software upgrading method, system and medium based on OTA technology

Country Status (1)

Country Link
CN (1) CN115080088B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115794059A (en) * 2022-12-14 2023-03-14 江苏恒德网络科技有限公司 Database software development method based on database index perception
CN116056045A (en) * 2023-03-31 2023-05-02 江铃汽车股份有限公司 AB point customer parking remote upgrading method and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603311A (en) * 2017-01-18 2017-04-26 北京洋浦伟业科技发展有限公司 OTA upgrade method, client, server and system
CN112256253A (en) * 2020-11-12 2021-01-22 北斗星通智联科技有限责任公司 Code generation method and device, electronic equipment and computer readable storage medium
CN112751699A (en) * 2019-10-31 2021-05-04 阿里巴巴集团控股有限公司 OTA upgrade and upgrade management method, device, network and storage medium
CN113467804A (en) * 2021-07-01 2021-10-01 江苏希塔信息科技有限公司 Method for realizing Internet of things equipment upgrading based on batch air upgrading

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603311A (en) * 2017-01-18 2017-04-26 北京洋浦伟业科技发展有限公司 OTA upgrade method, client, server and system
CN112751699A (en) * 2019-10-31 2021-05-04 阿里巴巴集团控股有限公司 OTA upgrade and upgrade management method, device, network and storage medium
CN112256253A (en) * 2020-11-12 2021-01-22 北斗星通智联科技有限责任公司 Code generation method and device, electronic equipment and computer readable storage medium
CN113467804A (en) * 2021-07-01 2021-10-01 江苏希塔信息科技有限公司 Method for realizing Internet of things equipment upgrading based on batch air upgrading

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孟念阳;马旭东;房芳;董自权;徐新;: "基于云技术的医疗分析仪操作管理软件升级系统", 工业控制计算机, no. 04, 25 April 2019 (2019-04-25) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115794059A (en) * 2022-12-14 2023-03-14 江苏恒德网络科技有限公司 Database software development method based on database index perception
CN115794059B (en) * 2022-12-14 2023-12-19 江苏恒德网络科技有限公司 Database software development method based on database index perception
CN116056045A (en) * 2023-03-31 2023-05-02 江铃汽车股份有限公司 AB point customer parking remote upgrading method and system

Also Published As

Publication number Publication date
CN115080088B (en) 2024-08-09

Similar Documents

Publication Publication Date Title
CN115080088B (en) Software upgrading method, system and medium based on OTA technology
US8844049B2 (en) Method for generating a cryptographic key for a protected digital data object on the basis of current components of a computer
JP2006508432A (en) Electronic file upgrade including automatic recovery from failures and mistakes that occurred during the upgrade
US20060112113A1 (en) Static file system differencing and updating
US11423149B2 (en) Method and computer apparatus securely executing extensible firmware application
CN111045855A (en) Method, apparatus and computer program product for backing up data
CN107038353B (en) Software program checking protection method and system
US10853197B2 (en) Data recovery with authenticity
CN112148314B (en) Mirror image verification method, device and equipment of embedded system and storage medium
CN106155723B (en) Method and device for upgrading service application program, terminal and computer storage medium
CN111045856A (en) Method, apparatus and computer program product for managing application systems
CN109491716B (en) Starting method and device, program storage method and device
CN112311528A (en) Data secure transmission method based on state cryptographic algorithm
CN109033818B (en) Terminal, authentication method, and computer-readable storage medium
US11431476B2 (en) Install time creation of forward error correction data and integrity checksums
CN110995734B (en) Cloud storage auditing method and system based on error correcting code and computer equipment
CN111400771A (en) Target partition checking method and device, storage medium and computer equipment
JP2020150310A (en) Information processing unit, decryption method of encryption data and electronic apparatus
CN111046389A (en) Method for securely updating firmware components and portable computer station for implementation
CN112256304B (en) DSP chip software online updating method and system
CN110309655B (en) Method and device for detecting safety in APP updating process
CN114327657B (en) Large mirror image division downloading and signature verification method based on Fastboot and storage medium thereof
CN118227186B (en) Differential upgrading method, device, equipment, storage medium and program product
CN113326055B (en) Equipment updating method and related device
CN114253769A (en) Data processing method and device for unidirectional network gate

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant