Method and apparatus for processing vehicle upgrade packages - Patents.com

By splitting vehicle upgrade packages into data blocks for P2P distribution, the method alleviates OTA server load, enhances security, and speeds up software updates, addressing inefficiencies in existing OTA systems.

JP7626911B2Active Publication Date: 2025-02-05YINWANG INTELLIGENT TECHNOLOGIES CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2022528103
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-11-14
Filing Date
2020-06-23
Publication Date
2025-02-05
Estimated Expiration
2040-06-23

AI Technical Summary

Technical Problem

The existing vehicle software update mechanism through Over-the-Air (OTA) servers is inefficient due to high load on the OTA server, which needs to distribute upgrade packages to each vehicle individually, leading to potential bottlenecks and increased latency.

Method used

The method involves splitting the vehicle upgrade package into multiple data blocks, which are distributed to terminals using a peer-to-peer (P2P) network, allowing terminals to acquire and combine the blocks independently, reducing the load on the OTA server.

Benefits of technology

This approach reduces the load on the OTA server, enhances security through encryption and signature verification, and accelerates the software update process by allowing terminals to decode and combine data blocks in parallel, improving user experience and network efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007626911000001
    Figure 0007626911000001
  • Figure 0007626911000002
    Figure 0007626911000002
  • Figure 0007626911000003
    Figure 0007626911000003
Patent Text Reader

Abstract

A method and apparatus for processing a vehicle upgrade package includes a first terminal (121) receiving one or more first data blocks from a server (11), the first data blocks being used for a vehicle upgrade (S101), the first terminal (121) acquiring one or more second data blocks from a second terminal (122), the second data blocks being used for the vehicle upgrade, the second data blocks being transmitted by the server (11) to the second terminal (122) (S102), and the first terminal (121) acquiring the vehicle upgrade package based on the first and second data blocks (S103). Specifically, the server (11) can divide the vehicle upgrade package into multiple data blocks and then distribute the multiple data blocks to multiple terminals. Each terminal can then acquire the vehicle upgrade package in a peer-to-peer manner based on the data blocks received by the terminal and the data blocks acquired by the terminal from another terminal. In this process, none of the terminals need to retrieve the complete vehicle upgrade package from the OTA server, thus reducing the load on the OTA server.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] FIELD OF THE DISCLOSURE This application relates to communications technology, and more particularly, to a method and apparatus for processing vehicle upgrade packages. [Background technology]

[0002] With the development of Internet of Vehicles technology, more and more vehicles are provided with software-related operating systems. During software update, the vehicle can download a vehicle upgrade package from an over-the-air (OTA) server based on OTA technology, and use the vehicle upgrade package to perform software update.

[0003] Typically, every time a vehicle sends an upgrade request, the OTA server needs to respond to the vehicle's upgrade request and deliver the vehicle's upgrade package to the vehicle.

[0004] However, since the OTA server needs to provide vehicle upgrade packages to each vehicle, the load on the OTA server is relatively large. Summary of the Invention [Means for solving the problem]

[0005] The embodiments of the present application provide a method and apparatus for processing vehicle upgrade packages to reduce the load on the OTA server.

[0006] According to a first aspect, an embodiment of the present application provides a method for processing a vehicle upgrade package. The method includes: a first terminal receives one or more first data blocks from a server, the first data blocks are used for upgrading the vehicle, the first terminal obtains one or more second data blocks from a second terminal, the second data blocks are used for upgrading the in-vehicle system, the second data blocks are sent by the server to the second terminal, and the first terminal obtains the vehicle upgrade package based on the first data block and the second data block. Specifically, the server can divide the vehicle upgrade package into a plurality of data blocks and then distribute the plurality of data blocks to a plurality of terminals. Then, each terminal can obtain the vehicle upgrade package in a peer-to-peer (P2P) manner based on the data block received by the terminal and the data block obtained by the terminal from another terminal. In this process, none of the terminals needs to obtain a complete vehicle upgrade package from the OTA server. Thus, the load of the OTA server can be reduced.

[0007] In a possible design, both the first data block and the second data block are encrypted data blocks, and the data block length of the first data block and the data block length of at least one second data block are each an integer multiple of the length of the packet of the encryption algorithm. By dividing the vehicle upgrade packet into data blocks whose lengths are integer multiples of the length of the packet, it can be ensured that the decapsulator does not consume additional time for packet integration in decryption during the processing of the encrypted packet. This effectively resists timing attacks, thereby ensuring the protection of confidentiality and integrity of the encrypted packet.

[0008] In a possible design, the first terminal obtaining the vehicle upgrade package based on the first data block and at least one second data block includes: the first terminal starts decrypting the first data block at a first time, and the first terminal receives the second data block at a second time, where the first time is earlier than the second time; or the first terminal starts decrypting the second data block at a third time, and the first terminal receives the first data block at a fourth time, where the third time is earlier than the fourth time. In this embodiment of the present application, the first terminal decrypts the data block as it receives it. Thus, compared with the method in which the first terminal decrypts all the data blocks together after receiving all the data blocks, the method in this embodiment of the present application can improve the decryption efficiency and shorten the download time of the upgrade package.

[0009] In a possible design, the first data block and the second data block each include a signature of a server generating an upgrade package for upgrading the vehicle system, the first terminal initiating decryption of the first data block at a first time includes the first terminal initiating decryption of the first data block at the first time when the first terminal confirms that the signature in the first data block is a signature of the server generating the upgrade package for upgrading the vehicle system, and the first terminal initiating decryption of the second data block at a third time includes the first terminal initiating decryption of the second data block at the third time when the first terminal confirms that the signature in the second data block is a signature of the server generating the upgrade package for upgrading the vehicle system. In this case, if the signature carried in the first data block and the second data block is not a signature of the OTA server, the first data block and the second data block may be discarded and the first data block and the second data block including the signature of the OTA server may be reacquired. In this way, the first terminal is prevented from receiving insecure data blocks transmitted by another device, thereby increasing the security of the data block transmission.

[0010] In a possible design, the server is further configured to store a correspondence relationship between the data blocks acquired by splitting the vehicle upgrade package and the terminals receiving the data blocks. The first terminal acquiring the one or more second data blocks from the second terminal includes the first terminal sending a data block acquisition request to the second terminal based on the correspondence relationship, and the first terminal receiving the one or more second data blocks returned by the second terminal in response to the data block acquisition request. In this way, the first terminal can accurately acquire the second data blocks from the corresponding second terminal based on the correspondence relationship provided by the server.

[0011] In a possible design, the server is a proxy server, the vehicle upgrade package is obtained from the over-the-air OTA server by the proxy server, and the first terminal is the vehicle. In this case, the proxy server can assist the vehicle upgrade, thereby reducing the load on the OTA server.

[0012] In a possible design, the first terminal is a charging pile.

[0013] In a possible design, the method further includes: the charging pile receives an upgrade package acquisition request sent by the vehicle; and when the vehicle successfully passes the safety verification of the charging pile, the charging pile returns the vehicle's upgrade package to the vehicle based on the upgrade package acquisition request. In this way, the vehicle can download the vehicle's upgrade package during charging. It can be understood that during vehicle charging, the vehicle is usually in a stationary state, so there will usually be a relatively good network environment, and since the vehicle is connected to the charging auxiliary device, phenomena such as interruption of the download of the vehicle's upgrade package caused by the vehicle's power shortage can be avoided. Therefore, the user experience of vehicle upgrade can be effectively improved.

[0014] In a possible design, the first terminal receiving the first data block from the server includes receiving the first data block from the server by the first terminal when the first terminal has successfully completed security authentication with the server, whereby the first terminal receives the first data block after completing security authentication with the server, thereby improving security of the first data block received by the first terminal.

[0015] According to a second aspect, an embodiment of the present application provides a method for processing a vehicle upgrade package, the method including: a server dividing the vehicle upgrade package into a plurality of data blocks; and the server distributing the plurality of data blocks to at least one terminal, each terminal being configured to obtain the vehicle upgrade package based on the data block received by the terminal and the data block from another terminal of the at least one terminal.

[0016] In a possible design, the server splitting the vehicle upgrade package into multiple data blocks includes the server encrypting the vehicle upgrade package according to an encryption algorithm and splitting the encrypted vehicle upgrade package into multiple data blocks.

[0017] In a possible design, the server is a proxy server, and before the server divides the vehicle upgrade package into blocks, the method further includes the proxy server obtaining the vehicle upgrade package from an over-the-air OTA server.

