Firmware Patch Compression Using ELF-Based Edit Sequences

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for compressing firmware updates are inefficient, particularly for devices with low bandwidth networks like Bluetooth Mesh, where resources are scarce and bandwidth is limited, necessitating a more effective method for creating and applying patch files.

Innovation Solution

A system and method that analyzes Executable Linkable Format (ELF) files to identify differences between old and new firmware images, creating edit sequences that are converted into opcodes to generate a patch file, which can be applied to update firmware efficiently, using techniques like Levenshtein and Hamming distances, and handling non-function regions such as padding and read-only data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If existing patch creation tools (bsdiff, Courgette) are used to compress firmware updates, then some compression is achieved, but the patch file size is still too large for low bandwidth networks like Bluetooth Mesh

Engineering Contradiction:
Improvepatch file sizeVSAvoidbandwidth efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the firmware image into multiple sections using ELF file format analysis, identifying functions, data segments, and other structured components. This segmentation allows differential comparison at the section level rather than treating the entire firmware as one block, enabling more efficient compression by focusing only on changed sections.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transforms the patch representation from traditional byte-difference formats into an opcode-based parameter system. Each patch operation is represented as an opcode with parameters (source address, destination address, data values), which can be more compactly encoded than raw binary differences, especially when repeated patterns exist.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If traditional differential compression methods are used, then the update process is simpler, but the patch file size remains large and consumes excessive network bandwidth

Engineering Contradiction:
Improvepatch creation complexityVSAvoidpatch file size
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The patent performs preliminary analysis of the firmware image using ELF file format parsing before creating the patch. This preliminary action identifies functions, symbols, and data sections in advance, allowing the patch creation process to work with pre-organized information rather than raw binary data, improving both compression efficiency and applicability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary representation layer between the old and new firmware images - the ELF file format with its structured sections, symbols, and addresses. This intermediary provides a common framework for comparing firmware versions and generating patches that are both compact and easy to apply.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If the entire firmware image is transmitted for updates, then no processing is needed at the recipient, but network bandwidth is excessively consumed

Engineering Contradiction:
Improveupdate application simplicityVSAvoidnetwork bandwidth usage
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential difference information from the firmware update - the minimal set of operations needed to transform the old image into the new image. By taking out only the changed sections and representing them as compact opcodes, the patch file size is dramatically reduced while maintaining the ability to reconstruct the full update at the recipient device.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11789708B2Compression of firmware updates
Publication Date: 2023.10.17 SILICON LABORATORIES INC
  • US11789708B2 patent drawing
  • US11789708B2 patent drawing
  • US11789708B2 patent drawing

AI summary

A system and method for creating firmware patch files is disclosed. The method utilizes the Executable Linkable Format file that is created when the firmware image is created. By analyzing the ELF file, the patch creation software is able to identify functions and other data in the new firmware image. The patch creation software then compares these functions to corresponding functions in the old firmware image. The method then creates an edit sequence that may be used to transform the old firmware image into the new firmware image. The edit sequence is then converted into a series of opcodes, where each opcode is followed by at least one parameter. A patch program, disposed on a network device, is able to apply the patch file to update its firmware. This method creates a smaller patch file than other popular tools.