IP Library › Granted Patent US 10,353,692
Granted Patent B2
US 10,353,692 · App. 15/578,724 · Granted Jul 16, 2019

Method for updating a control unit for an automotive vehicle, control unit for an automotive vehicle, and computer program product

Inventors: Christian Goltz (Berlin, DE); Wolfgang Smidt (Berlin, DE)
Assignee: OpenSynergy GmbH
G06F8/65G06F9/4406G06F9/45558G06F11/1433G06F21/57G06F21/64H04L63/0428H04L63/0838H04L67/34G06F2009/45587G06F2221/034
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,353,692
App. No.
15/578,724
Granted
Jul 16, 2019
Kind
B2
Abstract

The present invention relates to a method for updating a control unit ( 1 ) for an automotive vehicle, the control unit comprising a runtime system ( 22, 122 ) with a virtualization layer ( 32, 132 ) adapted to run on the processor ( 3 ), the virtualization layer being adapted to assign processor time and memory space to a plurality of guest systems ( 24, 26, 28, 30, 124, 126, 128, 130, 158 ), the method comprising: downloading ( 1018 ), by a first update client ( 38, 40, 138, 140 ) of a first untrusted guest system ( 26, 28 ) running on the virtualization layer ( 32, 132 ), one or more first update files or data segments from a first remote server ( 44, 46, 48, 144, 146, 148 ); storing, by the first update client ( 38, 40, 138, 140 ), the one or more first update files or data segments in an untrusted memory ( 5 ) accessible to the first untrusted guest system; running an update operating system ( 58, 158 ) adapted to update one or more files or data segments of the control unit; retrieving, by the updating operating system ( 58, 158 ), the one or more first update files or data segments from the untrusted memory ( 5 ); and updating ( 1108, 1110, 1112, 1114 ) the one or more files or data segments of the control unit ( 1 ).

Claims (46)

1. Method for updating an electronic control unit (ECU) for an automotive vehicle, the ECU comprising a runtime system with a virtualization layer adapted to run on a processor, the virtualization layer being adapted to assign processor time and memory space to a plurality of guest systems running on the virtualization layer in the ECU, the plurality of guest systems comprising a first trusted guest system and a first untrusted guest system, wherein the first trusted guest system runs a system supervisor server that provides the state of the ECU and/or of the other guest systems to the guest systems, wherein, in particular, the states of the ECU include one or more states of the automotive vehicle, one or more states of a system that the ECU is part of, or one or more states of other devices of the system or the automotive vehicle that the ECU is part of, the method comprising:

downloading, by a first update client of the first untrusted guest system running on the virtualization layer in the ECU of said automotive vehicle, one or more first update files or data segments from a first remote server;

storing, by the first update client, the one or more first update files or data segments in an untrusted memory in the ECU of said automotive vehicle accessible to the first untrusted guest system;

running an update operating system in the ECU of said automotive vehicle adapted to update one or more files or data segments of the ECU;

retrieving, by the update operating system layer in the ECU of said automotive vehicle, the one or more first update files or data segments from the untrusted memory; and

updating the one or more files or data segments of the ECU in the ECU of said automotive vehicle.

2. Method according to claim 1 , wherein the method further comprises:

initiating a reboot, by the first trusted guest system running on the virtualization layer; and

after reboot, starting an updating system comprising the update operating system.

3. Method according to claim 1 , wherein the method further comprises:

downloading, by a second update client of a second untrusted guest system running on the virtualization layer, one or more second update files or data segments from a second remote server or the first remote server;

storing, by the second update client, the one or more second update files or data segments in the untrusted memory;

retrieving, by the updating operating system, the one or more second update files or data segments from the untrusted memory; and

selecting, by the update operating system, the one or more files or data segments to be used for the update from the one or more first update files or data segments and the one or more second update files or data segments.

4. Method according to claim 1 , wherein the method further comprises before downloading, by the first untrusted guest system, one or more first update files or data segments:

initiating a download of one or more first update files or data segments by a second update client of a second untrusted guest system,

upon failure to download one or more update files or data segments by a second untrusted guest system, initiating a download of the one or more first update files or data segments by the first untrusted guest system.

5. Method according to claim 1 , wherein said updating one or more files or data segments of the ECU comprises updating one or more files or data segments of the runtime system and/or update operating system.

6. Method according to claim 1 , further comprising verifying, by the updating operating system, the one or more first and/or second update files or data segments.