[0018] In a possible design, the proxy server obtaining the vehicle upgrade package from the wireless OTA server includes the proxy server sending a vehicle upgrade package acquisition request to the wireless OTA server, the vehicle upgrade package acquisition request including an operating system type and a vehicle version, and when the proxy server succeeds in security verification with the OTA server, the proxy server receives the vehicle upgrade package sent by the OTA server, and the vehicle upgrade package is generated by the OTA server based on the operating system type and the vehicle version.

[0019] In a possible design, after the server distributes the multiple data blocks to at least one terminal, the method further includes the server recording a correspondence between the data blocks obtained by dividing the vehicle upgrade package and the terminals receiving the data blocks.

[0020] According to a third aspect, an embodiment of the present application provides a first terminal including: a receiving module configured to receive one or more first data blocks from a server, where the first data blocks are used for upgrading a vehicle; and a processing module configured to obtain, by the first terminal, one or more second data blocks from a second terminal, where the second data blocks are used for upgrading an in-vehicle system, where the second data blocks are sent by the server to the second terminal, and to obtain a vehicle upgrade package based on the first data blocks and the second data blocks.

[0021] In a possible design, both the first data block and the second data block are encrypted data blocks, and the data block length of the first data block and the data block length of the at least one second data block are each an integer multiple of a packet length of the encryption algorithm.

[0022] In a possible design, the processing module is specifically configured to start decrypting the first data block at a first time and receive the second data block at a second time, the first time being earlier than the second time, or the processing module is configured to start decrypting the second data block at a third time and receive the first data block at a fourth time, the third time being earlier than the fourth time.

[0023] In a possible design, the first data block and the second data block each include a signature of a server that generates an upgrade package for upgrading the vehicle system, and the processing module is further configured to initiate decryption of the first data block at a first time upon verifying that the signature in the first data block is a signature of the server that generates the upgrade package for upgrading the vehicle system, and to initiate decryption of the second data block at a third time upon verifying that the signature in the second data block is a signature of the server that generates the upgrade package for upgrading the vehicle system.

[0024] In a possible design, the server stores a correspondence between the data blocks obtained by dividing the vehicle upgrade package and the terminals receiving the data blocks, and the processing module is further configured to, specifically, send a data block acquisition request to the second terminal based on the correspondence, and receive one or more second data blocks returned by the second terminal in response to the data block acquisition request.

[0025] In a possible design, the server is a proxy server, the vehicle upgrade package is obtained from an over-the-air OTA server by the proxy server, and the first terminal is the vehicle.

[0026] In a possible design, the first terminal is a charging pile.

[0027] In a possible design, the receiving module is further configured to receive an upgrade package acquisition request sent by the vehicle, and the processing module is further configured to return the vehicle's upgrade package to the vehicle based on the upgrade package acquisition request when the vehicle successfully completes the safety verification of the charging pile.

[0028] In a possible design, the receiving module is specifically configured to receive, by the first terminal, a first data block from the server when the first terminal successfully completes security authentication with the server.

[0029] According to a fourth aspect, an embodiment of the present application provides a server including a processing module configured to divide a vehicle upgrade package into a plurality of data blocks, and a transmission module configured to distribute the plurality of data blocks to at least one terminal, each terminal configured to obtain the vehicle upgrade package based on the data blocks received by the terminal and the data blocks from another of the at least one terminal.

[0030] In a possible design, the processing module is specifically configured to encrypt the vehicle upgrade package according to an encryption algorithm and divide the encrypted vehicle upgrade package into a plurality of data blocks.

[0031] In a possible design, the server is a proxy server, and the processing module is further configured to obtain an upgrade package for the vehicle from an over-the-air OTA server.

[0032] In a possible design, the processing module is specifically configured to send a vehicle upgrade package acquisition request to a wireless OTA server, where the vehicle upgrade package acquisition request includes an operating system type and a vehicle version, and when the proxy server succeeds in security verification with the OTA server, receive the vehicle upgrade package sent by the OTA server, and the vehicle upgrade package is generated by the OTA server based on the operating system type and the vehicle version.

[0033] In a possible design, the processing module is further configured to record a correspondence between the data blocks obtained by splitting the vehicle upgrade package and the terminals receiving the data blocks.

[0034] According to a fifth aspect, an embodiment of the present application provides an apparatus for processing a vehicle upgrade package. The apparatus for processing a vehicle upgrade package may be a chip or a system-on-chip in a first terminal, and includes a processor and an interface circuit. The interface circuit is configured to receive code instructions and transmit the code instructions to the processor. The processor is configured to execute the code instructions to perform a method according to the first aspect or any one of the possible designs of the first aspect.

[0035] According to a sixth aspect, an embodiment of the present application provides an apparatus for processing a vehicle upgrade package. The apparatus for processing a vehicle upgrade package may be a chip in a server or a system on chip, and includes a processor and an interface circuit. The interface circuit is configured to receive code instructions and transmit the code instructions to the processor. The processor is configured to execute the code instructions to perform a method according to the second aspect or any one of the possible designs of the second aspect.

[0036] According to a seventh aspect, an embodiment of the present application provides an apparatus for processing an upgrade package for a vehicle, the apparatus including a memory and a processor, the processor executing program instructions in the memory to perform a method according to the first aspect or any one of possible designs of the first aspect.

[0037] According to an eighth aspect, an embodiment of the present application provides an apparatus for processing an upgrade package for a vehicle, the apparatus including a memory and a processor, the processor executing program instructions in the memory to perform a method according to the second aspect or any one of possible designs of the second aspect.

[0038] According to a ninth aspect, an embodiment of the present application provides a readable computer storage medium configured to store a computer program, the computer program being used to perform a method according to the first aspect or any one of the possible implementations of the first aspect.

[0039] According to a tenth aspect, an embodiment of the present application provides a readable computer storage medium configured to store a computer program, the computer program being used to perform a method according to the second aspect or any one of the possible implementations of the second aspect.

[0040] According to an eleventh aspect, an embodiment of the present application provides a system for processing an upgrade package for a vehicle, the system including a communication device of the third aspect and corresponding possible implementations thereof and a communication device of the fourth aspect and corresponding possible implementations thereof.

[0041] It should be understood that the technical solutions of the second to eleventh aspects of the present application correspond to the technical solution of the first aspect of the present application, and the beneficial effects obtained by each aspect and corresponding feasible implementations are similar and will not be described in detail again. [Brief description of the drawings]

[0042] [Figure 1] 1 is a schematic diagram of a network system to which a method for processing a vehicle upgrade package according to an embodiment of the present application is applied; [Diagram 2] 1 is a schematic flow diagram of a method for processing a vehicle upgrade package according to an embodiment of the present application. [Diagram 3] FIG. 2 is a schematic diagram of another network system to which a method for processing a vehicle upgrade package according to an embodiment of the present application is applied. [Figure 4]1 is a schematic diagram of a logical framework of an on-board device in a vehicle according to an embodiment of the present application; [Diagram 5] 1 is a schematic flow diagram of a specific method for processing a vehicle upgrade package according to an embodiment of the present application. [Figure 6] 2 is a schematic diagram of yet another network system to which a method for processing a vehicle upgrade package according to an embodiment of the present application is applied; [Figure 7] 4 is a schematic flow diagram of another specific method for processing a vehicle upgrade package, according to an embodiment of the present application. [Figure 8] FIG. 2 is a schematic diagram of the structure of a first terminal according to an embodiment of the present application; [Figure 9] FIG. 2 is a schematic diagram of a server structure according to an embodiment of the present application; [Figure 10] 1 is a schematic diagram of a hardware structure of an apparatus for processing a vehicle upgrade package according to an embodiment of the present application; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0043] Hereinafter, implementations of the embodiments will be described in detail with reference to the accompanying drawings.

[0044] The method for processing a vehicle upgrade package provided in the embodiment of the present application may be applied to the network system of Figure 1. The system may include a server 11, a first terminal 121, and a second terminal 122. There may be one or more second terminals 122.

