Offset-Based Binary Patching for Mobile ROM Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In mobile devices with low-bandwidth connections, patching large machine-generated binary tables like the Java 2 Platform, Micro Edition (J2ME) system ROM image is inefficient due to the large number of reference changes caused by minor modifications, resulting in significant increases in patch size and transfer time.

Innovation Solution

Converting absolute references to offset-based references, using a location structure to track object locations, and applying an offset-based patch reduces the number of reference changes, thereby minimizing the patch size and data transfer during the patching process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If absolute references are used in binary tables, then object locations can be directly accessed, but any modification to object locations causes all references to change, dramatically increasing patch size

Engineering Contradiction:
Improvereference accuracyVSAvoidpatch size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent introduces an intermediary layer (offset values and base address structure) between the original absolute references and the actual object locations. Instead of directly storing absolute addresses, the system stores base addresses and offsets separately. This intermediary structure allows object locations to be modified by changing only the base address while keeping offsets unchanged, thereby reducing the number of references that need to be updated in patches.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent transforms the reference representation from absolute addresses to a parameterized form consisting of base addresses and offsets. This parameter change allows independent modification of the base address parameter without affecting the offset parameters, enabling localized updates that reduce patch size while maintaining reference accuracy.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If a complete binary image is transferred to update devices, then all updates are applied, but bandwidth consumption increases and transfer time becomes very long

Engineering Contradiction:
Improveupdate completenessVSAvoidtransfer time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts and separates the reference information into distinct components (base addresses and offsets) that can be independently patched. This extraction enables the transmission of only the necessary changes (such as modified base addresses or specific offset values) rather than transferring complete binary images, thereby reducing bandwidth consumption and transfer time while ensuring update completeness.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the reference structure into base address components and offset components. This segmentation allows the patching process to transmit only the segments that have changed, rather than transferring the entire binary image. The segmented approach maintains update completeness by ensuring all necessary changes are transmitted while significantly reducing transfer time through selective transmission.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If binary diff technique is used to send only differences, then bandwidth is reduced, but the number of reference changes dramatically increases patch size

Engineering Contradiction:
Improvedata transfer volumeVSAvoidpatch processing complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by transforming absolute references into base address and offset parameters. This transformation reduces the number of parameters that need to be changed in patches, as base addresses can be updated independently of offsets. The reduced number of changes decreases patch size and simplifies patch processing complexity while maintaining effective bandwidth reduction through binary diff techniques.

Inventive Principle:
Principle #35Parameter changes

4Ease of manufacture

If object locations are modified in the binary image, then bug fixes and updates are applied, but all references to those objects must be updated, increasing patch size

Engineering Contradiction:
Improveupdate applicabilityVSAvoidpatch size
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent uses base addresses as intermediaries between object identities and their actual locations. When bug fixes or updates require object location modifications, only the base address intermediary needs to be changed, not all individual references. This intermediary mechanism maintains ease of manufacture by simplifying the update application process while reducing patch size by limiting the scope of changes required.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7716658B2Method and apparatus for optimizing patching of objects containing references
Publication Date: 2010.05.11 ORACLE AMERICAN INC
  • US7716658B2 patent drawing
  • US7716658B2 patent drawing
  • US7716658B2 patent drawing

AI summary

One embodiment of the present invention provides a method and a system for patching a set of objects containing references. The system uses a location structure to keep track of the locations of references within the set of objects. During the patching process, the system converts the references within the set objects from an absolute form into an offset-based form, where offsets are computed with respect to base addresses of objects. The system then applies an offset-based patch to the set of objects and to the location structure using a binary-patching technique. After applying the patch, the system converts the references in the set of objects back into absolute form. By using an offset-based patch, the system reduces the number of reference changes that need to be specified in the patch, thereby reducing the size of the patch.