IP Library Granted Patent US 12,190,091
Granted Patent B2
US 12,190,091 · App. 17/578,820 · Granted Jan 7, 2025

Technologies for over-the-air updates for telematics systems

Inventors: Jing Qian (Eden Prairie, MN); Somasundaram Ramiah (Winter Park, FL); Michael N. O'Brien (Chaska, MN); Russell E. Cook (Maple Grove, MN); Mark K. Anderson (Victoria, MN)
Assignee: CalAmp Corp.
G06F8/65G06F21/64H04L67/34
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 12,190,091
App. No.
17/578,820
Granted
Jan 7, 2025
Kind
B2
Abstract

Technologies for remote firmware updates include a telematics cloud server in communication with multiple telematics devices. The server stores a compressed firmware package and a firmware manifest and firmware components from the firmware package. A telematics device sends a status update to the server and receives an acknowledgment that identifies an available firmware release. The telematics device downloads the firmware manifest, and for each firmware component, determines whether to update the firmware component. The firmware component may be a base install or a differential install. The server may flag the firmware component for a forced install. The telematics device may evaluate a device policy or an advanced rule to determine whether to update the firmware. The telematics device may evaluate a machine learning risk model to determine whether to update the firmware. Other embodiments are described and claimed.

Claims (68)

1. A computer device for remote firmware updates, the computer device comprising:

a server interface to receive an acknowledgment from a server device, wherein the acknowledgment comprises a data payload indicative of a firmware manifest and a download path a processor and memory configured to establish;

an update policy engine to determine whether to upgrade firmware based on the data payload; and

an update manager to download the firmware manifest from the server device in response to a determination to upgrade the firmware, wherein the firmware manifest is indicative of a plurality of firmware components and a firmware component version and a base component version for each of the plurality of firmware components;

wherein the update policy engine is further to determine, for a first firmware component of the plurality of firmware components and in response to a download of the firmware manifest, (i) whether the first firmware component is a base component, (ii) whether a base component version of the firmware manifest associated with the first firmware component matches a current firmware component version of the computer device in response to a determination that the first firmware component is not a base component, and (iii) whether to upgrade the first firmware component in response to a determination that the base component version associated with the first firmware component matches the current firmware component version; and

the update manager is further to (i) download the first firmware component from the download path in response to a determination to upgrade the first firmware component, and (ii) install the first firmware component in response to a download of the first firmware component.

2. The computer device of claim 1 , wherein:

the firmware manifest is further indicative of a firmware component checksum for each of the plurality of firmware components;

the update manager is further to verify that a first firmware component checksum of the manifest file matches the first firmware component in response to the download of the first firmware component; and

to install the first firmware component further comprises to install the first firmware component in response to verification of the first firmware component checksum.

3. The computer device of claim 1 , wherein:

the data payload of the acknowledgment is further indicative of a firmware release version; and

to determine whether to upgrade firmware based on the data payload comprises to compare the firmware release version to a current firmware version of the computer device.

4. The computer device of claim 1 , wherein:

to determine whether to upgrade the first firmware component comprises to compare a firmware component version of the firmware manifest to a current firmware component version of the computer device.

5. The computer device of claim 1 , wherein:

the firmware manifest is further indicative of, for each firmware component of the plurality of firmware components, a force install flag, wherein the force install flag is set or not set;

to determine whether to upgrade the first firmware component comprises to determine whether a first force install flag associated with the first firmware component is set; and

to install the first firmware component comprises to install the first firmware component in response to a determination that the first force install flag is set.

6. The computer device of claim 5 , wherein:

to determine whether to upgrade the first firmware component further comprises to evaluate a device policy of the computer device in response to a determination that the first force install flag is not set; and

to install the first firmware component comprises to install the first firmware component in response to evaluating the device policy.

7. The computer device of claim 6 , wherein to evaluate the device policy comprises to determine whether the first firmware component is included in a predetermined list of allowed firmware components.

8. The computer device of claim 6 , wherein to evaluate the device policy comprises to evaluate an advanced rule to determine whether to allow an update of the first firmware component.

9. The computer device of claim 6 , wherein to evaluate the device policy comprises to determine a security priority associated with the first firmware component.

10. The computer device of claim 6 , wherein to evaluate the device policy comprises to evaluate a machine learning risk model.

11. The computer device of claim 1 , wherein:

to determine whether to upgrade the first firmware component further comprises to:

determine whether a base image path associated with the first firmware component is included in the firmware manifest in response to the determination that the first firmware component is not a base component; and