[0045] The server 11 may be an OTA server configured to distribute a vehicle upgrade package, or may be a fleet server that obtains a vehicle upgrade package from an OTA server, or any other possible server. This is not specifically limited in the embodiment of the present application. The first terminal 121 may be any form of vehicle, the first terminal 121 may be any form of vehicle auxiliary device (e.g., a vehicle charging pile), and the first terminal 121 may be a mobile terminal (e.g., a mobile phone, a tablet computer, or a wearable device). This is not specifically limited in the embodiment of the present application. The second terminal 122 may be any form of vehicle, the second terminal 122 may be any form of vehicle auxiliary device (e.g., a vehicle charging pile), and the second terminal 122 may be a mobile terminal (e.g., a mobile phone, a tablet computer, or a wearable device). This is not specifically limited in the embodiment of the present application. The first terminal 121 and the second terminal 122 may be the same type of device. For example, the first terminal 121 and the second terminal 122 are both a vehicle, a vehicle auxiliary device, or a mobile terminal, etc. Or, the first terminal 121 and the second terminal 122 may be different types of devices. For example, the first terminal 121 is a vehicle, and the second terminal 122 is a vehicle auxiliary device or a mobile terminal, etc. This is not specifically limited in the embodiment of the present application. When the server 11, the first terminal 121, and the second terminal 122 are various specific devices, the method of processing the vehicle upgrade package will be described in detail in the subsequent embodiment. It will not be described in detail here.

[0046] The first terminal 121 and the second terminal 122 each establish a communication connection with the server 11. For example, the first terminal 121 and the second terminal 122 may each establish a communication connection with the server 11 by using a protocol such as hypertext transfer protocol (HTTP) or hypertext transfer protocol over secure socket layer (HTTPS). This is not limited to the embodiment of the present application.

[0047] P2P communication may be performed between the first terminal 121 and the second terminal 122 via any form of communication connection. For example, P2P communication may be performed between the first terminal 121 and the second terminal 122 by wireless transmission such as Bluetooth transmission, carrierless communication (ultra wide band, UWB), or infrared transmission.

[0048] Alternatively, the P2P communication may be performed between the first terminal 121 and the second terminal 122 via wired transmission, which is not specifically limited in the embodiment of the present application.

[0049] Alternatively, the P2P communication may be performed between the first terminal 121 and the second terminal 122 based on the index server. The index server may be the server 11 or any other server. For example, the index server may store a resource list. The resource list includes a correspondence between the first terminal 121 and a resource identifier in the first terminal 121, and a correspondence between the second terminal 122 and a resource identifier in the second terminal 122. When the first terminal 121 expects to obtain a resource, the first terminal 121 obtains a resource list of each terminal from the index server, and determines from the resource list that the terminal including the identifier of the resource is the second terminal 122. In this case, the first terminal 121 may further obtain the resource from the second terminal 122 by wired communication or wireless communication.

[0050] 2 is a schematic flow chart of a method for processing an upgrade package of a vehicle according to an embodiment of the present application. As shown in FIG. 2, the method includes the following steps:

[0051] Step S101: A first terminal receives one or more first data blocks from a server, where the first data blocks are used for upgrading a vehicle.

[0052] In this embodiment of the present application, the server may be an OTA server or a server other than the OTA server. If the server is an OTA server, the server can generate an upgrade package for upgrading the vehicle. If the server is a server other than the OTA server, the server can first obtain an upgrade package for upgrading the vehicle from the OTA server.

[0053] The server can divide the complete upgrade package for the vehicle upgrade into multiple data blocks. It can be understood that, based on the device that specifically corresponds to the upgrade package, each upgrade package can correspond to the number of the device and the upgrade package sequence number. During the division of the block, the server can identify the data block based on the position of the data block in the upgrade package, etc., so that the data block can be subsequently integrated based on the identifiers of the multiple data blocks to obtain a complete upgrade package again. The specific identification method and identification content of the data block are not specifically limited in this embodiment of the present application. In an embodiment, the data block may be a complete data packet.

[0054] For example, in a particular implementation, the header of each data block obtained by dividing the block may include one or more of the version number of the data block in the upgrade package i, the upgrade package sequence number i, the number j of the device, and the sequence number k. For example, there are currently about 25 to 100 types of automobile electronic control units (ECUs) targeted at passenger cars. Therefore, there are usually 256 types or less of upgrade packages. Correspondingly, the total number of upgrade package sequence numbers i does not exceed 256. It may be specified that the upgrade package sequence number i occupies 1 byte in the data block. Correspondingly, there are also usually 256 types or less of vehicles. Therefore, the device number (e.g., the ECU number of the vehicle) j may also occupy 1 byte. The sequence number k of the data block in the upgrade package i is related to the size of the upgrade package and the upgrade method. For example, a larger upgrade package indicates a larger sequence number k. Or, if a differential upgrade method is used, k is smaller, or if a full package upgrade method is used, k is larger. For example, k can occupy 1 to 3 bytes. This is not specifically limited in this embodiment of the present application.

[0055] After obtaining the multiple data blocks, the server can distribute the multiple data blocks to multiple terminals. In this embodiment of the present application, a description is presented using an example in which a first terminal of the multiple terminals is used as an execution subject, and a terminal other than the first terminal of the multiple terminals is the second terminal. The first terminal and the second terminal may alternatively be terminals other than the multiple terminals. The data block received by the first terminal is the first data block, and there may be one or more first data blocks. The data block received by the second terminal is the second data block, and there may be one or more second data blocks. All the first data blocks and all the second data blocks can form a complete upgrade package. Indeed, for example, there may be cases where redundant information-related encapsulation is performed, and a complete upgrade package may be formed when several data packets are analyzed. Alternatively, the first data block in this specification may be one type of data block, and the second data block is another type of data block. The transmission paths of different types of data blocks may be different. For example, the different types of data blocks reach the destination side after passing through different devices.

[0056] Optionally, in certain implementations, the first terminal can send an upgrade request to the server. The upgrade request can include basic information of the first terminal, and the basic information can include software information and / or hardware information or a vehicle model (e.g., a unique identifier (vehicle identification number, VIN) of the vehicle). In response to the upgrade request, the server can send one or more first data blocks that match the basic information in the upgrade request to the first terminal. Before sending the upgrade request, the first terminal can further receive a notification of the upgrade. There can be various conditions for triggering the sending of the upgrade request. For example, the sending of the upgrade request is triggered based on a timing moment specified by the first terminal, the sending of the upgrade request is triggered when a user taps an upgrade control on the screen of an in vehicle infotainment (IVI) system of the first terminal, the sending of the upgrade request is triggered by using an application in a mobile device such as a mobile phone that communicates with the first terminal, or the request for upgrade is automatically sent when the network environment of the first terminal meets the upgrade requirements (also called silent upgrade).

[0057] Optionally, before step S101 is performed, two-way authentication may be performed between the first terminal and the server to establish secure communication. For example, by using a public key infrastructure (PKI), two-way authentication can be performed between the first terminal and the server. For example, the first terminal can check the server's digital certificate in the PKI to perform the first terminal's authentication of the server, and the server can check the first terminal's digital certificate in the PKI to perform the server's authentication of the first terminal. It should be understood that the two-way authentication may alternatively be performed between the first terminal and the server in another manner based on the actual application scenario, which is not specifically limited in this embodiment of the present application.

[0058] Step S102: The first terminal obtains one or more second data blocks from the second terminal, the second data blocks are used for vehicle upgrade, and the second data blocks are sent to the second terminal by the server.

[0059] In this embodiment of the present application, the first terminal can obtain one or more second data blocks from the second terminal in any P2P manner described above. There may be one or more second terminals. In this embodiment of the present application, the number of second terminals is not limited. For example, if there is one second terminal, the first terminal obtains one or more second data blocks from one second terminal. If there are multiple second terminals, the first terminal obtains one or more second data blocks from one or more second terminals.

[0060] Please note that in this embodiment of the present application, the sequence between step S102 and step S101 may be reversed. Specifically, the first terminal may first obtain one or more first data blocks, and then obtain one or more second data blocks, or the first terminal may first obtain one or more second data blocks, and then obtain one or more first data blocks. This is not specifically limited in this embodiment of the present application.

[0061] Optionally, when the server distributes the data block to multiple terminals, the server stores a correspondence relationship between each data block and the terminal that receives the data block. A specific implementation of step S102 may be as follows: A first terminal sends a data block acquisition request to a second terminal based on the correspondence relationship, and the first terminal receives at least one second data block returned by the second terminal in response to the data block acquisition request.