7. Method according to claim 1 , wherein a reboot of the ECU is initiated by the first trusted guest system of the ECU after reception of a reboot signal, the method further comprising:

receiving, by the first trusted guest system, the reboot signal from a remote server or

a boot of the update operating system on the virtualization layer is initiated by the first trusted guest system of the ECU after reception of an update command, the method further comprising receiving, by the first trusted guest system, the update command from a remote server.

8. Method according to claim 7 , wherein the first trusted guest system communicates to the remote server via one of the first or second untrusted guest systems.

9. Method according to claim 7 , wherein the first trusted guest system communicates to the remote server via one of the first or second untrusted guest systems via an encrypted communication channel.

10. Method according to claim 1 , wherein one or more signals received by the first trusted guest system are encrypted by the remote server and decrypted by the first trusted guest system.

11. Method according to claim 10 , further comprising:

generating a shared secret by the first trusted guest system;

sending the shared secret to the remote server;

receiving, by the first trusted guest system, the one or more signals encrypted with a one-time password based on the shared secret;

verifying, by the first trusted guest system, whether one-time password is correct; and,

if the one-time password is correct, executing the signal command.

12. Method according to claim 10 , wherein the one or more signals are the reboot signal or the update command.

13. Method according to claim 10 , wherein the one or more signals are encrypted with a one-time password.

14. Method according to claim 1 , wherein the first trusted guest system runs a system supervisor server, the system supervisor server having a privilege to reboot the ECU.

15. Computer program product comprising non-transitory computer readable mediums storing commands for executing when loaded and executed on a processor, a method for updating a an electronic control unit (ECU) for an automotive vehicle, the ECU comprising a runtime system with a virtualization layer adapted to run on the processor, the virtualization layer being adapted to assign processor time and memory space to a plurality of guest systems, the plurality of guest systems comprising a first trusted guest system and a first untrusted guest system, wherein the first trusted guest system runs a system supervisor server, the system supervisor server providing the state of the ECU and/or of the other guest systems to the guest systems, wherein, in particular, the states of the ECU include one or more states of the automotive vehicle, one or more states of a system which the ECU is part of, or one or more states of other devices of the system or the automotive vehicle the ECU is part of, the method comprising:

downloading, by a first update client of a first untrusted guest system running on the virtualization layer in the ECU of said automotive vehicle, one or more first update files or data segments from a first remote server;

storing, by the first update client, the one or more first update files or data segments in an untrusted memory in the ECU of said automotive vehicle accessible to the first untrusted guest system;

running an update operating system adapted to update one or more files or data segments of the ECU of said automotive vehicle;

retrieving, by the update operating system in the ECU of said automotive vehicle, the one or more first update files or data segments from the untrusted memory; and

updating the one or more files or data segments of the ECU of said automotive vehicle.

16. Electronic control unit (ECU) for an automotive vehicle comprising:

at least one central processing unit (CPU) connected to at least one untrusted memory;

a runtime system running on the ECU, the runtime system comprising a virtualization layer adapted to run on the CPU, the virtualization layer being adapted to assign processor time and memory space to a plurality of guest systems, the plurality of guest systems comprising a first trusted guest system and a first untrusted guest system;

the first trusted guest system running a system supervisor server, the system supervisor server providing the state of the ECU and/or of the other guest systems to the guest systems, wherein, in particular, the states of the ECU include one or more states of the automotive vehicle, one or more states of a system which the ECU is part of, or one or more states of other devices of the system or the automotive vehicle the ECU is part of;

the first untrusted guest system running on the virtualization layer in the ECU of said automotive vehicle, the first untrusted guest system comprising a download client and being adapted to download one or more first update files or data segments from a first remote server and to store the one or more first update files or data segments in the at least one untrusted memory in the ECU of said automotive vehicle accessible to the first untrusted guest system; and

an update operating system adapted to retrieving, one or more first update files or data segments from the untrusted memory and to update one or more files or data segments of the ECU of said automotive vehicle.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2024
From: OPENSYNERGY GMBH
To: QUALCOMM TECHNOLOGIES, INC.
Reel/Frame 067850/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: GOLTZ, CHRISTIAN; SMIDT, WOLFGANG
To: OPENSYNERGY GMBH
Reel/Frame 044403/0577 →
Priority Claims (1)
EP 15170139 · Jun 1, 2015 · regional
Continuity (1)
Related Publication 20180173515A1 · Jun 21, 2018
Cited By (2)
US 12,273,360 US 12,470,406