download a base image from the base image path in response to a determination that the base component version associated with the first firmware component does not match the current firmware component version and in response to a determination that the base image path is included in the firmware manifest;

the update manager is further to install the base image in response to a download of the base image; and

to install the first firmware component further comprises to install the first firmware component in response to installation of the base image.

12. A method for remote firmware updates, the method comprising:

receiving, by the computer device, an acknowledgment from a server device, wherein the acknowledgment comprises a data payload indicative of a firmware manifest and a download path;

determining, by the computer device, whether to upgrade firmware based on the data payload;

downloading, by the computer device, the firmware manifest from the server device in response to determining to upgrade the firmware, wherein the firmware manifest is indicative of a plurality of firmware components and a firmware component version and a base component version for each of the plurality of firmware components;

determining, by the computer device and for a first firmware component of the plurality of firmware components, whether the first firmware component is a base component in response to downloading the firmware manifest;

determining, by the computer device, whether a base component version of the firmware manifest associated with the first firmware component matches a current firmware component version of the computer device in response to a determination that the first firmware component is not a base component;

determining, by the computer device, whether to upgrade the first firmware component in response to a determination that the base component version associated with the first firmware component matches the current firmware component version;

downloading, by the computer device, the first firmware component from the download path in response to determining to upgrade the first firmware component; and

installing, by the computer device, the first firmware component in response to downloading the first firmware component.

13. The method of claim 12 , wherein:

the data payload of the acknowledgment is further indicative of a firmware release version; and

determining whether to upgrade firmware based on the data payload comprises comparing the firmware release version to a current firmware version of the computer device.

14. The method of claim 12 , wherein:

determining whether to upgrade the first firmware component comprises comparing a firmware component version of the firmware manifest to a current firmware component version of the computer device.

15. The method of claim 12 , wherein:

the firmware manifest is further indicative of, for each firmware component of the plurality of firmware components, a force install flag, wherein the force install flag is set or not set;

determining whether to upgrade the first firmware component comprises determining whether a first force install flag associated with the first firmware component is set; and

installing the first firmware component comprises installing the first firmware component in response to determining that the first force install flag is set.

16. The method of claim 15 , wherein:

determining whether to upgrade the first firmware component further comprises evaluating a device policy of the computer device in response to determining that the first force install flag is not set; and

installing the first firmware component comprises installing the first firmware component in response to evaluating the device policy.

17. One or more non-transitory, computer-readable storage media comprising a plurality of instructions that in response to being executed cause a computer device to:

receive an acknowledgment from a server device, wherein the acknowledgment comprises a data payload indicative of a firmware manifest and a download path;

determine whether to upgrade firmware based on the data payload;

download the firmware manifest from the server device in response to determining to upgrade the firmware, wherein the firmware manifest is indicative of a plurality of firmware components and a firmware component version and a base component version for each of the plurality of firmware components;

determine, for a first firmware component of the plurality of firmware components, whether the first firmware component is a base component in response to downloading the firmware manifest;

determine whether a base component version of the firmware manifest associated with the first firmware component matches a current firmware component version of the computer device in response to a determination that the first firmware component is not a base component;

determine whether to upgrade the first firmware component in response to a determination that the base component version associated with the first firmware component matches the current firmware component version;

download the first firmware component from the download path in response to determining to upgrade the first firmware component; and

install the first firmware component in response to downloading the first firmware component.

18. The one or more computer-readable storage media of claim 17 , wherein:

to determine whether to upgrade the first firmware component comprises to compare a firmware component version of the firmware manifest to a current firmware component version of the computer device.

19. The one or more computer-readable storage media of claim 17 , wherein:

the firmware manifest is further indicative of, for each firmware component of the plurality of firmware components, a force install flag, wherein the force install flag is set or not set;

to determine whether to upgrade the first firmware component comprises to determine whether a first force install flag associated with the first firmware component is set; and