[0062] In this embodiment of the present application, each data block can uniquely correspond to one data block identifier, and the data block identifier may be an identifier such as a number or a name. Each terminal can uniquely correspond to one terminal identifier, and the terminal identifier may be an identifier such as the terminal's device serial number or the terminal's communication address. Of course, for different terminals, the specific form of the terminal identifier used by the terminal may be different. For different data blocks, the data block identifier used by the data block may be different. For each data block, the server can store a correspondence relationship between the identifier of the data block and the identifier of the terminal receiving the data block. In this case, the first terminal can determine the data blocks received by the first terminal (e.g., one or more first data blocks), the data blocks still missing for the first terminal (e.g., one or more second data blocks), and the identifier of the second terminal associated with the missing data blocks for the first terminal based on the correspondence relationship. Furthermore, the first terminal can send a data acquisition request to the second terminal based on the identifier of the second terminal, and receive one or more second data blocks returned by the second terminal. For example, when there are multiple second terminals, the first terminal can send a data block acquisition request to each second terminal based on the correspondence relationship, and receive one or more second data blocks returned by the second terminal. Alternatively, the server can use a simple technical verification method or another verification method to ensure that no data block is missing or that the data block can meet normal upgrade conditions.

[0063] Optionally, before step S102 is performed, two-way authentication may be performed between the first terminal and the second terminal to establish secure communication. For example, two-way authentication may be performed between the first terminal and the second terminal by using PKI. For example, the first terminal may check the digital certificate of the second terminal in the PKI to perform authentication of the first terminal to the second terminal, and the second terminal may check the digital certificate of the first terminal in the PKI to perform authentication of the second terminal to the first terminal. It should be understood that the two-way authentication may alternatively be performed between the first terminal and the second terminal in another manner based on the actual application scenario, which is not specifically limited in this embodiment of the present application.

[0064] Step S103: The first terminal obtains a vehicle upgrade package according to the first data block and the second data block.

[0065] In this embodiment of the present application, after obtaining all the second data blocks, the first terminal can integrate the first data blocks and the second data blocks, etc., according to a data block arrangement sequence based on the identifier of the second data block and the identifier of the first data block, to obtain a vehicle upgrade package.

[0066] In this embodiment of the present application, the vehicle upgrade package may be an upgrade package for upgrading the system (or software) of a single component of the vehicle, or may be an upgrade package for upgrading the system (or software) of multiple components or all components in the vehicle, which is not specifically limited in this embodiment of the present application.

[0067] In conclusion, in this embodiment of the present application, the server can divide the vehicle upgrade packet into multiple data blocks, and then distribute the multiple data blocks to multiple terminals. The terminal can then obtain the data blocks from another terminal in a P2P manner, and obtain the vehicle upgrade package based on the data blocks received by the terminal and the data blocks obtained by the terminal from another terminal. In this process, none of the terminals needs to obtain the complete vehicle upgrade package from the OTA server. Therefore, the load of the OTA server can be reduced.

[0068] Optionally, both the first data block and the second data block may be encrypted data blocks.

[0069] In this embodiment of the present application, when dividing the vehicle upgrade package into blocks, the server may first encrypt the vehicle upgrade package, and then divide the encrypted vehicle upgrade package into an encrypted first data block and an encrypted second data block. Alternatively, when dividing the vehicle upgrade package into blocks, the server may first divide the vehicle upgrade package into one or more first data blocks and one or more second data blocks, and then encrypt each first data block and each second data block. The specific implementation of the encryption is not specifically limited in this embodiment of the present application. In order to ensure the integrity of the data blocks, the first data block and the second data block may be stored in the terminal, respectively, or may be stored centrally in the terminal, for example, the first terminal and / or the second terminal. Alternatively, the information included in the first data block and the second data block may be stored in the terminal, respectively, or may be stored centrally in the terminal, for example, the first terminal and / or the second terminal.

[0070] In this embodiment of the present application, the encryption algorithm used by the server to obtain the encrypted data block may be a symmetric encryption algorithm, or may be an asymmetric encryption algorithm or any other encryption algorithm. The encryption algorithm is not specifically limited in this embodiment of the present application. It can be understood that for the data block obtained by encryption by using different encryption methods, the identifier of the encryption algorithm may be carried in the data block. During decryption, the corresponding decryption algorithm can be used based on the identifier of the encryption algorithm, which is not specifically limited in this embodiment of the present application.

[0071] In this embodiment of the present application, by encrypting the first data block and the second data block, it is possible to prevent unauthorized users from obtaining the upgrade packet, and to ensure the confidentiality of the transmission process of the data block obtained by division, which can further ensure the transmission security of the OTA data packet while ensuring the high-speed transmission of the OTAn upgrade packet.

[0072] In an optional implementation of this embodiment of the present application, the data block length of the first data block and the data block length of the at least one second data block are each an integer multiple of the length of a packet of the symmetric encryption algorithm.

[0073] In this embodiment of the present application, the length of the vehicle upgrade packet input to the symmetric encryption algorithm can be an integer multiple of the length of the encryption algorithm packet. For example, the length of the packet may be 8 bytes, 16 bytes, or 128 bytes. However, the length of the vehicle upgrade package is usually random and may not be an integer multiple of the length of the packet. Therefore, a padding section can be added to the vehicle upgrade package so that the total length of the vehicle upgrade package is an integer multiple of the length of the packet. Furthermore, the vehicle upgrade package is divided into multiple data blocks whose length is an integer multiple of the length of the encryption algorithm packet. For example, if the length of the packet is 128 bytes, the length of both the first data block and the second data block can be 128*n, where n is a natural number.

[0074] In this embodiment of the present application, by dividing the vehicle upgrade packet into data blocks whose length is an integer multiple of the packet length, it can be ensured that the decapsulator does not consume additional time for packet integration in decryption while processing the encrypted packet, which effectively resists timing attacks, thereby ensuring confidentiality protection and integrity protection of the encrypted packet.

[0075] In an optional embodiment, when the first terminal is connected to the OTA server, the first terminal can obtain the packet lengths of the first data block and the second data block, the keys for encrypting the data blocks, and the valid time of the keys from the OTA server, in which case the first terminal can decrypt the first data block and the second data block according to the keys within the valid time of the keys.

[0076] Optionally, when the data block length of the first data block and the data block length of the at least one second data block are integer multiples of the packet length of the encryption algorithm, respectively, the method for decrypting the first data block and the second data block by the first terminal may be as follows:

[0077] Each time the first terminal receives a data block (including the first data block or the second data block), the first terminal immediately decrypts the received data block. In this case, when the first terminal receives the last data block, the first terminal may have completed decrypting the previously received data block. Therefore, the first terminal only needs to wait the time to decrypt the last data block to complete the decryption of all data blocks. In other words, in this embodiment of the present application, the first terminal decrypts the data block as it receives it. Therefore, compared with the method in which the first terminal decrypts all data blocks together after receiving all data blocks, the method in this embodiment of the present application can improve the decryption efficiency and shorten the download time of the upgrade package.

[0078] It can be understood that the first terminal may alternatively decrypt all data blocks (including the first data block or the second data block) together after receiving all data blocks, which is not specifically limited in this embodiment of the present application.

[0079] Optionally, the first data block and the second data block each include a signature of a server that generates an upgrade package for upgrading the vehicle system. For example, before performing block division on the complete upgrade package for upgrading the vehicle system, the OTA server can sign the upgrade package or digitally sign the content of the upgrade package based on public key cryptography. The signature may be an identifier corresponding to the OTA server. For example, the signature may be an equipment identifier of the OTA server or an identifier of an operator operating the OTA server. Alternatively, the signature may include an identifier of a vehicle provider, etc. In addition, during the block division, the signature is added to the first data block and the second data block. In this way, when obtaining the first data block and the second data block, the first terminal can determine whether the first data block and the second data block are sent by an OTA server authorized by the first terminal based on the signature carried in the first data block and the second data block. It will be understood that if the signature carried in the first data block and the second data block is not the signature of the OTA server, the first data block and the second data block may be discarded, and the first data block and the second data block including the signature of the OTA server may be reacquired. In this way, the first terminal is prevented from receiving an insecure data block transmitted by another device, thereby improving the security of the data block transmission.

[0080] Accordingly, the first data block and the second data block each include a signature of a server generating an upgrade package for upgrading the vehicle, and the first terminal starts decrypting the first data block at a first time when the first terminal confirms that the signature in the first data block is a signature of a server for downloading the upgrade package for the vehicle, and receives the second data block at a second time, the first time being earlier than the second time, or the first terminal starts decrypting the second data block at a third time when the first terminal confirms that the signature in the second data block is a signature of a server for downloading the upgrade package for the vehicle, and receives the first data block at a fourth time, the third time being earlier than the fourth time.

