IP Library Granted Patent US 10,409,585
Granted Patent B2
US 10,409,585 · App. 15/896,899 · Granted Sep 10, 2019

Over-the-air (OTA) update for firmware of a vehicle component

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,409,585
App. No.
15/896,899
Filed
Feb 14, 2018
Granted
Sep 10, 2019
Kind
B2
Art Unit
2191
USPC
717/171
Abstract

Executable code is part of an over-the-air (OTA) update received by, for example, a computing device in a vehicle. In one example, the update is a secure over-the-air (SOTA) update of software that is stored in firmware of a vehicle component (e.g., firmware stored in memory of a storage device or a boot device that are mounted in a vehicle).

Claims (51)

1. A method comprising:

receiving, by a first computing device, a first software update from a second computing device;

determining a cryptographic measurement of the first software update;

determining, based on the cryptographic measurement, whether to accept or reject the first software update;

in response to determining to reject the first software update, entering a rescue mode to load rescue mode code, and to execute the rescue mode code to obtain a second software update from the second computing device;

receiving, by the first computing device via wireless transmission, the second software update from the second computing device;

determining authenticity of the second software update by calculating a digest using a message authentication code, wherein the second software update and a secret key are inputs to the message authentication code, and wherein the secret key is stored in memory of the first computing device;

storing the received second software update in memory of the first computing device; and

updating, based on the received second software update, a configuration of the first computing device.

2. The method of claim 1 , wherein the first computing device is an application controller of a vehicle, and receiving the first software update comprises receiving an over-the-air update of the first software update.

3. The method of claim 2 , further comprising detecting a malfunction for an application executed by the application controller, wherein the update is requested by the application controller in response to detecting the malfunction, and wherein the update reconfigures at least one function of the application.

4. The method of claim 1 , further comprising updating firmware using the received second software update, wherein updating the firmware modifies at least one action performed during execution of the firmware.

5. The method of claim 4 , wherein the updated firmware is stored on a boot device or a storage device.

6. The method of claim 1 , wherein the memory of the first computing device is system memory, the method further comprising:

determining, by the first computing device, to accept the second software update;

wherein the received second software update is stored in the system memory.

7. The method of claim 1 , wherein the first computing device controls at least one function of a vehicle, the method further comprising:

prior to receiving the first software update, authenticating a user of the vehicle; and

in response to authenticating the user, requesting the first software update from the second computing device.

8. The method of claim 1 , wherein the first computing device comprises an application controller, the method further comprising, prior to receiving the first software update from the second computing device, loading boot code to the application controller for starting an application of the first computing device.

9. A method comprising:

receiving, by at least one processor via wireless transmission, a first software update from a computing device;

storing the first software update in memory of a boot device;

determining, by the at least one processor, a cryptographic measurement of the first software update;

determining, by the at least one processor, based on the cryptographic measurement, whether to accept or reject the first software update;

in response to determining to reject the first software update, causing an application controller to enter a rescue mode, wherein the rescue mode comprises causing the application controller to load rescue mode code from the boot device, and to execute the rescue mode code to obtain a second software update from the computing device; and

determining authenticity of the second software update by calculating a digest using a message authentication code, wherein the second software update and a secret key are inputs to the message authentication code, and wherein the secret key is stored in memory.

10. The method of claim 9 , wherein the computing device is at least one server.

11. The method of claim 9 , further comprising, in response to determining the authenticity of the second software update, copying the second software update to system memory.

12. The method of claim 9 , wherein the computing device is a cloud platform, and the cryptographic measurement is determined by a cryptographic engine of the application controller, the method further comprising:

prior to determining the cryptographic measurement, causing the application controller to receive a data value from the boot device, and to store the data value in memory of the application controller.

13. The method of claim 12 , further comprising, in response to determining to reject the first software update, causing the application controller to discard software previously-stored in system memory of the application controller.

14. The method of claim 9 , wherein the at least one processor controls at least one function of a vehicle, the method further comprising:

prior to receiving the first software update from the computing device, collecting data from at least one sensor of the vehicle;

analyzing the collected data, the analyzing comprising providing the collected data as an input to a computer model;

determining an output from the computer model;

determining, based on the output from the computer model, at least one desired characteristic; and

sending at least one communication to the computing device, wherein the at least one communication identifies the at least one desired characteristic, and wherein the computing device is configured to, in response to receiving the at least one communication, select the first software update based on the at least one desired characteristic.

15. A system comprising:

at least one processor; and

memory containing instructions configured to instruct the at least one processor to:

receive, via wireless transmission, a first software update from a first source;

store the first software update in a first memory;

determine a cryptographic measurement of the first software update;

determine, based on the cryptographic measurement, whether to accept or reject the first software update;

in response to determining to reject the first software update, enter a rescue mode to obtain a second software update from a second source; and

determine authenticity of the second software update by calculating a digest using a message authentication code, wherein the second software update and a secret key are inputs to the message authentication code, and wherein the secret key is stored in memory.

16. The system of claim 15 , wherein the instructions are further configured to instruct the at least one processor to, in response to determining to reject the first software update, update at least a portion of software stored in system memory.

17. The system of claim 15 , wherein a computer program corresponding to the second software update is stored in system memory, and wherein the instructions are further configured to instruct the at least one processor to, in response to determining to accept the second software update, execute the computer program.

18. The system of claim 15 , wherein the rescue mode comprises loading rescue mode code from a boot device into an application controller, and executing, by the application controller, the rescue mode code to obtain the second software update.

19. The system of claim 15 , wherein the rescue mode comprises executing, by a boot device, rescue mode code to obtain the second software update from the second source.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2023
From: MICRON TECHNOLOGY, INC.
To: LODESTAR LICENSING GROUP LLC
Reel/Frame 065359/0203 →
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 11, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050713/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2019
From: BIELBY, ROBERT RICHARD NOEL
To: MICRON TECHNOLOGY, INC.
Reel/Frame 049922/0168 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2018
From: TROIA, ALBERTO
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047658/0494 →
SUPPLEMENT NO. 9 TO PATENT SECURITY AGREEMENT Recorded Aug 9, 2018
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 047282/0463 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
Cited By (2)
US 12,259,781 US 12,687,913