to install the first firmware component comprises to install the first firmware component in response to determining that the first force install flag is set.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Aug 15, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: CALAMP CORP.; CALAMP WIRELESS NETWORKS CORPORATION; SYNOVIA SOLUTIONS LLC
Reel/Frame 068655/0542 →
RELEASE OF SECURITY INTEREST Recorded Dec 18, 2023
From: PNC BANK, NATIONAL ASSOCIATION
To: CALAMP CORP
Reel/Frame 066059/0252 →
PATENT SECURITY AGREEMENT Recorded Dec 18, 2023
From: CALAMP CORP.; CALAMP WIRELESS NETWORKS CORPORATION; SYNOVIA SOLUTIONS LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 066061/0946 →
PATENT SECURITY AGREEMENT Recorded Dec 18, 2023
From: CALAMP CORP.; CALAMP WIRELESS NETWORKS CORPORATION; SYNOVIA SOLUTIONS LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 066062/0303 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2023
From: QIAN, JING; RAMIAH, SOMASUNDARAM; O'BRIEN, MICHAEL N.; COOK, RUSSELL E.; ANDERSON, MARK K.
To: CALAMP CORP.
Reel/Frame 064793/0523 →
SECURITY INTEREST Recorded Jul 14, 2022
From: CALAMP CORP.; CALAMP WIRELESS NETWORKS CORPORATION; SYNOVIA SOLUTIONS LLC
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 060651/0651 →
Continuity (1)
Related Publication 20230229417A1 · Jul 20, 2023
References Cited (43)
US 8489271B2 · Hergesheimer et al. · 2013 [cited by applicant]
US 8589910B2 · Zubas et al. · 2013 [cited by applicant]
US 9183393B2 · Djabarov et al. · 2015 [cited by applicant]
US 10768921B2 · Sharma · 2020 [cited by applicant]
US 10871952B2 · Wang et al. · 2020 [cited by applicant]
US 10990376B2 · Gandhi et al. · 2021 [cited by applicant]
US 11144301B2 · Troia et al. · 2021 [cited by applicant]
US 11144306B2 · Olderdissen · 2021 [cited by examiner]
US 11295017B2 · Madrid et al. · 2022 [cited by applicant]
US 11449327B2 · David et al. · 2022 [cited by applicant]
US 11824900B2 · Wright · 2023 [cited by examiner]
US 20080172306A1 · Schorr et al. · 2008 [cited by applicant]
US 20090037904A1 · Cohen · 2009 [cited by examiner]
US 20090047929A1 · Chestnutt et al. · 2009 [cited by applicant]
US 20110105082A1 · Haley · 2011 [cited by applicant]
US 20110126189A1 · Galvin · 2011 [cited by examiner]
US 20110153121A1 · Minassian · 2011 [cited by applicant]
US 20120028607A1 · Tengler et al. · 2012 [cited by applicant]
US 20130152069A1 · Li · 2013 [cited by applicant]
US 20140033188A1 · Beavers et al. · 2014 [cited by applicant]
US 20140096217A1 · Lehmann · 2014 [cited by applicant]
US 20140108787A1 · Ando et al. · 2014 [cited by applicant]
US 20140344797A1 · Rajagopalan · 2014 [cited by examiner]
US 20160104123A1 · Viswanath et al. · 2016 [cited by applicant]
US 20160343178A1 · Lesesky et al. · 2016 [cited by applicant]
US 20160344704A1 · Stumpf et al. · 2016 [cited by applicant]
US 20160344705A1 · Stumpf et al. · 2016 [cited by applicant]
US 20170308075A1 · Whitaker et al. · 2017 [cited by applicant]
US 20170142556A1 · Matus · 2017 [cited by applicant]
US 20170214662A1 · Chu · 2017 [cited by applicant]
US 20170242685A1 · Sperlich · 2017 [cited by examiner]
US 20170308705A1 · Karaginides et al. · 2017 [cited by applicant]
US 20180007038A1 · Hsu et al. · 2018 [cited by applicant]
US 20180061230A1 · Madigan et al. · 2018 [cited by applicant]
US 20180091596A1 · Alvarez · 2018 [cited by applicant]
US 20190004787A1 · Lewis et al. · 2019 [cited by applicant]
US 20190036727A1 · Matson · 2019 [cited by examiner]
US 20190190923A1 · Boone et al. · 2019 [cited by applicant]
US 20230112734A1 · Suryanarayana · 2023 [cited by examiner]
SAE International Surface Vehicle Recommended Practice, “E/E Diagnostic Test Modes,” SAE Standard J1979, Issued Dec. 1, 1991, 19 pgs. [cited by applicant]
SAE International Surface Recommended Practice, “OBD II Scan Tool,” SAE Standard J1978, Issued Mar. 1, 1992, 13 pgs. [cited by applicant]
International Search Report and Written Opinion for PCT/US2023/060895 completed May 16, 2023 (7 pages). [cited by applicant]
International Preliminary Report on Patentability issued Jul. 23, 2024 in PCT/US2023/060895, 6 pages. [cited by applicant]