[0081] For example, Fig. 3 shows a specific upgrade system to which the method for processing a vehicle upgrade package according to an embodiment of the present application can be applied. As shown in Fig. 3, the upgrade system includes a server 30, a first terminal 31, and a second terminal 32. There are three second terminals 32, which are numbered as second terminal 320, second terminal 321, and second terminal 322, respectively.

[0082] In this embodiment of the present application, the server 30 may be an OTA server. Alternatively, the server 30 may be a proxy server. For example, the proxy server may be a server serving a fleet of vehicles. If the server 30 is a proxy server, the proxy server first establishes a secure communication with the OTA server through two-way authentication, and then the proxy server transmits the vehicle's hardware and software information to the OTA server. After generating the vehicle upgrade package, the OTA server can distribute the vehicle upgrade package to the proxy server. It is understood that the OTA server can alternatively divide the vehicle upgrade package into blocks and distribute the blocks to multiple proxy servers, and the multiple proxy servers can obtain the vehicle upgrade package in the aforementioned P2P manner. This is not specifically limited in this embodiment of the present application.

[0083] In this embodiment of the present application, both the first terminal and the second terminal may be vehicles. FIG. 4 is a schematic diagram of a logical framework of on-board devices in a vehicle. It can be understood that the on-board devices in FIG. 4 may be all or part of the on-board devices included in the vehicle. These on-board devices may be grouped into several domains, each domain including one or more on-board devices, each domain including a domain administrator, which may also be called a domain controller. For example, a mobile data center (MDC), one or more sensors, and a global positioning system (GPS) belong to a domain, and the MDC is a domain controller in the domain. A vehicle control unit (VCU), one or more electronic control units (ECUs), a wireless power transmission (WPT) device, etc. belong to a domain, and the VCU is a domain controller in the domain. A human machine interface (HMI) and one or more ECUs belong to a domain, and the HMI is a domain controller in the domain. A body control module (BCM), one or more ECUs, a passive entry passive start (PEPS), etc. belong to a domain, and the BCM is a domain controller in the domain. The domain controller is connected to a gateway (GW), which is connected to an on-board diagnostics (OBD) system, a vehicle communication terminal (telematics box, T-Box) in the Internet of Vehicles, and another device. For example, the domain controller can communicate with a device such as a T-Box through a gateway, and a device in the domain can communicate with a device such as a gateway through the domain controller.

[0084] In an optional embodiment, the vehicle downloads the vehicle upgrade package by using the T-Box, determines the source of the vehicle upgrade package, and after determining that the vehicle upgrade package is distributed by the OTA server, the vehicle can transfer the vehicle upgrade package to the corresponding on-board device in the vehicle based on the device number corresponding to the upgrade package. An on-board device (e.g., MDC or HMI) with relatively powerful computing and storage capabilities can perform packaging by itself, so as to reduce the consumption of storage resources of the T-Box. After performing packaging, the on-board component in the vehicle can further perform signature verification on the upgrade package, and perform operations such as upgrade installation after determining that the vehicle upgrade package is distributed by the OTA server. This can improve the reliability of the upgrade package.

[0085] In this embodiment of the present application, an example is used in which the first terminal is a first vehicle and the second terminal is a second vehicle. As shown in Figure 5, the optional specific implementation steps of the method for processing a vehicle upgrade package can be as follows:

[0086] Step S301: A first vehicle obtains one or more first data blocks from a server, and a second vehicle obtains one or more second data blocks from the server.

[0087] Step S302: The first vehicle obtains one or more second data blocks from the second vehicle.

[0088] Step S303: The first vehicle acquires a vehicle upgrade package based on the acquired first data block and the acquired second data block.

[0089] In this embodiment of the present application, for the method of dividing the vehicle upgrade package into blocks by the server and the method of obtaining the first data block and the second data block by the first vehicle, please refer to the description of the embodiment corresponding to Figure 2. Details will not be repeated here.

