Offset-Based Binary Patching for Mobile ROM Updates
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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
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.
Data Source
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.


