IP Library Granted Patent US 7,003,534
Granted Patent B2
US 7,003,534 · App. 10/298,393 · Granted Feb 21, 2006

Generating difference files using module information of embedded software components

Assignee: InnoPath Software, Inc.
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 7,003,534
App. No.
10/298,393
Granted
Feb 21, 2006
Kind
B2
Abstract

In generating difference information between different file versions, a software component distributor (SCD) receives new files and corresponding original files. The SCD generates a new map file, hex file, and device memory map (DMM) for the new file. Module information is read from the new file using information of the new map file and hex file. The SCD, using the module information, compares the new DMM with the DMM of the original file, identifying inserted and deleted modules of the new file in response to the comparison. The SCD identifies remaining modules of the new file in which the contents remain the same as corresponding modules of the original file, where the remaining modules are modules of the new file not identified as inserted modules. The SCD generates difference information representative of the inserted modules, deleted modules, and remaining modules in which the contents remain the same.

Claims (31)

1. A system for updating electronic files comprising at least one processor-based device hosting a module information extractor, the module information extractor:

receiving byte streams including an original byte stream and a new byte stream, wherein each of the original and new byte streams include at least one module;

generating a new map file, new hex file, new binary file, and new device memory map (DMM) associated with the new byte stream;

reading module information of the modules of the new byte stream using information of the new map file and the new hex file;

comparing the new DMM with an original DMM using the module information, wherein the original DMM corresponds to the original byte stream;

identifying inserted and deleted modules of the new byte stream in response to the DMM comparison, the inserted modules being present in the new byte stream and absent from the original byte stream and the deleted modules being absent from the new byte stream and present in the original byte stream;

identifying remaining modules in which the contents remain the same as corresponding modules of the original byte stream, wherein the remaining modules are any modules of the new byte stream not identified as inserted modules; and

generating difference information representative of the inserted modules, deleted modules, and remaining modules in which the contents remain the same.

2. The system of claim 1 , wherein identifying remaining modules in which the contents remain the same further comprises:

comparing sizes of remaining modules of the new byte stream with corresponding modules of the original byte stream; and

selecting remaining modules on which to apply file differencing in response to information of the size comparison.

3. The system of claim 2 , wherein selecting remaining modules on which to apply file differencing further comprises applying file differencing to module contents of the remaining modules of the new byte stream for which the size comparison indicates a difference in size.

4. The system of claim 2 , wherein selecting remaining modules on which to apply file differencing further comprises:

comparing module contents of the remaining modules of the new byte stream with module contents of the corresponding modules when the size comparison indicates corresponding modules of the new and original byte streams are of the same size; and

applying file differencing on modules of the new byte stream for which the content comparison indicates a difference in content from the corresponding modules of the original byte stream.

5. The system of claim 2 , further comprising a file differencing algorithm coupled to receive and apply byte-level file differencing to the selected remaining modules.

6. The system of claim 1 , wherein identifying inserted and deleted modules of the new byte stream further comprises identifying address ranges of the identified inserted and deleted modules by comparing the new binary file with the new DMM.

7. The system of claim 1 , further comprising a database coupled to receive the new map file, the new hex file, the new binary file, the new DMM, and the difference information from the module information extractor.

8. The system of claim 7 , wherein the difference information is stored in a difference file.

9. The system of claim 1 , wherein the module information includes at least one of a module name, module start address, module size, and reserved memory area size.

10. The system of claim 1 , further comprising a map file editor for editing the module information.

11. The system of claim 1 , wherein the original and new byte streams comprise software files including dynamic link library files, shared object files, embedded software components (EBSCs), firmware files, executable files, data files including hex data files, system configuration files, and files including personal use data.

12. The system of claim 1 , wherein the at least one processor-based device is at least one of personal computers, portable computing devices, cellular telephones, portable communication devices, and personal digital assistants.

13. A computer readable medium including executable instructions which, when executed in a processing system, performs differencing between electronic files, comprising:

receiving byte streams including an original byte stream and a new byte stream, wherein each of the original and new byte streams include at least one module;

generating a new map file, new hex file, new binary file, and new device memory map (DMM) associated with the new byte stream;

reading module information of the modules of the new byte stream using information of the new map file and the new hex file;

comparing the new DMM with an original DMM using the module information, wherein the original DMM corresponds to the original byte stream;

identifying inserted and deleted modules of the new byte stream in response to the DMM comparison, the inserted modules being present in the new byte stream and absent from the original byte stream and the deleted modules being absent from the new byte stream and present in the original byte stream;

identifying remaining modules in which the contents remain the same as corresponding modules of the original byte stream, wherein the remaining modules are any modules of the new byte stream not identified as inserted modules; and

generating difference information representative of the inserted modules, deleted modules, and remaining modules in which the contents remain the same.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2016
From: QUALCOMM TECHNOLOGIES, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 039900/0760 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2016
From: INNOPATH SOFTWARE, INC.
To: QUALCOMM TECHNOLOGIES, INC.
Reel/Frame 038943/0852 →
CHANGE OF NAME Recorded Jan 26, 2006
From: DOONGO TECHNOLOGIES, INC.
To: INNOPATH SOFTWARE, INC.
Reel/Frame 017207/0673 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2003
From: PENG, LUOSHENG
To: DOONGO TECHNOLOGIES, INC.
Reel/Frame 013703/0686 →
Continuity (1)
Related Publication 20040098420A1 · May 20, 2004