[0090] In an optional application scenario in this embodiment of the present application, as shown in Fig. 3, the server 30 is a convoy server, which obtains vehicle upgrade packages in advance from an OTA server, which are used by the convoy served by the convoy server (e.g., including a first vehicle 31, a second vehicle 320, a second vehicle 321, and a second vehicle 322). Furthermore, during regular maintenance of the convoy, such as for Wireless-Fidelity (Wi-Fi) network connection, the first vehicle 31, the second vehicle 320, the second vehicle 321, and the second vehicle 322 are connected to the convoy server. When receiving the upgrade package download notification, the convoy server performs two-way authentication (e.g., a PKI-based authentication method) with the first vehicle 31, the second vehicle 320, the second vehicle 321, and the second vehicle 322, and after the authentication is successful, encrypts the upgrade package encryption key k (encrypts the upgrade package encryption key k by using the vehicle's public key), and then distributes the encrypted encryption key to the first vehicle 31, the second vehicle 320, the second vehicle 321, and the second vehicle 322. For example, if a first vehicle 31 downloads a first portion of the vehicle upgrade package, a second vehicle 320 downloads a second portion of the vehicle upgrade package, and a second vehicle 321 downloads a third portion of the vehicle upgrade package, the first vehicle 31 can download the second portion of the vehicle upgrade package from the second vehicle 320 and the third portion of the vehicle upgrade package from the second vehicle 321, and further obtain the complete vehicle upgrade package through decryption by using the key k.

[0091] It will be understood that the second vehicle 320 may also obtain a complete vehicle upgrade package from the first vehicle 31 and the second vehicle 321, and the second vehicle 321 may also obtain a complete vehicle upgrade package from the first vehicle 31 and the second vehicle 320.

[0092] In this case, after the first vehicle 31, the second vehicle 320, or the second vehicle 321 obtains the complete vehicle upgrade package, the second vehicle 322 can obtain the vehicle upgrade package from the first vehicle 31, the second vehicle 320, or the second vehicle 321. The specific process of each vehicle downloading the vehicle upgrade package is not limited in this embodiment of the present application.

[0093] In this embodiment of the present application, the fleet server is used as a proxy server so that vehicles can perform convenient vehicle upgrades during maintenance or other processes.

[0094] Optionally, to further improve the stability of the vehicle upgrade package and prevent the wrong vehicle upgrade package from being distributed to multiple vehicles, a performance test may be performed on the vehicle upgrade package before step S301 is performed. For example, vehicle A can first obtain the vehicle upgrade package from the server 30 by using vehicle A, and then vehicle A performs an update based on the vehicle upgrade package. If the update is successful, vehicle A will send an update success message to the server 30, and then step S301 and subsequent steps are further performed. This can increase the probability of the vehicle upgrade being successful.

[0095] For example, Fig. 6 shows a specific upgrade system to which the method for processing a vehicle upgrade package according to an embodiment of the present application can be applied. As shown in Fig. 6, the upgrade system includes a server 60, a first terminal 61, and a second terminal 62. There are three second terminals 62, which are numbered as second terminal 620, second terminal 621, and second terminal 622, respectively.

[0096] In this embodiment of the present application, the server 60 may be an OTA server. Alternatively, the server 60 may be a proxy server. If the server 60 is a proxy server, the proxy server can first establish a secure communication with the OTA server through two-way authentication, and then the proxy server sends the hardware and software information of the vehicle served by the vehicle auxiliary device to the OTA server. After generating the vehicle upgrade package, the OTA server can distribute the vehicle upgrade package to the proxy server. It can be understood that the OTA server can alternatively divide the vehicle upgrade package into blocks and distribute the blocks to multiple proxy servers, and the multiple proxy servers can obtain the vehicle upgrade package in the aforementioned P2P manner. This is not specifically limited in this embodiment of the present application.

[0097] In this embodiment of the present application, an example is used in which the first terminal is a first vehicle auxiliary device and the second terminal is a second vehicle auxiliary device. The second vehicle auxiliary device may be a device for vehicle charging (such as a charging pile), a mobile terminal, etc. As shown in Figure 7, the optional specific implementation steps of the method for processing a vehicle upgrade package may be as follows:

[0098] Step S701: A first vehicle auxiliary device obtains one or more first data blocks from a server, and a second vehicle auxiliary device obtains one or more second data blocks from the server.

[0099] Step S702: The first vehicle auxiliary device obtains one or more second data blocks from the second vehicle auxiliary device.

[0100] Step S703: The first vehicle auxiliary device acquires an upgrade package for the vehicle according to the acquired first data block and the acquired second data block.

[0101] In this embodiment of the present application, for the method of dividing the vehicle upgrade package into blocks by the server and the method of obtaining the first data block and the second data block by the first vehicle auxiliary device, please refer to the description of the embodiment corresponding to Figure 2. Details are not repeated here.

[0102] In an optional application scenario in this embodiment of the present application, as shown in Fig. 6, the server 60 is an OTA server. The OTA server generates a vehicle upgrade package, and further notifies the first vehicle auxiliary device 61, the second vehicle auxiliary device 620, the second vehicle auxiliary device 621, and the second vehicle auxiliary device 622 that the vehicle upgrade package needs to be downloaded. The OTA server performs two-way authentication (e.g., PKI-based authentication method) with the first vehicle auxiliary device 61, the second vehicle auxiliary device 620, the second vehicle auxiliary device 621, and the second vehicle auxiliary device 622, and delivers encrypted data blocks by using the key k to the first vehicle auxiliary device 61, the second vehicle auxiliary device 620, the second vehicle auxiliary device 621, and the second vehicle auxiliary device 622 after the authentication is successful. For example, if the first vehicle auxiliary device 61 downloads a first part of the vehicle upgrade package, the second vehicle auxiliary device 620 downloads a second part of the vehicle upgrade package, and the second vehicle auxiliary device 621 downloads a third part of the vehicle upgrade package, the first vehicle auxiliary device 61 can download the second part of the vehicle upgrade package from the second vehicle auxiliary device 620 and the third part of the vehicle upgrade package from the second vehicle auxiliary device 621, and further obtain the complete vehicle upgrade package through decryption by using the key k.

[0103] It will be understood that the second vehicle auxiliary device 620 may also obtain a complete vehicle upgrade package from the first vehicle auxiliary device 61 and the second vehicle auxiliary device 621, and the second vehicle auxiliary device 621 may also obtain a complete vehicle upgrade package from the first vehicle auxiliary device 61 and the second vehicle auxiliary device 620.

[0104] In this case, after the first vehicle auxiliary device 61, the second vehicle auxiliary device 620, or the second vehicle auxiliary device 621 obtains the complete vehicle upgrade package, the second vehicle auxiliary device 622 can obtain the vehicle upgrade package from the first vehicle auxiliary device 61, the second vehicle auxiliary device 620, or the second vehicle auxiliary device 621. The specific process of each vehicle auxiliary device downloading the vehicle upgrade package is not limited in this embodiment of the present application.

[0105] In this embodiment of the present application, for example, after receiving a notification of an upgrade, the vehicle 63 can establish a connection to the OTA server to obtain the encryption key k of the vehicle's upgrade package. When the vehicle 63 is being charged by using the first vehicle auxiliary device 61, the second vehicle auxiliary device 620, the second vehicle auxiliary device 621, or the second vehicle auxiliary device 622, the first vehicle auxiliary device 61, the second vehicle auxiliary device 620, the second vehicle auxiliary device 621, or the second vehicle auxiliary device 622 can receive the upgrade package acquisition request sent by the vehicle and perform two-way authentication with the vehicle. Then, the first vehicle auxiliary device 61, the second vehicle auxiliary device 620, the second vehicle auxiliary device 621, or the second vehicle auxiliary device 622 can send the vehicle's encrypted upgrade package to the vehicle. The vehicle 63 decrypts the vehicle's encrypted upgrade package by using the key k to obtain the vehicle's upgrade package. In this way, the vehicle 63 can download the vehicle's upgrade package while charging. It can be understood that during vehicle charging, the vehicle is usually in a stationary state, so there will usually be a relatively good network environment, and because the vehicle is connected to the charging auxiliary device, the phenomenon of vehicle upgrade package download interruption caused by the vehicle's insufficient power can be avoided, so that the user experience of vehicle upgrade can be effectively improved.

[0106] Optionally, to further improve the stability of the vehicle upgrade package and prevent the wrong vehicle upgrade package from being distributed to multiple vehicles, a validity test may be performed on the vehicle upgrade package before step S701 is performed. For example, the vehicle upgrade package can be first obtained from the first vehicle auxiliary device 61, the second vehicle auxiliary device 620, the second vehicle auxiliary device 621, or the second vehicle auxiliary device 622 by using the vehicle A, and then the vehicle A performs an update based on the vehicle upgrade package. If the update is successful, the vehicle A sends an update success message to the first vehicle auxiliary device 61, the second vehicle auxiliary device 620, the second vehicle auxiliary device 621, or the second vehicle auxiliary device 622, and then step S701 and the subsequent steps are further performed. This can increase the probability of the on-board system being successfully upgraded.

[0107] 8 is a schematic diagram of the structure of a first terminal according to an embodiment of the present application. The first terminal includes a receiving module 801 and a processing module 802. The receiving module is configured to receive one or more first data blocks from a server, and the first data blocks are used for upgrading a vehicle. The processing module is further configured to obtain, by the first terminal, one or more second data blocks from a second terminal, and the second data blocks are used for upgrading an in-vehicle system, and the second data blocks are sent by the server to the second terminal, and obtain a vehicle upgrade package according to the first data block and the second data block.

[0108] In a possible design, both the first data block and the second data block are encrypted data blocks, and the data block length of the first data block and the data block length of the at least one second data block are each an integer multiple of a packet length of the encryption algorithm.

[0109] In a possible design, the processing module is specifically configured to start decrypting the first data block at a first time and receive the second data block at a second time, the first time being earlier than the second time, or to start decrypting the second data block at a third time and receive the first data block at a fourth time, the third time being earlier than the fourth time.

[0110] In a possible design, the first data block and the second data block each include a signature of a server that generates an upgrade package for upgrading the vehicle system, and the processing module is further configured to initiate decryption of the first data block at a first time upon verifying that the signature in the first data block is a signature of the server that generates the upgrade package for upgrading the vehicle system, and to initiate decryption of the second data block at a third time upon verifying that the signature in the second data block is a signature of the server that generates the upgrade package for upgrading the vehicle system.

[0111] In a possible design, the server stores a correspondence between the data blocks obtained by dividing the vehicle upgrade package and the terminals receiving the data blocks, and the processing module is further configured to, specifically, send a data block acquisition request to the second terminal based on the correspondence, and receive one or more second data blocks returned by the second terminal in response to the data block acquisition request.

[0112] In a possible design, the server is a proxy server, the vehicle upgrade package is obtained from an over-the-air OTA server by the proxy server, and the first terminal is the vehicle.

[0113] In a possible design, the first terminal is a charging pile.

[0114] In a possible design, the receiving module is further configured to receive an upgrade package acquisition request sent by the vehicle, and the processing module is further configured to return the vehicle's upgrade package to the vehicle based on the upgrade package acquisition request when the vehicle successfully completes the safety verification of the charging pile.

[0115] In a possible design, the receiving module is specifically configured to receive, by the first terminal, a first data block from the server when the first terminal successfully completes security authentication with the server.

[0116] The device of this embodiment can be configured accordingly to perform the steps performed by the first terminal in the above-mentioned method embodiment. The implementation principle and technical effect of the device are similar to those of the above-mentioned method, and the details are not described again here.

[0117] 9 is a schematic diagram of the structure of a first terminal according to an embodiment of the present application. The first terminal includes a processing module 901 and a sending module 902. The processing module is configured to divide a vehicle upgrade package into a plurality of data blocks. The sending module is configured to deliver the plurality of data blocks to at least one terminal, and each terminal is configured to obtain the vehicle upgrade package according to the data blocks received by the terminal and the data blocks from another terminal of the at least one terminal.

[0118] In a possible design, the processing module is specifically configured to encrypt the vehicle upgrade package according to an encryption algorithm and divide the encrypted vehicle upgrade package into a plurality of data blocks.

[0119] In a possible design, the server is a proxy server, and the processing module is further configured to obtain an upgrade package for the vehicle from an over-the-air OTA server.

[0120] In a possible design, the processing module is specifically configured to send a vehicle upgrade package acquisition request to a wireless OTA server, where the vehicle upgrade package acquisition request includes an operating system type and a vehicle version, and when the proxy server succeeds in security verification with the OTA server, receive the vehicle upgrade package sent by the OTA server, and the vehicle upgrade package is generated by the OTA server based on the operating system type and the vehicle version.

[0121] In a possible design, the processing module is further configured to record a correspondence between the data blocks obtained by splitting the vehicle upgrade package and the terminals receiving the data blocks.

[0122] The apparatus of this embodiment can be correspondingly configured to execute the steps performed by the server in the above-mentioned method embodiment. The implementation principle and technical effect of the apparatus are similar to those of the above-mentioned method, and the details are not described again here.

[0123] FIG. 10 is a schematic diagram of a hardware structure of an apparatus for processing a vehicle upgrade package according to the present application. Please refer to FIG. 10. The apparatus for processing a vehicle upgrade package includes a memory 1001, a processor 1002, and a communication interface 1003. The memory 1001, the processor 1002, and the communication interface 1003 can communicate with each other. For example, the memory 1001, the processor 1002, and the communication interface 1003 can communicate with each other by using a communication bus 1004. The memory 1001 is configured to store a computer program. The processor 1002 executes the computer program to perform the method described in the above method embodiment.

[0124] Optionally, the communication interface 1003 may further include a transmitter and / or a receiver.

[0125] Optionally, the processor may be a central processing unit (CPU) or another general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), etc. The general-purpose processor may be a microprocessor, which may be any conventional processor, etc. The steps of the methods disclosed with reference to this application may be directly implemented by a hardware processor, or may be implemented by a combination of hardware and software modules in a processor.

