Reverse Binary Patch Generation via Index File
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for generating reverse patches are computationally intensive and memory-scarce devices struggle to undo software updates efficiently, especially when distributing both forward and reverse patches, which can be time-consuming and costly in terms of bandwidth.
Innovation Solution
A method and system for generating a reverse patch by creating a reverse index file at a server, which identifies regions of similarity between old and new binary images, allowing devices to efficiently recover the old binary image by applying the forward patch and using the reverse index file to generate the reverse patch.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a full reverse patch is distributed to allow undoing software updates, then devices can efficiently rollback updates, but bandwidth consumption and distribution costs increase significantly
Solution Approach 1:
The patent extracts only the essential indexing information needed for reverse patching from the complete reverse patch data. The server generates and distributes a compact reverse index file that contains only the location and size information of similar regions, rather than distributing the entire reverse patch. This extraction principle reduces the distributed data volume while preserving the core functionality needed for rollback operations.
Solution Approach 2:
The patent segments the reverse patch generation process into two distinct phases: (1) server-side generation of the compact reverse index file containing similarity region metadata, and (2) client-side generation of the actual reverse patch using the index file and forward patch data. This segmentation allows the heavy computational work to be distributed appropriately, with the server handling preprocessing and the client handling on-demand reverse patch creation.
2Reliability
If devices generate reverse patches locally to enable undo functionality, then rollback capability is provided, but computational burden and memory requirements exceed device capabilities
Solution Approach 1:
The patent applies preliminary action by having the server pre-compute and store the reverse index file containing all necessary similarity region information before the client needs it. This pre-processing eliminates the need for devices to perform complex indexing operations locally, as all the heavy computational work of identifying similar regions has already been done server-side and the results are packaged in the compact index file.
Solution Approach 2:
The reverse index file serves as an intermediary data structure between the forward patch and the reverse patch generation process. It contains pre-computed similarity region metadata that mediates between the stored forward patch and the client's memory resources, enabling reverse patch creation without requiring the device to perform computationally intensive indexing operations or store large amounts of binary data simultaneously.
3Reliability
If both forward patch and reverse patch are distributed, then complete update and rollback functionality is provided, but download time and cost increase
Solution Approach 1:
The patent uses copying by having the client retrieve and apply the forward patch to create the new binary image, then use the reverse index file to identify similar regions and copy the necessary data back to create the reverse patch. This copying approach allows the system to generate the reverse patch on-demand from existing data (forward patch and index file) rather than distributing a pre-computed reverse patch, significantly reducing download requirements.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A reverse patch for undoing a forward patch for obtaining a new binary image from an old binary image is generated in two parts. First a reverse index file is generated when the forward patch is created at a host or server. The reverse index file identifies regions of similarity between the old binary image and the new binary image. The reverse index file is transmitted with the forward patch to an electronic device. Second, while applying the forward patch to obtain the new binary image from the old binary image, the electronic device generates the reverse patch based upon the new binary image, the old binary image, and the reverse index file. The forward patch and reverse patch may both be incremental patches. Incremental patches are generated and applied on a sector-by-sector basis.