Static file system differencing and updating
Systems and methods are provided for static file system (SFS) differencing and updating. The differencing and updating includes portion-level differencing and block-level updating of units of an original image (referred to as blocks). The differencing and updating splits SFS images into portions based on block information and the image structure. A delta file is generated for each portion (portion-level differencing) of the new SFS image; the delta file includes information of differences between the portion of the new SFS image and the portion of the original SFS image to which the new SFS image portion corresponds. The delta files are transferred to a device where the target SFS image of the device is updated block-by-block using information of the delta files. The block-by-block update reconstructs all portions of the new SFS image in a device block in host device RAM and writes the reconstructed block into host device ROM.
1 . A device for differencing static file system images, comprising:
a receiver that receives images of a static file system, the images including an original image and a new image;
a pre-processor that divides the original image into a plurality of original sections and divides the new image into a plurality of new sections;
a dependency generator that identifies dependency alignments between the plurality of original sections and the plurality of new sections; and
a difference engine that generates a delta file for at least one of the new sections, wherein the delta file includes differences between the at least one new sections and at least one of the original sections on which the at least one new sections depends.
2 . The device of claim 1 , further comprising a packaging engine that assembles the delta file for the at least one of the new sections according to an update sequence.
3 . A method comprising:
splitting blocks of SFS images into portions based on block information and image structure information, wherein the SFS images include original images and new images;
performing portion-level differencing by generating a delta file for a new portion of the new image, wherein the delta file includes information of differences between the new portion and one of more corresponding original portions of the original image;
transferring the delta file to a client device; and
updating a target SFS image of the client device using information of the delta file by reconstructing all portions of the new image in a device block in random access memory of the host device and writing the device block into read-only memory of the host device.
4 . A method comprising:
receiving images of a static file system, the images including an original image and a new image;
dividing the original image into a plurality of original sections and divides the new image into a plurality of new sections;
identifying dependency alignments between the plurality of original sections and the plurality of new sections; and
generating a delta file for at least one of the new sections, wherein the delta file includes differences between the at least one new sections and at least one of the original sections on which the at least one new sections depends.
5 . A system comprising:
a receiver that receives images of a static file system, the images including an original image and a new image;
a pre-processor coupled to the receiver that divides the original image into a plurality of original sections and divides the new image into a plurality of new sections;
a dependency generator coupled to the pre-processor that identifies dependency alignments between the plurality of original sections and the plurality of new sections;
a difference engine coupled to the dependency generator that generates a delta file for at least one of the plurality of new sections that is different from at least one of the plurality of original sections on which the at least one new section depends, the delta file including coded differences between a new section and one or more original sections; and
a packaging engine coupled to the difference engine that assembles the delta files into a delta package.
6 . The system of claim 5 , further comprising an update engine in a portable device, wherein the portable device receives the delta package via at least one coupling, wherein the update engine assembles dependent original sections of the plurality of original sections hosted on the portable device, identifies at least one delta file of the delta package that corresponds to at least one of the dependent original sections, and reconstructs at least one new section that corresponds to the at least one delta file identified.
7 . The system of claim 6 , wherein the update engine receives the delta package and verifies integrity of contents of at least one delta file of the delta package.
8 . The system of claim 6 , wherein the update engine reconstructs the at least one new section in a first memory area of the portable device.
9 . The system of claim 8 , wherein the first memory area is in random access memory (RAM).
10 . The system of claim 8 , wherein the update engine continues identifying delta files of the delta package that correspond to at least one of the dependent original sections and reconstructing new sections that correspond to the delta files identified.
11 . The system of claim 10 , wherein the update engine determines that all delta files of the delta package have been applied to the original sections hosted on the portable device and in response to the determination writes the reconstructed new sections to a second memory area of the portable device.
12 . The system of claim 11 , wherein the update engine writes each block of the reconstructed new sections to a second memory area.
13 . The system of claim 11 , wherein the second memory area is in read-only memory (ROM).
14 . A method comprising:
receiving images of a static file system, the images including an original image and a new image, wherein the images include a plurality of blocks;
splitting the images by using information of the plurality of blocks to split the images into a plurality of portions;
determining differences between content of the images by determining differences between the plurality of portions of the original image and the new image;
generating a delta file that includes the differences for at least one portion.
15 . The method of claim 14 , further comprising transferring the delta file to a portable wireless device that hosts the original image.
16 . The method of claim 14 , further comprising:
receiving the delta file at a portable device via at least one coupling;
assembling dependent original portions of the plurality of original portions hosted on the portable device;
identifying at least one of the dependent original portions that corresponds to the delta file received; and
reconstructing at least one new portion that corresponds to the at least one delta file identified.
17 . The method of claim 14 , further comprising assembling a plurality of the delta files into a delta package.
18 . The method of claim 17 , further comprising transferring the delta package to a portable wireless device that hosts the original image.
19 . The method of claim 18 , further comprising:
receiving the delta package at the portable device via at least one coupling;
assembling dependent original portions of the plurality of original portions hosted on the portable device;
identifying at least one delta file of the delta package that corresponds to at least one of the dependent original portions; and
reconstructing at least one new portion that corresponds to the at least one delta file identified.
20 . Computer readable media including executable instructions which, when executed in a processing system, determine differences between images by:
receiving images of a static file system, the images including an original image and a new image, wherein the images include a plurality of blocks;
splitting the images by using information of the plurality of blocks to split the images into a plurality of portions;
determining differences between content of the images by determining differences between the plurality of portions of the original image and the new image;
generating a delta file that includes the differences for at least one portion.
21 . The media of claim 20 , wherein the media further determines differences between images by transferring the delta file to a portable wireless device that hosts the original image.
22 . The media of claim 20 , wherein the media further determines differences between images by:
receiving the delta file at a portable device via at least one coupling;
assembling dependent original portions of the plurality of original portions hosted on the portable device;
identifying at least one of the dependent original portions that corresponds to the delta file received; and
reconstructing at least one new portion that corresponds to the at least one delta file identified.
23 . The media of claim 20 , wherein the media further determines differences between images by assembling a plurality of the delta files into a delta package.
24 . The media of claim 23 , further comprising transferring the delta package to a portable wireless device that hosts the original image.
25 . The media of claim 24 , further comprising:
receiving the delta package at the portable device via at least one coupling;
assembling dependent original portions of the plurality of original portions hosted on the portable device;
identifying at least one delta file of the delta package that corresponds to at least one of the dependent original portions; and
reconstructing at least one new portion that corresponds to the at least one delta file identified.