[0126] The present application provides a computer-readable storage medium, which is configured to store a computer program, and the computer program is used to implement the method described in the above method embodiments.

[0127] The present application further provides a communication system including a first terminal as shown in FIG. 8 and a server as shown in FIG.

[0128] The present application provides a system chip. The system chip is configured to support a communication device in performing the functions described in the embodiments of the present application (e.g., a first terminal receives one or more first data blocks from a server, the first data blocks are used to upgrade a vehicle, the first terminal obtains one or more second data blocks from a second terminal, the second data blocks are used to upgrade an in-vehicle system, the second data blocks are sent by the server to the second terminal, and the first terminal obtains an upgrade package for the vehicle based on the first data blocks and the second data blocks). The chip is specifically used in a chip system, and the chip system may include the chip or may include the chip and another separate device. When the aforementioned method is performed using a chip of the first device, the chip includes a processing unit. Furthermore, the chip may further include a communication unit. The processing unit may be, for example, a processor. When the chip includes a communication unit, the communication unit may be, for example, an input / output interface, a pin, or a circuit. The processing unit may perform all or some of the operations performed by each processing module in the embodiments of the present application, and the communication unit may perform the corresponding receiving or transmitting operations. In another specific embodiment, the processing module of the receiving device in the present application may be the processing unit of the chip, and the receiving module or the transmitting module of the control device is the communication unit of the chip.

[0129] The embodiments of this application are described with reference to flowcharts and / or block diagrams of the method, the apparatus (system), and the computer program product according to the embodiments of this application. It should be understood that computer program instructions can be used to realize each step and / or each block in the flowcharts and / or block diagrams, and combinations of steps and / or blocks in the flowcharts and / or block diagrams. These computer program instructions may be provided to a processing unit of a general-purpose computer, a special-purpose computer, an embedded processor, or any other programmable data processing device to generate a machine, whereby the instructions executed by the processing unit of the computer or any other programmable data processing device generate an apparatus for implementing a particular function in one or more processes of the flowcharts and / or one or more blocks of the block diagrams.

[0130] These computer program instructions may also be stored in a computer-readable memory that can instruct a computer or another programmable data processing apparatus to operate in a specific manner, such that the instructions stored in the computer-readable memory generate an artefact that includes an instruction apparatus that implements a particular function of one or more steps of the flowcharts and / or one or more blocks of the block diagrams.

[0131] These computer program instructions may be loaded into a computer or another programmable data processing apparatus such that a sequence of operations and steps are performed on the computer or another programmable apparatus, thereby generating a computer-implemented process. Thus, the instructions that execute on the computer or another programmable apparatus provide steps for implementing a particular function in one or more procedures in the flowcharts and / or one or more blocks in the block diagrams.

[0132] In some embodiments provided in the present application, it should be understood that the disclosed apparatus and method may be implemented in other ways. For example, the described apparatus embodiments are merely examples. For example, the division of parts is merely a division of logical functions, and may be other divisions in actual implementation. For example, multiple units or components may be combined or incorporated into another system, or some functions may be ignored or not performed. In addition, the shown or described mutual couplings or direct couplings or communication connections may be realized through some interfaces. Indirect couplings or communication connections between devices or units may be realized in electronic, mechanical, or other forms.

[0133] The units described as separate parts may or may not be physically separated, and the parts shown as units may or may not be physical units, and may be located in one location or distributed among multiple network units. Some or all of the units may be selected based on actual requirements to achieve the objectives of the solutions of the embodiments.

[0134] In addition, the functional units in the embodiments of the present application may be integrated into one processing unit, or each of the units may exist physically alone, or two or more units may be integrated into one unit. The integrated unit may be implemented in the form of hardware, or may be implemented in the form of a hardware and software functional unit.

[0135] When the aforementioned integrated unit is implemented in the form of a software functional unit, the integrated unit may be stored in a computer-readable storage medium. The software functional unit is stored in the storage medium and includes some instructions for instructing a computer device (which may be a personal computer, a server, or a network device) or a processor to execute some of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk. [Explanation of symbols]

[0136] 11 Server 30 Servers 31 First terminal, first vehicle 32 Second Terminal 60 Servers 61 First vehicle auxiliary device, first terminal 62 Second Terminal 63 vehicles 121 First Terminal 122 Second Terminal 320 Second terminal, second vehicle 321 Second terminal, second vehicle 322 Second vehicle, second terminal 620 Second vehicle auxiliary device, second terminal 621 Second vehicle auxiliary device, second terminal 622 Second vehicle auxiliary device, second terminal 801 Receiver Module 802 Processing Module 901 Processing Module 902 Transmitting Module 1001 Memory 1002 Processor 1003 Communication Interface 1004 Communication Bus

Claims

1. 1. A method for processing an upgrade package for a vehicle, comprising: receiving, by a first terminal, a first block of data from a server, the first block of data being used to upgrade the vehicle; obtaining, by the first terminal, a second block of data from a second terminal, the second block of data being used to upgrade the vehicle, the second block of data being sent by the server to the second terminal; obtaining, by the first terminal, the upgrade package for the vehicle based on the first data block and the second data block; Including, Both the first data block and the second data block are encrypted data blocks, and a key for decrypting the first data block and the second data block and a valid time of the key are obtained by the first terminal from the server; The method, wherein at least one of the first terminal and the second terminal is a charging pile.

2. said step of obtaining, by said first terminal, a second data block from a second terminal, Sending a data block acquisition request to the second terminal by the first terminal based on a correspondence relationship between the data block acquired by dividing the upgrade package of the vehicle and the terminal receiving the data block; receiving, by the first terminal, the second data block returned by the second terminal in response to the data block acquisition request; 2. The method of claim 1, comprising:

3. 3. The method of claim 1 or 2, wherein the server is a proxy server, the upgrade package for the vehicle is obtained by the proxy server from an over-the-air (OTA) server, and the first terminal is a vehicle.

4. The method of claim 1 or 2, wherein the first terminal is a charging pile.

5. The method comprises: receiving, by the charging pile, a request to acquire an upgrade package sent by a vehicle; When the vehicle successfully completes the safety verification of the charging pile, the charging pile returns the upgrade package of the vehicle to the vehicle based on the upgrade package acquisition request; 5. The method of claim 4, further comprising:

6. 2. The method of claim 1, wherein the length of the first data block and the length of the second data block are each an integer multiple of a packet length of an encryption algorithm.

7. The step of obtaining, by the first terminal, the upgrade package for the vehicle based on the first data block and the second data block, initiating decryption of the first data block by the first terminal at a first time and receiving the second data block by the first terminal at a second time, the first time being earlier than the second time; or initiating decryption of the second data block by the first terminal at a third time and receiving the first data block by the first terminal at a fourth time, the third time being earlier than the fourth time; 7. The method of claim 6, comprising:

8. the first data block and the second data block each include a signature of a server generating the upgrade package for the vehicle; Initiating decryption of the first data block at a first time, by the first terminal, initiating decryption of the first data block by the first terminal at the first time when the first terminal verifies that the signature in the first data block is the signature of the server generating the upgrade package for the vehicle; Initiating decryption of the second data block at a third time, by the first terminal, 8. The method of claim 7, comprising initiating decryption of the second data block by the first terminal at the third time when the first terminal verifies that a signature in the second data block is the signature of the server generating the upgrade package for the vehicle.

