IP Library Granted Patent US 11,169,796
Granted Patent B2
US 11,169,796 · App. 16/529,611 · Granted Nov 9, 2021

Methods and systems for remote software update

Inventors: Nasif Bin Shafi (Richmond, CA); Xinguang Du (Vancouver, CA); Dmitry Narkevich (Port Coquitlam, CA)
Assignee: SIERRA WIRELESS, INC.
G06F8/658H04L9/3239
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 11,169,796
App. No.
16/529,611
Granted
Nov 9, 2021
Kind
B2
Abstract

The present invention provides methods and systems for efficient and effective remote software update on an embedded system by reducing the size of the target update software image.

Claims (38)

1. A method for remote software update on an embedded system, the method comprising:

creating, by a host system, a delta patch containing one or more differentials between a source image and a target image, wherein the creating is performed in a piece-wise manner, the creating including:

splitting the source image into a plurality of source image chunks and splitting the target image into a plurality of target image chunks;

decomposing the plurality of source image chunks and the plurality of target image chunks for comparison of each source image chunk and target image chunk;

determining the one or more differentials between the source image and the target image, each differential determined upon selecting one of the decomposed target image chunks such that the selected target image chunk has minimal difference with a respective one of the decomposed source image chunks;

adding meta-data defining a relationship between the source image and the one or more differentials into a header of the delta patch;

adding the one or more differentials to the delta patch; adding super meta-data to the header of the delta patch; and

transmitting, by the host system, the delta patch to a target system;

wherein the delta patch is created only if the source image and the target image are squashfs images or size of each file is greater than 1 megabyte.

2. The method according to claim 1 , wherein the creating the delta patch further comprises appending one or more cryptographic hashes into the delta patch.

3. The method according to claim 1 , wherein the creating the delta patch further comprises adding a header generated by the host system into the delta patch.

4. The method according to claim 1 , wherein the source image and the target image are squashfs images.

5. A method for remote software update on an embedded system, the method comprising:

receiving, by a target system from a host system, a delta patch containing:

one or more differentials between a source image and a target image, each differential determined upon selecting a target image chunk of the target image, the selected target image chunk having minimal difference with a respective source image chunk of the source image, wherein the source image chunk and the target image chunk are decomposed for comparison of the source image chunk and the target image chunk, before the selection; and

a header including meta-data defining a relationship between the source image and the one or more differentials; and

updating, by the target system, the embedded system using the delta patch;

wherein the sending and receiving of the delta patch are processed in a streaming fashion thereby enabling recreation of the target image to be started without requiring the delta patch in entirety.

6. A host system for remote software update on an embedded system comprising:

a computer processor, a memory and a network interface, the memory including machine executable instructions which when executed by the processor cause the host system to be configured to:

create in a piece-wise manner a delta patch containing one or more differentials between a source image and a target image, wherein to create the delta patch the host system is configured to:

split the source image into a plurality of source image chunks and split the target image into a plurality of target image chunks;

decompose the plurality of source image chunks and the plurality of target image chunks for comparison of each source image chunk and target image chunk;

determine the one or more differentials between the source image and the target image, each differential determined upon selecting one of the decomposed target image chunks, the selected target image chunk having minimal difference with a respective one of the decomposed source image chunks;

add meta-data defining a relationship between the source image and the one or more differentials into a header of the delta path;

add the one or more differentials to the delta patch; add super meta-data to the header of the delta patch; and

transmit the delta patch to a target system;

wherein the delta patch is created only if the source image and the target image are squashfs images or size of each file is greater than 1 megabyte.

7. The host system according to claim 6 , wherein the machine executable instructions which when executed by the processor cause the host system to be further configured to append one or more cryptographic hashes into the delta patch when creating the delta patch.

8. The host system according to claim 6 , wherein the machine executable instructions which when executed by the processor cause the host system to be further configured to add a header generated by the host system into the delta patch when creating the delta patch.

9. The host system according to claim 6 , wherein the source image and the target image are squashfs images.

10. A target system for remote software update on an embedded system comprising:

a computer processor, a memory and a network interface, the memory including machine executable instructions which when executed by the processor cause the target system to be configured to:

receive from a host system a delta patch containing:

one or more differentials between a source image and a target image, each differential determined upon selecting a target image chunk of the target image, the selected target image chunk having minimal difference with a respective source image chunk of the source image, wherein the source image chunk and the target image chunk are decomposed, for comparison of the source image chunk and the target image chunk, before the selection; and

a header including meta-data defining a relationship between the source image and the one or more differentials; and

update the embedded system using the delta patch;

wherein the sending and receiving of the delta patch are processed in a streaming fashion thereby enabling recreation of the target image to be started without requiring the delta patch in entirety.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2023
From: SIERRA WIRELESS, INC.
To: SEMTECH CORPORATION
Reel/Frame 062886/0528 →
CHANGE OF NAME Recorded Feb 28, 2023
From: SIERRA WIRELESS, INC.
To: SIERRA WIRELESS, ULC
Reel/Frame 062886/0422 →
MERGER AND CHANGE OF NAME Recorded Feb 28, 2023
From: SIERRA WIRELESS, ULC; 4462475 NOVA SCOTIA LIMITED; SIERRA WIRELESS, INC.
To: SIERRA WIRELESS, INC.
Reel/Frame 062886/0492 →
RELEASE OF SECURITY INTEREST Recorded Feb 10, 2023
From: CANADIAN IMPERIAL BANK OF COMMERCE
To: SIERRA WIRELESS AMERICA, INC.; SIERRA WIRELESS, INC.
Reel/Frame 062702/0496 →
RELEASE OF SECURITY INTEREST Recorded Jan 12, 2023
From: CANADIAN IMPERIAL BANK OF COMMERCE
To: SIERRA WIRELESS AMERICA INC.; SIERRA WIRELESS INC.
Reel/Frame 062389/0067 →
SECURITY INTEREST Recorded Mar 16, 2022
From: SIERRA WIRELESS, INC.; SIERRA WIRELESS AMERICA INC.
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 059908/0311 →
SECURITY INTEREST Recorded Feb 25, 2022
From: SIERRA WIRELSS, INC.
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 059250/0448 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2019
From: SHAFI, NASIF BIN; DU, XINGUANG; NARKEVICH, DMITRY
To: SIERRA WIRELESS, INC.
Reel/Frame 049936/0868 →