IP Library Granted Patent US 9,292,266
Granted Patent B2
US 9,292,266 · App. 13/641,279 · Granted Mar 22, 2016

Preprocessor for file updating

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 9,292,266
App. No.
13/641,279
Granted
Mar 22, 2016
Kind
B2
Abstract

A method for updating a computer the includes converting a first computer the to executable byte code and receiving a second computer the that includes a change that distinguishes the second computer file from the first computer file. The method also includes converting the second computer the to executable byte code and comparing at least a portion of the executable byte code of the second computer file with at least a portion of the executable byte code of the first computer file. The method further includes inserting, into the executable byte code the first computer file, a modification that causes at least a portion of the executable byte code of the first computer the to resemble the executable byte code of the second computer file.

Claims (28)

1. A method for updating a computer file using a preprocessor of a transmitter, the method comprising:

converting a first computer file to executable byte code, wherein the executable byte code includes a table of strings and a table of pointers;

receiving a second computer file that includes a change that distinguishes the second computer file from the first computer file;

converting the second computer file to executable byte code;

comparing at least a portion of the executable byte code of the second computer file with at least a portion of the executable byte code of the first computer file;

inserting, by the preprocessor of the transmitter, into the executable byte code of the first computer file, a modification that causes at least a portion of the executable byte code of the first computer file to resemble the executable byte code of the second computer file, wherein the modification includes a string and a pointer to the string inserted into the executable byte code of the first computer file;

generating an update using a generator that compares the first computer file as modified by the insertion and the second computer file; and

transmitting the update to a receiver.

2. The method of claim 1 , further comprising encoding changes to the executable byte code of the first computer file by encoding the string and the pointer to the string by encoding only the differences between the executable byte code of the first and second computer files.

3. The method of claim 1 , wherein the executable byte code of the first and second computer files are Dalvik executable files.

4. The method of claim 1 , wherein the executable byte code of the first computer file and the executable byte code of the second computer file correspond to Java byte code executable by a Java virtual machine.

5. The method of claim 1 , wherein the comparing step includes comparing the length of a string and the characters within the string and identifying a match when the length and characters of the strings are identical.

6. The method of claim 1 , further comprising conveying at least one flag that identifies a table of the executable byte code of the first computer file that should be preprocessed.

7. The method of claim 1 , wherein the first computer file is transmitted wirelessly to a plurality of receiving devices.

8. A system for preparing an update to an executable file using a preprocessor of a transmitter, the system comprising:

the transmitter including a processor configured to:

convert a first computer file to executable byte code, wherein the executable byte code includes a table of strings and a table of pointers;

receive a second computer file that includes a change that distinguishes the second computer file from the first computer file;

convert the second computer file to executable byte code, wherein the executable byte code includes a table of strings and a table of pointers;

compare at least a portion of the executable byte code of the second computer file with at least a portion of the executable byte code of the first computer file;

insert into the executable byte code of the first computer file, a modification that causes at least a portion of the executable byte code of the first computer file to resemble the executable byte code of the second computer file, wherein the modification includes a string and a pointer to the string inserted in to the executable byte code of the first computer file;

generate an update using a generator that compares the first computer file as modified by the insertion and the second computer file; and

transmit the update to a receiver.

9. The system of claim 8 , wherein the preprocessor compares the length and characters of a string from the executable byte code of the first computer file with the length and characters of a string from the executable byte code of the second computer file to determine if the strings are identical.

10. The system of claim 8 , wherein the preprocessor operates on Java executable byte code.

11. The system of claim 8 , wherein the preprocessor operates on Dalvik executable byte code.

12. The system of claim 11 , wherein the table of pointers in each of the first and second computer files includes pointers that are monotonically increasing in the table.

13. The system of claim 8 , wherein the update is transmitted wirelessly to a plurality of receiving client devices.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2014
From: HEWLETT-PACKARD COMPANY; HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.; PALM, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 032177/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2013
From: PALM, INC.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 031837/0239 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2013
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: PALM, INC.
Reel/Frame 031837/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2013
From: PALM, INC.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 031837/0659 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2013
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: PALM, INC.
Reel/Frame 030341/0459 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2013
From: MOTTA, GIOVANNI; SAYDAG, SAIT CAN; VARMA, ASHISH VINOD; WU, FU JUN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 030194/0207 →