9. said step of receiving, by a first terminal, a first data block from a server; 9. A method according to claim 1, comprising receiving, by the first terminal, the first data block from the server when the first terminal has successfully completed security authentication with the server.

10. 1. A method for processing an upgrade package for a vehicle, comprising: dividing, by a server, the upgrade package for the vehicle into a plurality of data blocks; distributing, by the server, the plurality of data blocks to a plurality of terminals, the plurality of data blocks being configured to be combined into the upgrade package for the vehicle by a first terminal, the first terminal being one of the plurality of terminals receiving a plurality of data blocks of the plurality of data blocks from a terminal other than the first terminal of the plurality of terminals; Including, the plurality of data blocks are encrypted data blocks, and a key for decrypting the plurality of data blocks and a validity time of the key are obtained by the first terminal from the server; The method, wherein at least one of the plurality of terminals is a charging pile.

11. said step of dividing, by a server, the upgrade package for the vehicle into a plurality of data blocks, The method of claim 10, comprising the step of encrypting, by the server, the upgrade package for the vehicle according to an encryption algorithm, and dividing the encrypted upgrade package for the vehicle into the plurality of data blocks.

12. The server is a proxy server, and before the step of dividing the upgrade package of the vehicle into a plurality of data blocks by the server, the method further comprises:

12. The method of claim 10 or 11, further comprising the step of obtaining, by the proxy server, the upgrade package for the vehicle from an over-the-air (OTA) server.

13. The step of obtaining the upgrade package for the vehicle from an over-the-air (OTA) server by the proxy server includes: sending a vehicle upgrade package acquisition request to the OTA server by the proxy server, the vehicle upgrade package acquisition request including an operating system type of the vehicle and a version of the vehicle; receiving, by the proxy server, the upgrade package for the vehicle sent by the OTA server when the proxy server has successfully completed security verification with the OTA server, the upgrade package for the vehicle being generated by the OTA server based on the type of the operating system of the vehicle and the version of the vehicle; 13. The method of claim 12, comprising:

14. After the step of distributing, by the server, the plurality of data blocks to a plurality of terminals, the method further comprises:

14. The method according to claim 10, further comprising the step of recording, by the server, a correspondence relationship between the plurality of data blocks obtained by dividing the upgrade package of the vehicle and the plurality of terminals receiving the plurality of data blocks.

15. a first terminal, a receiving module configured to receive a first block of data from a server, the first block of data being used to upgrade a vehicle; and a processing module configured to obtain a second block of data from a second terminal, the second block of data being used to upgrade the vehicle, the second block of data being transmitted by the server to the second terminal; a processing module configured to obtain an upgrade package for the vehicle based on the first data block and the second data block; Including, Both the first data block and the second data block are encrypted data blocks, and a key for decrypting the first data block and the second data block and a valid time of the key are obtained by the first terminal from the server; A first terminal, wherein at least one of the first terminal and the second terminal is a charging pile.

16. The processing module includes: Send a data block acquisition request to the second terminal based on a correspondence relationship between the data block acquired by dividing the upgrade package of the vehicle and the terminal receiving the data block; The first terminal of claim 15, further configured to receive the second data block returned by the second terminal in response to the data block acquisition request.

17. 17. The first terminal of claim 15 or 16, wherein the server is a proxy server, the upgrade package for the vehicle is obtained by the proxy server from an over-the-air (OTA) server, and the first terminal is a vehicle.

18. 17. The first terminal according to claim 15 or 16, wherein the first terminal is a charging pile.

19. The receiving module is further configured to receive an upgrade package acquisition request sent by a vehicle; 20. The first terminal of claim 18, wherein the processing module is further configured to, when the vehicle successfully completes safety verification of the charging pile, return the upgrade package for the vehicle to the vehicle based on the upgrade package acquisition request.

20. 16. The first terminal according to claim 15, wherein each of the length of the first data block and the length of the second data block is an integer multiple of a packet length of an encryption algorithm.

21. the processing module is configured to begin decrypting the first data block at a first time and receive the second data block at a second time, the first time being earlier than the second time; or 21. The first terminal of claim 20, wherein the processing module is configured to begin decrypting the second data block at a third time and to receive the first data block at a fourth time, the third time being earlier than the fourth time.

22. The first data block and the second data block each include a signature of a server that generates the upgrade package for the vehicle, and the processing module: commence decrypting the first data block at the first time upon verifying that the signature in the first data block is the signature of the server generating the upgrade package for the vehicle; 22. The first terminal of claim 21, further configured to initiate decryption of the second data block at the third time upon verifying that a signature in the second data block is the signature of the server generating the upgrade package for the vehicle.

23. 20. The first terminal of claim 15, wherein the receiving module is configured to receive, by the first terminal, the first data block from the server when the first terminal has successfully completed security authentication with the server.

24. A server, a processing module configured to divide the vehicle upgrade package into a plurality of data blocks; a transmission module configured to distribute the plurality of data blocks to a plurality of terminals, the plurality of data blocks being configured to be combined into the upgrade package for the vehicle by a first terminal, the first terminal being one of the plurality of terminals receiving a plurality of data blocks of the plurality of data blocks from a terminal other than the first terminal of the plurality of terminals; Including, the plurality of data blocks are encrypted data blocks, and a key for decrypting the plurality of data blocks and a validity time of the key are obtained by the first terminal from the server; At least one of the plurality of terminals is a charging pile, and a server.

25. 25. The server of claim 24, wherein the processing module is configured to encrypt the upgrade package for the vehicle according to an encryption algorithm and divide the encrypted upgrade package for the vehicle into the plurality of data blocks.

26. 26. The server of claim 24 or 25, wherein the server is a proxy server, and the processing module is further configured to obtain the upgrade package for the vehicle from an over-the-air (OTA) server.

27. The processing module is configured to send a vehicle upgrade package acquisition request to the OTA server, the vehicle upgrade package acquisition request including an operating system type of the vehicle and a version of the vehicle; 27. The server of claim 26, wherein the processing module is configured to receive the upgrade package for the vehicle sent by the OTA server when the proxy server successfully completes security verification with the OTA server, and the upgrade package for the vehicle is generated by the OTA server based on the type of the operating system of the vehicle and the version of the vehicle.

28. 28. The server according to claim 24, wherein the processing module is further configured to record a correspondence between the plurality of data blocks obtained by splitting the upgrade package of the vehicle and the plurality of terminals receiving the plurality of data blocks.

29. 10. An apparatus for processing a vehicle upgrade package comprising a processor and an interface circuit, the interface circuit configured to receive code instructions and transmit the code instructions to the processor, the processor configured to execute the code instructions to perform the method of any one of claims 1 to 9.

30. 15. An apparatus for processing a vehicle upgrade package comprising a processor and an interface circuit, the interface circuit configured to receive code instructions and transmit the code instructions to the processor, the processor configured to execute the code instructions to perform the method of any one of claims 10 to 14.

31. 10. An apparatus for processing vehicle upgrade packages comprising a memory and a processor, the processor executing program instructions in the memory to perform the method of any one of claims 1 to 9.

32. 15. An apparatus for processing vehicle upgrade packages comprising a memory and a processor, the processor executing program instructions in the memory to perform the method of any one of claims 10 to 14.

33. 10. A computer readable storage medium, the computer readable storage medium being configured to store a computer program, the computer program being used to perform the method of any one of claims 1 to 9.

34. 15. A computer readable storage medium, the computer readable storage medium being configured to store a computer program, the computer program being used to perform the method of any one of claims 10 to 14.

35. A system for processing vehicle upgrade packages, comprising a first terminal according to any one of claims 15 to 23 and a server according to any one of claims 24 to 28.

Citation Information

Patent Citations

  • Information processing system, terminal apparatus, transmission server, information processing method, and program

    JP2010191497A

  • How to establish ota session between terminal and ota server, corresponding ota server and reverse proxy server

    JP2017531358A

  • Apparatus and method for update of software program of vehicle based on collaborative communication of v2v and v2i

    KR1020150072809A

  • Vehicle download by remote mobile device

    US20150363210A1

  • Method and system to accelerate IoT patch propagation and reduce security vulnerabilities exposure time

    US20180285088A1