US20080163189A1 - System for generating efficient and compact update packages - Google Patents

System for generating efficient and compact update packages Download PDF

Info

Publication number
US20080163189A1
US20080163189A1 US12/032,809 US3280908A US2008163189A1 US 20080163189 A1 US20080163189 A1 US 20080163189A1 US 3280908 A US3280908 A US 3280908A US 2008163189 A1 US2008163189 A1 US 2008163189A1
Authority
US
United States
Prior art keywords
update package
source image
code
update
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/032,809
Inventor
Shao-Chun Chen
James P. Gustafson
Jerry Barber
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Bitfone Corp
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Priority to US12/032,809 priority Critical patent/US20080163189A1/en
Publication of US20080163189A1 publication Critical patent/US20080163189A1/en
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BITFONE CORPORATION
Assigned to BITFONE CORPORATION reassignment BITFONE CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GUSTAFSON, JAMES P., CHEN, SHAO-CHUN, BARBER, JERRY
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Definitions

  • the present invention relates generally to the generation of update packages for software and firmware, and, more specifically, to the techniques employed in generating compact and efficient update packages that can be used to upgrade software/firmware from one version to another.
  • Electronic devices such as mobile phones and personal digital assistants (PDAs), often contain firmware and application software either provided by the manufacturer of the electronic devices, by telecommunication carriers, or by third parties.
  • the firmware and application software often contain software bugs. New versions of the firmware and software are periodically released to fix the bugs or to introduce new features, or both.
  • the electronic devices are often constrained in terms of resources, such as available memory. Attempts to upgrade firmware or software by end-users often result in making the device, or some features of the device inoperable. Specifically, changing firmware in electronic devices requires a great deal of caution as unsuccessful attempts may make the device inoperable.
  • attempts to upgrade firmware and/or software in constrained devices may be hampered by limited user interaction capabilities and slow communication speeds on these devices.
  • determination of the version of firmware or software that may currently be executed on the electronic devices may not be an easy task, especially if such determination must be made with minimal end-user interaction.
  • a binary difference file may be distributed from the supplier to the user. The user may then update the executable image with that difference file. Often, the changes required for the upgrade may be small, however, the binary difference file may be very large, and that may cause problems during the upgrading process.
  • aspects of the present invention may be seen in a method for generating efficient and compact update packages in a generation system that comprises a parser for generating distance files between the source image and the target image; a bubble generator for generating bubbles; a configuration manager for facilitating configuration of the memory of the electronic device; a bubble layout manager for modifying the source image to look similar to the target image, the bubble layout manager having a bubbler and a predictor for aligning objects between the source and target images; and a generator for generating update packages, the generator having a residue processing unit for minimizing the number of instructions requiring large spaces in the update package, and an update package output for generating the update package.
  • the system may further comprise a an entropy calculator for calculating the entropy of a segment of data, and a compression unit for facilitating compression of the update package.
  • the method for generating efficient and compact update packages may involve determining files for the source image and the target image; parsing the determined files for the source image and the target image to create distance files for the images; splitting the distance files into one or more parts; verifying the distances determined between the source image and the target image; generating bubble information; configuring the bubble information according to configuration settings; applying the bubble information to the source image; generating an update package; and outputting the update package and the bubble information.
  • FIG. 1 illustrates a block diagram of an example of a system for generating efficient and compact update packages, in accordance with an embodiment of the present invention.
  • FIG. 2 illustrates a block diagram of an example of a generator for generating efficient and compact update packages, in accordance with an embodiment of the present invention.
  • FIG. 3 illustrates a block diagram of an example of a flow model for generating efficient and compact update packages, in accordance with an embodiment of the present invention.
  • FIG. 1 illustrates a block diagram of an example of a system for generating efficient and compact update packages 105 , in accordance with an embodiment of the present invention.
  • the system 105 comprises a parser 107 , a bubble generator 109 , a configuration manager 111 , a bubble layout manager 121 , and a generator 123 .
  • the bubble layout manager 121 comprises a bubbler 113 and a predictor 115 .
  • the generator 123 comprises a residue processing unit 117 and an update package output 119 .
  • the parser 107 may be used for parsing “elf” files or executable images to determine the location of symbols and values of offsets for branch-link instructions, load instructions, pointers, etc.
  • the parser 107 may be employed to generate distance files or “.dist” files.
  • a distance file contains “distance values” of a source image and a target image of a firmware/software of an electronic device, where the target image may be an updated or upgraded version of the source image of the firmware/software.
  • the parser 107 may be employed to pre-process map or “map” files and symbol or “.sym” files to generate “.dist” files.
  • “.dist” files may be generated for both the source and the target binary images of firmware/software of an electronic device.
  • the bubble generator 109 may then process the “.dist” files generated for the source and the target images by the parser 107 .
  • the bubble generator 109 may then output a list of bubbles into a bubbles file.
  • the list of bubbles may contain “Worm” bubbles, indicating a growth in the size of objects, functions, and/or sections of memory in the target image in comparison with the corresponding object or function in the source image of firmware/software.
  • the list of bubbles may also contain “Black” bubbles, indicating a reduction in the size of objects, functions, and/or sections of memory in the target image in comparison with the corresponding object or function in the source image of firmware/software.
  • the bubble generator 109 may process the “.dist” files generated for the source and the target images by the parser 107 , to generate configuration or “.cfg” files.
  • the bubble generator 109 may employ one or more “.dist” files, one for each type of memory component in an electronic device, such as ROM, RAM, FLASH, etc.
  • the bubble generator 109 may then generate a single output file, for example “bubbles.cfg.”
  • the configuration manager 111 facilitates the specification of the configuration of the memory of the electronic device on which the source and the target images of the firmware/software may be executed.
  • the configuration manager 111 may facilitate the generation of a configuration file, or a “.cfg” file.
  • the configuration file may specify a number of configuration parameters including a base address of the RAM, a top address+1 of the RAM (that may be called RAMlimit), a top address+1 of the binary image (that may be called IMAGElimit).
  • the configuration file may also specify a top address+1 of the code section that may be required for some microprocessor architectures, such as THUMB (that may be called CODElimit).
  • the configuration file may specify a top address+1 of the boot block (that may be called Bblimit), a base address of ROM (that may be called ROMbase), an enable or disable instruction disassembler indicator that may be called ARMb 1 , etc.
  • the output of the bubble generator 109 may be processed by the bubble layout manager 121 .
  • the bubble layout manager 121 may process the source image of a firmware/software for an electronic device, and may manipulate the aforementioned source image to line up symbolic addresses, such as addresses in branch links, pointers, etc. with corresponding symbolic addresses in the target image of the firmware/software for the electronic device. As a result, the source image may be modified to look similar to the target image, in preparation for the process of generating an update package by the generator 123 .
  • the predictor 115 may be employed to encapsulate platform-specific issues and platform-specific processing. The predictor 115 may be utilized to align objects or code in the source image with objects or code in the target image. The predictor 115 may compare bytes from the source image to bytes from the target image to establish an alignment between the two images, or between portions of the two images.
  • the generator 123 generates update packages that indicate the difference between any two given versions of firmware/software.
  • the differences may be expressed using a set of instructions and associated data.
  • the system may utilize instructions such as CPY, DUP, SET, SETR, and DEL, explained hereinafter.
  • the generator 123 may process the output of the bubble layout manager 121 to determine an appropriate bank order of updates.
  • the bank order may contain the order in which sections of the objects or code from the source and target images of the firmware/software may be updated.
  • the bank order may be determined based on the order that may provide the most size-efficient update package. Details regarding the significance of the bank order choice are explained hereinafter.
  • the generator 123 may generate the update package. While generating the update package, the generator 123 may utilize the residue processing unit 117 to minimize the number of SET and SETR instructions used in the update package being generated. The residue processing unit 117 may generate compact segments of SET and SETR instructions that form a portion of a generated update package for the firmware/software of the electronic device. The update package output 119 may then save the generated update package into a file, external device, an output stream, etc.
  • the update package generated for a difference file may include instructions such as, CPY, DUP, SET, SETR, and DEL, as mentioned hereinabove.
  • DUP may be used to indicate that a specified number of bytes remain the same in a target image from the source image of the firmware/software.
  • CPY may be used to indicate that a specified number of bytes is the same as the preceding equal number of bytes.
  • DEL may be used to indicate that a specified number of bytes in the source image may not appear in the target image.
  • SET and SETR are used to add new and changed number of bytes into the target image that do not occur in the source image. SET uses completely new information to add to the image, whereas SETR may use an existing segment of information.
  • SETR may utilize a segment of information that appears in the source image, the modified/updated source image, or the target image.
  • the bank order may be considered.
  • the order in which segments of the memory are updated determines at any stage which segments are available as source, updated, or target.
  • the order that provides the optimal/minimal number of instructions, such as SET and SETR, may be the optimal bank order.
  • FIG. 2 illustrates a block diagram of an example of a generator 205 for generating efficient and compact update packages, in accordance with an embodiment of the present invention.
  • the generator 205 comprises a parser 207 , a bubble generator 209 , a configuration manager 211 , a bubbler 213 , a predictor 215 , a residue processing unit 217 , an update package output 219 , an entropy calculator 221 , and a compression unit 223 .
  • the preprocessing steps that may be utilized to prepare the binary images of firmware/software for the generation of an update package may include the processing of binary files, such as “.bin” files, map files, such as “.map” files, symbol files, such as “.sym” files, etc. for both the source image and the target image.
  • the preprocessing steps, that may be conducted by the generator 205 may comprise generation of binary files.
  • Such binary files may include a binary image file corresponding to the source binary image in addition to bubbles that make it look similar to the target binary image.
  • Another binary file may be a binary image file that may include preprocessing instructions in addition to the bubbles used in updating the source image to the target image.
  • the generator 205 may subsequently process the source binary image file that contains the bubbles or the source binary file that contains the bubbles and the preprocessing instructions, along with the target binary image file to generate an update package.
  • the entropy calculator 221 may be employed by the residue processing unit 217 to calculate the entropy of the data associated with a set-buffer, which is a buffer of data assembled from one or more SET or SETR instructions of an update package.
  • the set-buffer may contain the data associated with all SET and SETR instructions encountered during any given stage of the processing by the generator 205 .
  • the residue processing unit 217 may select a SET instruction or a SETR instruction to represent creation/duplication/modification of a current segment of a piece of code or module within the firmware/software being processed.
  • the entropy may be calculated by calculating the frequency of occurrence of each byte in a buffer, calculating the probability of each byte occurring, and employing the frequency of occurrence and/or the probability in an entropy function.
  • the code fragment shown below illustrates an example of an entropy calculation, where prob is an array of calculated probabilities, and prob[i] refers to an i th element in the array:
  • an alternative embodiment may reduce the entropy of the data introduced by the SET instruction, and as a result offer a high compression rate to make an update package more efficient.
  • An alternative embodiment may utilize subtracting SET data from corresponding data in the source, and using the difference between the target and source data instead of just the target data.
  • the SET or target data may look like:
  • This pattern has moderate entropy and may offer a compression rate near 2:1.
  • the source data corresponding to the SET or target data may look like:
  • the entropy of the difference is extremely low, which may offer a much higher compression rate. Therefore, it may be more desirable to use the SET instruction with the difference data rather than the target data.
  • This technique is not limited to the SET instruction.
  • the SETR instruction may offer better results by finding sections in the source, modified, or target images that may provide the smallest difference between sections of data, hence providing sequences with lower entropy and better compression rates. Better results may be achieved by utilizing combinations of SET and SETR instructions.
  • a further enhancement may compute the entropy before and after calculating the residual for the different sections or segments of code and/or data, and for each section or segment, saving the data with the lowest entropy to the update package.
  • the compression unit 223 may facilitate compression of update packages based on one or more compression techniques.
  • the compression unit 223 may provide support for zlib-based compression, as well as other commercial compression techniques, such as LZ compression, pkzip, etc.
  • LZ compression LZ compression
  • pkzip pkzip
  • the bubble information generated by the generator 205 may be packaged along with the update package in one embodiment, or packaged separately from the generated update package in another embodiment.
  • the system may keep a “rough” estimate of locations of sections of the source data where evaluations of entropy values and compression may provide better results.
  • a large fraction of SET instructions may be preceded by a copy instruction, or CPY.
  • the matched SET data will likely reside at that pointer location plus the size of the copy instruction, i.e. the number of bytes of data copied. This embodiment assumes locality of data.
  • FIG. 3 illustrates a block diagram of an example of a flow model 305 for generating efficient and compact update packages, in accordance with an embodiment of the present invention.
  • the flow model 305 shows exemplary steps of a process for generating efficient and compact update packages utilizing bubbles information to make the update packages more compact and efficient.
  • the exemplary process of generating efficient and compact update packages starts at a block 307 where map or “.map” files and/or symbol or “.sym” files for the source binary image of a firmware/software and the target binary image of the firmware/software may be determined. For instance, the “.bin,” “map,” and “.sym” files for both the source and target images of the firmware/software may be identified and accessed.
  • the map and symbol files may be parsed to create one or more distance or “.dist” files.
  • the distance files may be split, if necessary, into one or more parts. These parts may correspond to different sections of code or memory. For example, if ROM, RAM, and IRAM sections are employed in the source and target images, the distance files for each of these memory sections may be separated and saved in different files.
  • the distances may be verified between the source and target images.
  • each of the distance files if more than one exists (for example, a distance file for the different sections of memory), may be verified.
  • bubble information may be generated.
  • the system may utilize a preferred distance specified by a user or accessed from a default configuration setting. The preferred distance utilized may be computed based on heuristics.
  • the bubble information generated may be combined into one “.cfg” file, where the sequence of bubble information may be based on the order of the addresses of the various sections of memory of a binary image. For example, if the memory map of an electronic device for the source/target image, ordered from top to bottom, is ROM, RAM, and IRAM, then the bubble information may be arranged in that order.
  • the configuration information may be retrieved and processed in a step illustrated by block 317 .
  • the source image may be manipulated to make it similar in appearance to the target image by applying the bubble information generated in the earlier block 315 .
  • the application of the bubble information to the source image may be performed by a bubbler utilizing a predictor.
  • the update package may be generated in a next block 321 .
  • the generation of the update package may also employ techniques such as residue processing to make the generated update package more compact and efficient. Additionally, compression techniques may also be employed.
  • a next block 323 is where the update package and the bubble information generated may be packaged together or separately and outputted.
  • the update package and the bubble information generated may be packaged together and saved in a file.
  • the process for generating efficient and compact update packages then ends at block 325 .
  • the system for generating efficient and compact update packages generates bubbles information that may be packaged within the generated update package.
  • the bubbles information, included in the update package when delivered to an electronic device, facilitates the upgrade of the electronic device firmware/software to a new version.

Abstract

A system for generating efficient and compact update packages makes it possible to process a source binary image of software/firmware for an electronic device and a target binary image in order to generate a compact update package. It generates bubbles information that is optionally packaged with the generated update package. Together, the bubbles information and the update package, when delivered to an electronic device, facilitate the upgrade of the electronic device to a new or different version. The system for generating efficient and compact update packages selectively employs residue generation/computation and entropy computation, in addition to other techniques, in order to make the update package more compact.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE
  • This patent application makes reference to, claims priority to and claims the benefit from U.S. Provisional Patent Application Ser. No. 60/405,253, entitled “Firmware Update Network And Process Employing Preprocessing Techniques,” filed on Aug. 22, 2002, U.S. Provisional Patent Application Ser. No. 60/415,620, entitled “System for Generating Efficient And Compact Update Packages,” filed on Oct. 2, 2002, U.S. Provisional Patent Application Ser. No. 60/441,867, entitled “Mobile Handset Update Package Generator That Employs Nodes Technique,” filed on Jan. 22, 2003, and U.S. Provisional Patent Application Ser. No. 60/447,977, entitled “Update Package Generator Employing Partial Predictive Mapping Techniques For Generating Update Packages For Mobile Handsets,” filed on Feb. 18, 2003.
  • The complete subject matter of each of the above-referenced U.S. patent applications is hereby incorporated herein by reference, in its entirety. In addition, this application makes reference to U.S. Provisional Patent Application Ser. No. 60/249,606, entitled “System and Method for Updating and Distributing Information,” filed Nov. 17, 2000, and International Patent Application Publication No. WO 02/41147 A1, entitled “Systems And Methods For Updating And Distributing Information,” publication date Mar. 23, 2002, the complete subject matter of each of which is hereby incorporated herein by reference, in its entirety.
  • This application is also related to the following co-pending applications, the complete subject matter of each of which is hereby incorporated herein by reference in its entirety:
  • Ser.
    No. Docket No. Title Filed Inventors
    14121US02 Firmware Update Network Aug. 21, Chen
    and Process Employing 2003 Gustafson
    Preprocessing
    Techniques
    14312US02 Mobile Handset Update Aug. 21, Chen
    Package Generator 2003
    That Employs Nodes
    Technique
    14911US02 Update Package Generator Aug. 21, Lilley
    Employing Partial 2003
    Predictive Mapping for
    Generating Update
    Packages for Mobile
    Handsets
  • FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
  • [Not Applicable]
  • MICROFICHE/COPYRIGHT REFERENCE
  • [Not Applicable]
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention relates generally to the generation of update packages for software and firmware, and, more specifically, to the techniques employed in generating compact and efficient update packages that can be used to upgrade software/firmware from one version to another.
  • 2. Background of the Art
  • Electronic devices, such as mobile phones and personal digital assistants (PDAs), often contain firmware and application software either provided by the manufacturer of the electronic devices, by telecommunication carriers, or by third parties. The firmware and application software often contain software bugs. New versions of the firmware and software are periodically released to fix the bugs or to introduce new features, or both. There is a fundamental problem in providing access to new releases of firmware and software. The electronic devices are often constrained in terms of resources, such as available memory. Attempts to upgrade firmware or software by end-users often result in making the device, or some features of the device inoperable. Specifically, changing firmware in electronic devices requires a great deal of caution as unsuccessful attempts may make the device inoperable. Also, attempts to upgrade firmware and/or software in constrained devices may be hampered by limited user interaction capabilities and slow communication speeds on these devices. In addition, determination of the version of firmware or software that may currently be executed on the electronic devices may not be an easy task, especially if such determination must be made with minimal end-user interaction.
  • When an electronic device manufacturer/supplier wants to upgrade an electronic device user's executable applications, a binary difference file may be distributed from the supplier to the user. The user may then update the executable image with that difference file. Often, the changes required for the upgrade may be small, however, the binary difference file may be very large, and that may cause problems during the upgrading process.
  • Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of ordinary skill in the art through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.
  • BRIEF SUMMARY OF THE INVENTION
  • Aspects of the present invention may be seen in a method for generating efficient and compact update packages in a generation system that comprises a parser for generating distance files between the source image and the target image; a bubble generator for generating bubbles; a configuration manager for facilitating configuration of the memory of the electronic device; a bubble layout manager for modifying the source image to look similar to the target image, the bubble layout manager having a bubbler and a predictor for aligning objects between the source and target images; and a generator for generating update packages, the generator having a residue processing unit for minimizing the number of instructions requiring large spaces in the update package, and an update package output for generating the update package. The system may further comprise a an entropy calculator for calculating the entropy of a segment of data, and a compression unit for facilitating compression of the update package. The method for generating efficient and compact update packages may involve determining files for the source image and the target image; parsing the determined files for the source image and the target image to create distance files for the images; splitting the distance files into one or more parts; verifying the distances determined between the source image and the target image; generating bubble information; configuring the bubble information according to configuration settings; applying the bubble information to the source image; generating an update package; and outputting the update package and the bubble information.
  • These and other features and advantages of the present invention may be appreciated from a review of the following detailed description of the present invention, along with the accompanying figures in which like reference numerals refer to like parts throughout.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates a block diagram of an example of a system for generating efficient and compact update packages, in accordance with an embodiment of the present invention.
  • FIG. 2 illustrates a block diagram of an example of a generator for generating efficient and compact update packages, in accordance with an embodiment of the present invention.
  • FIG. 3 illustrates a block diagram of an example of a flow model for generating efficient and compact update packages, in accordance with an embodiment of the present invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • FIG. 1 illustrates a block diagram of an example of a system for generating efficient and compact update packages 105, in accordance with an embodiment of the present invention. The system 105 comprises a parser 107, a bubble generator 109, a configuration manager 111, a bubble layout manager 121, and a generator 123. The bubble layout manager 121 comprises a bubbler 113 and a predictor 115. The generator 123 comprises a residue processing unit 117 and an update package output 119.
  • The parser 107 may be used for parsing “elf” files or executable images to determine the location of symbols and values of offsets for branch-link instructions, load instructions, pointers, etc. The parser 107 may be employed to generate distance files or “.dist” files. A distance file contains “distance values” of a source image and a target image of a firmware/software of an electronic device, where the target image may be an updated or upgraded version of the source image of the firmware/software.
  • In one embodiment, the parser 107 may be employed to pre-process map or “map” files and symbol or “.sym” files to generate “.dist” files. Hence, “.dist” files may be generated for both the source and the target binary images of firmware/software of an electronic device.
  • The bubble generator 109 may then process the “.dist” files generated for the source and the target images by the parser 107. The bubble generator 109 may then output a list of bubbles into a bubbles file. The list of bubbles may contain “Worm” bubbles, indicating a growth in the size of objects, functions, and/or sections of memory in the target image in comparison with the corresponding object or function in the source image of firmware/software. The list of bubbles may also contain “Black” bubbles, indicating a reduction in the size of objects, functions, and/or sections of memory in the target image in comparison with the corresponding object or function in the source image of firmware/software.
  • In one embodiment, the bubble generator 109 may process the “.dist” files generated for the source and the target images by the parser 107, to generate configuration or “.cfg” files. The bubble generator 109 may employ one or more “.dist” files, one for each type of memory component in an electronic device, such as ROM, RAM, FLASH, etc. The bubble generator 109 may then generate a single output file, for example “bubbles.cfg.”
  • The configuration manager 111 facilitates the specification of the configuration of the memory of the electronic device on which the source and the target images of the firmware/software may be executed. In one embodiment, the configuration manager 111 may facilitate the generation of a configuration file, or a “.cfg” file. The configuration file may specify a number of configuration parameters including a base address of the RAM, a top address+1 of the RAM (that may be called RAMlimit), a top address+1 of the binary image (that may be called IMAGElimit). The configuration file may also specify a top address+1 of the code section that may be required for some microprocessor architectures, such as THUMB (that may be called CODElimit). In addition, the configuration file may specify a top address+1 of the boot block (that may be called Bblimit), a base address of ROM (that may be called ROMbase), an enable or disable instruction disassembler indicator that may be called ARMb1, etc.
  • The output of the bubble generator 109 may be processed by the bubble layout manager 121. The bubble layout manager 121 may process the source image of a firmware/software for an electronic device, and may manipulate the aforementioned source image to line up symbolic addresses, such as addresses in branch links, pointers, etc. with corresponding symbolic addresses in the target image of the firmware/software for the electronic device. As a result, the source image may be modified to look similar to the target image, in preparation for the process of generating an update package by the generator 123. The predictor 115 may be employed to encapsulate platform-specific issues and platform-specific processing. The predictor 115 may be utilized to align objects or code in the source image with objects or code in the target image. The predictor 115 may compare bytes from the source image to bytes from the target image to establish an alignment between the two images, or between portions of the two images.
  • The generator 123 generates update packages that indicate the difference between any two given versions of firmware/software. The differences may be expressed using a set of instructions and associated data. In one embodiment, the system may utilize instructions such as CPY, DUP, SET, SETR, and DEL, explained hereinafter.
  • In one embodiment, the generator 123 may process the output of the bubble layout manager 121 to determine an appropriate bank order of updates. The bank order may contain the order in which sections of the objects or code from the source and target images of the firmware/software may be updated. The bank order may be determined based on the order that may provide the most size-efficient update package. Details regarding the significance of the bank order choice are explained hereinafter.
  • Once the bank order is determined, the generator 123 may generate the update package. While generating the update package, the generator 123 may utilize the residue processing unit 117 to minimize the number of SET and SETR instructions used in the update package being generated. The residue processing unit 117 may generate compact segments of SET and SETR instructions that form a portion of a generated update package for the firmware/software of the electronic device. The update package output 119 may then save the generated update package into a file, external device, an output stream, etc.
  • The update package generated for a difference file may include instructions such as, CPY, DUP, SET, SETR, and DEL, as mentioned hereinabove. DUP may be used to indicate that a specified number of bytes remain the same in a target image from the source image of the firmware/software. CPY may be used to indicate that a specified number of bytes is the same as the preceding equal number of bytes. DEL may be used to indicate that a specified number of bytes in the source image may not appear in the target image. SET and SETR are used to add new and changed number of bytes into the target image that do not occur in the source image. SET uses completely new information to add to the image, whereas SETR may use an existing segment of information. A benefit of using SETR is that, depending on the stage of the generation process, SETR may utilize a segment of information that appears in the source image, the modified/updated source image, or the target image. In such a case, the bank order may be considered. The order in which segments of the memory are updated determines at any stage which segments are available as source, updated, or target. The order that provides the optimal/minimal number of instructions, such as SET and SETR, may be the optimal bank order.
  • FIG. 2 illustrates a block diagram of an example of a generator 205 for generating efficient and compact update packages, in accordance with an embodiment of the present invention. The generator 205 comprises a parser 207, a bubble generator 209, a configuration manager 211, a bubbler 213, a predictor 215, a residue processing unit 217, an update package output 219, an entropy calculator 221, and a compression unit 223. The preprocessing steps that may be utilized to prepare the binary images of firmware/software for the generation of an update package may include the processing of binary files, such as “.bin” files, map files, such as “.map” files, symbol files, such as “.sym” files, etc. for both the source image and the target image.
  • In one embodiment, the preprocessing steps, that may be conducted by the generator 205 may comprise generation of binary files. Such binary files may include a binary image file corresponding to the source binary image in addition to bubbles that make it look similar to the target binary image. Another binary file may be a binary image file that may include preprocessing instructions in addition to the bubbles used in updating the source image to the target image. The generator 205 may subsequently process the source binary image file that contains the bubbles or the source binary file that contains the bubbles and the preprocessing instructions, along with the target binary image file to generate an update package.
  • The entropy calculator 221 may be employed by the residue processing unit 217 to calculate the entropy of the data associated with a set-buffer, which is a buffer of data assembled from one or more SET or SETR instructions of an update package. In one embodiment, the set-buffer may contain the data associated with all SET and SETR instructions encountered during any given stage of the processing by the generator 205. Based on the entropy calculated, the residue processing unit 217 may select a SET instruction or a SETR instruction to represent creation/duplication/modification of a current segment of a piece of code or module within the firmware/software being processed.
  • In one embodiment, the entropy may be calculated by calculating the frequency of occurrence of each byte in a buffer, calculating the probability of each byte occurring, and employing the frequency of occurrence and/or the probability in an entropy function. The code fragment shown below illustrates an example of an entropy calculation, where prob is an array of calculated probabilities, and prob[i] refers to an ith element in the array:
  • for (i=0; i<256; i++)
    {
    entropy += (prob[i] != 0.0 ? prob[i] * log (1.0/prob[i] / log(2.0) :
    0.0);
    }
  • Using the SET instruction usually yields high entropy values, because it introduces a set of new values for a certain number of bytes. However, an alternative embodiment may reduce the entropy of the data introduced by the SET instruction, and as a result offer a high compression rate to make an update package more efficient. An alternative embodiment may utilize subtracting SET data from corresponding data in the source, and using the difference between the target and source data instead of just the target data. For example, the SET or target data may look like:
  • 0x08 0x25 0xF2 0x04 0x08 0x26 0xF2 0x04 0x08 0x30 0x4A 0x0C 0x08 0x31 0x4A 0x0C
  • This pattern has moderate entropy and may offer a compression rate near 2:1. The source data corresponding to the SET or target data may look like:
  • 0x08 0x25 0xF2 0x08 0x08 0x26 0xF2 0x08 0x08 0x30 0x4A 0x04 0x08 0x31 0x4A 0x04
  • The difference between the SET data and the source data would look like:
  • 0x00 0x00 0x00 0xFC 0x00 0x00 0x00 0xFC 0x00 0x00 0x00 0x08 0x00 0x00 0x00 0x08
  • In this case, the entropy of the difference is extremely low, which may offer a much higher compression rate. Therefore, it may be more desirable to use the SET instruction with the difference data rather than the target data. This technique is not limited to the SET instruction. In another case the SETR instruction may offer better results by finding sections in the source, modified, or target images that may provide the smallest difference between sections of data, hence providing sequences with lower entropy and better compression rates. Better results may be achieved by utilizing combinations of SET and SETR instructions. A further enhancement may compute the entropy before and after calculating the residual for the different sections or segments of code and/or data, and for each section or segment, saving the data with the lowest entropy to the update package.
  • The compression unit 223 may facilitate compression of update packages based on one or more compression techniques. In one embodiment, the compression unit 223 may provide support for zlib-based compression, as well as other commercial compression techniques, such as LZ compression, pkzip, etc. A high compression rate results in the generation of more efficient update packages in a system.
  • The bubble information generated by the generator 205 may be packaged along with the update package in one embodiment, or packaged separately from the generated update package in another embodiment.
  • In one embodiment, the system may keep a “rough” estimate of locations of sections of the source data where evaluations of entropy values and compression may provide better results. In one embodiment, a large fraction of SET instructions may be preceded by a copy instruction, or CPY. In such an embodiment, if a pointer into the source data is kept for the last copy instruction, the matched SET data will likely reside at that pointer location plus the size of the copy instruction, i.e. the number of bytes of data copied. This embodiment assumes locality of data.
  • FIG. 3 illustrates a block diagram of an example of a flow model 305 for generating efficient and compact update packages, in accordance with an embodiment of the present invention. The flow model 305 shows exemplary steps of a process for generating efficient and compact update packages utilizing bubbles information to make the update packages more compact and efficient. The exemplary process of generating efficient and compact update packages starts at a block 307 where map or “.map” files and/or symbol or “.sym” files for the source binary image of a firmware/software and the target binary image of the firmware/software may be determined. For instance, the “.bin,” “map,” and “.sym” files for both the source and target images of the firmware/software may be identified and accessed.
  • At a next block 309, the map and symbol files may be parsed to create one or more distance or “.dist” files. Then, at a next block 311, the distance files may be split, if necessary, into one or more parts. These parts may correspond to different sections of code or memory. For example, if ROM, RAM, and IRAM sections are employed in the source and target images, the distance files for each of these memory sections may be separated and saved in different files.
  • At block 313, the distances may be verified between the source and target images. In one embodiment, each of the distance files, if more than one exists (for example, a distance file for the different sections of memory), may be verified.
  • At block 315, bubble information may be generated. When the bubble information is generated, the system may utilize a preferred distance specified by a user or accessed from a default configuration setting. The preferred distance utilized may be computed based on heuristics. In one embodiment, the bubble information generated may be combined into one “.cfg” file, where the sequence of bubble information may be based on the order of the addresses of the various sections of memory of a binary image. For example, if the memory map of an electronic device for the source/target image, ordered from top to bottom, is ROM, RAM, and IRAM, then the bubble information may be arranged in that order.
  • Once the bubble information is generated in block 315, the configuration information may be retrieved and processed in a step illustrated by block 317. Later, at a next block 319, the source image may be manipulated to make it similar in appearance to the target image by applying the bubble information generated in the earlier block 315. The application of the bubble information to the source image may be performed by a bubbler utilizing a predictor. Once the bubble information is applied to the source image, the update package may be generated in a next block 321. The generation of the update package may also employ techniques such as residue processing to make the generated update package more compact and efficient. Additionally, compression techniques may also be employed.
  • A next block 323 is where the update package and the bubble information generated may be packaged together or separately and outputted. In one embodiment, the update package and the bubble information generated may be packaged together and saved in a file. The process for generating efficient and compact update packages then ends at block 325.
  • The system for generating efficient and compact update packages generates bubbles information that may be packaged within the generated update package. The bubbles information, included in the update package, when delivered to an electronic device, facilitates the upgrade of the electronic device firmware/software to a new version.
  • While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.

Claims (21)

1-33. (canceled)
34. A computer-readable storage, having stored thereon a computer program having a plurality of code sections for generating update packages for updating contents of memory in an electronic device, the code sections executable by a processor for causing the processor to perform the operations comprising:
identifying files comprising code or objects of a source image;
identifying files comprising code or objects of a target image;
creating distance information representing differences of location of corresponding code or objects in the source image and the target image, using the source image and the target image;
generating a list of information items representing growth or reduction in size of the code or objects in the source image in comparison to the corresponding code or objects in the target image, using the distance information;
applying the information items to the source image to create a modified source image in which the code or objects more closely align with the corresponding code or objects in the target image;
generating an update package of difference information using the modified source image and the target image; and
outputting the update package and the list of information items to the electronic device for processing to update the memory.
35. The computer-readable storage according to claim 34 wherein the identified files for the source image and the target image are parsed to create the distance information.
36. The computer-readable storage according to claim 34 wherein generating the list of information items comprises prediction.
37. The computer-readable storage according to claim 34 wherein the generation of the update package calculates the entropy of data in the update package.
38. The computer-readable storage according to claim 34 wherein the update package and the list of information items are compressed before output.
39. The computer-readable storage according to claim 34 wherein the update package and the list of information items are packaged separately.
40. The computer-readable storage according to claim 34 wherein the update package is arranged for updating the memory as a plurality of banks each comprising a plurality of memory locations.
41. The computer-readable storage according to claim 40 wherein generating the update package determines an order in which to update the banks to produce a most size-efficient update package.
42. The computer-readable storage according to claim 34 wherein the difference information is encoded as a set of instructions that are performed by code in the electronic device.
43. The computer-readable storage according to claim 34 wherein generating an update package comprises calculating entropy of update package data to select a set of instructions for use in the update package.
44. The computer-readable storage according to claim 43 wherein the entropy is calculated for different sets of instructions to determine the instruction set yielding the smallest entropy value.
45. The computer-readable storage according to claim 34 wherein the electronic device comprises a mobile phone.
46. A mobile electronic device that supports updating of a source image in memory of the device, the device comprising:
at least one processor communicatively coupled to storage containing an update package of difference information and to the memory, the at least one processor operating to, at least:
receive the update package into the memory;
after receiving the update package, modify the source image using information items representing growth or reduction in size of the code or objects in the source image, to produce a modified source image in which the code or objects in the source image more closely align with corresponding code or objects in the target image; and
generate the target image using the modified source image, by updating the modified source image using the difference information in the update package.
47. The device according to claim 46 wherein the information items representing growth or reduction in size of the code or objects in the source image are received as part of the update package.
48. The device according to claim 46 wherein the update package comprises data and a set of instructions processed by code in the device.
49. The device according to claim 46 wherein the update package is arranged to process the source image as a plurality of banks, each bank comprising a plurality of memory locations.
50. The device according to claim 49 wherein the update package comprises bank order information defining an order of banks in which to update the plurality of banks.
51. The device according to claim 46 wherein the at least one processor operates to decompress the update package.
52. The device according to claim 46 wherein the device comprises a mobile phone.
53. The device according to claim 46 wherein the memory comprises FLASH memory.
US12/032,809 2002-08-22 2008-02-18 System for generating efficient and compact update packages Abandoned US20080163189A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/032,809 US20080163189A1 (en) 2002-08-22 2008-02-18 System for generating efficient and compact update packages

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US40525302P 2002-08-22 2002-08-22
US41562002P 2002-10-02 2002-10-02
US44186703P 2003-01-22 2003-01-22
US44797703P 2003-02-18 2003-02-18
US10/646,319 US7367027B1 (en) 2002-08-22 2003-08-22 System for generating efficient and compact update packages
US12/032,809 US20080163189A1 (en) 2002-08-22 2008-02-18 System for generating efficient and compact update packages

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/646,319 Continuation US7367027B1 (en) 2002-08-22 2003-08-22 System for generating efficient and compact update packages

Publications (1)

Publication Number Publication Date
US20080163189A1 true US20080163189A1 (en) 2008-07-03

Family

ID=37419795

Family Applications (6)

Application Number Title Priority Date Filing Date
US10/646,324 Active 2025-10-06 US7313791B1 (en) 2002-08-22 2003-08-22 Firmware update network and process employing preprocessing techniques
US10/646,230 Active 2027-05-06 US8233893B2 (en) 2002-08-22 2003-08-22 Mobile handset update package generator that employs nodes technique
US10/646,319 Active 2025-04-27 US7367027B1 (en) 2002-08-22 2003-08-22 System for generating efficient and compact update packages
US10/646,975 Active 2025-06-30 US7555750B1 (en) 2002-08-22 2003-08-22 Update package generator employing partial predictive mapping techniques for generating update packages for mobile handsets
US11/923,383 Active 2027-01-08 US8219984B2 (en) 2002-08-22 2007-10-24 Firmware update network and process employing preprocessing techniques
US12/032,809 Abandoned US20080163189A1 (en) 2002-08-22 2008-02-18 System for generating efficient and compact update packages

Family Applications Before (5)

Application Number Title Priority Date Filing Date
US10/646,324 Active 2025-10-06 US7313791B1 (en) 2002-08-22 2003-08-22 Firmware update network and process employing preprocessing techniques
US10/646,230 Active 2027-05-06 US8233893B2 (en) 2002-08-22 2003-08-22 Mobile handset update package generator that employs nodes technique
US10/646,319 Active 2025-04-27 US7367027B1 (en) 2002-08-22 2003-08-22 System for generating efficient and compact update packages
US10/646,975 Active 2025-06-30 US7555750B1 (en) 2002-08-22 2003-08-22 Update package generator employing partial predictive mapping techniques for generating update packages for mobile handsets
US11/923,383 Active 2027-01-08 US8219984B2 (en) 2002-08-22 2007-10-24 Firmware update network and process employing preprocessing techniques

Country Status (1)

Country Link
US (6) US7313791B1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060149744A1 (en) * 2004-12-30 2006-07-06 Das Abhinandan S Distributed set-expression cardinality estimation
US20080028387A1 (en) * 2006-07-31 2008-01-31 Masayuki Nakagawa Update data transmission method, computer program for practicing the method, host device and firmware writing system
US20120331454A1 (en) * 2011-06-24 2012-12-27 International Business Machines Corporation Image Delta-Based Upgrade Of Complex Stack In Software Appliance
US20160188641A1 (en) * 2014-12-29 2016-06-30 Here Global B.V. Updates for Navigational Map Data Organized in Lists
WO2018094180A1 (en) * 2016-11-21 2018-05-24 Nio Usa, Inc. Structure for updating software in remote device
US10360020B2 (en) 2017-04-11 2019-07-23 Nio Usa, Inc. Virtual machine (VM) approach to embedded system hot update
US10871952B2 (en) 2017-12-20 2020-12-22 Nio Usa, Inc. Method and system for providing secure over-the-air vehicle updates
WO2021188678A1 (en) * 2020-03-18 2021-09-23 Aclara Technologies Llc Robust firmware and configuration update over network

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040068721A1 (en) * 2000-11-17 2004-04-08 O'neill Patrick Network for updating firmware and / or software in wireless communication devices
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US8875116B2 (en) * 2000-11-17 2014-10-28 Hewlett-Packard Development Company, L.P. Network for updating firmware and / or software in wireless communication devices
US8479189B2 (en) * 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7046659B1 (en) * 2001-07-03 2006-05-16 Cisco Technology, Inc. Call signaling approach to user self-provisioning on VoIP using a touch-tone interface
US9134989B2 (en) 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
US7313791B1 (en) * 2002-08-22 2007-12-25 Hewlett-Packard Development Company, L.P. Firmware update network and process employing preprocessing techniques
US20040068724A1 (en) * 2002-08-30 2004-04-08 Gardner Richard Wayne Server processing for updating dataset versions resident on a wireless device
US9092286B2 (en) 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US7584466B1 (en) * 2003-06-16 2009-09-01 Hewlett-Packard Development Company, L.P. Management tree management in a mobile handset
KR100880783B1 (en) * 2003-09-03 2009-02-02 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피 Tri-phase boot process in electronic devices
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US8626146B2 (en) 2003-10-29 2014-01-07 Qualcomm Incorporated Method, software and apparatus for performing actions on a wireless device using action lists and versioning
KR100547809B1 (en) * 2003-10-31 2006-01-31 삼성전자주식회사 Mobile communication terminal with embedded system for software download and software download method
US7797693B1 (en) * 2003-12-12 2010-09-14 Hewlett-Packard Development Company, L.P. NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices
US8838754B1 (en) * 2004-01-26 2014-09-16 Qualcomm Incorporated Mobile device with a management forest in a device management network
US7673021B2 (en) * 2004-02-12 2010-03-02 Cisco Technology, Inc. Automated provisioning of phones in packet voice networks
JP2005228123A (en) * 2004-02-13 2005-08-25 Sharp Corp Communication method, communication system and information reception-side device used in the communication system
US7694291B2 (en) * 2004-04-06 2010-04-06 Hewlett-Packard Development Company, L.P. Build optimizer tool for efficient management of software builds for mobile devices
US7739679B2 (en) * 2004-04-06 2010-06-15 Hewlett-Packard Development Company, L.P. Object ordering tool for facilitating generation of firmware update friendly binary image
US8630225B2 (en) 2004-04-16 2014-01-14 Broadcom Corporation Over the air programming via a broadband access gateway
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
TWI238355B (en) * 2004-05-06 2005-08-21 Lite On It Corp Firmware updating method
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7661102B2 (en) * 2004-08-20 2010-02-09 Smith Micro Software, Inc. Method for reducing binary image update package sizes
JP2006079415A (en) * 2004-09-10 2006-03-23 Konica Minolta Business Technologies Inc Program update system and program update method
US7716660B2 (en) * 2004-12-14 2010-05-11 Microsoft Corporation Method and system for downloading updates
TW200622873A (en) * 2004-12-30 2006-07-01 Benq Corp Firmware updating methods and apparatuses
US7958502B2 (en) * 2005-08-05 2011-06-07 Hewlett-Packard Development Company, L.P. Efficient generator of update packages for mobile devices that uses non-ELF preprocessing
US20070061813A1 (en) * 2005-08-30 2007-03-15 Mcdata Corporation Distributed embedded software for a switch
US8291093B2 (en) * 2005-12-08 2012-10-16 Microsoft Corporation Peer-to-peer remediation
US7849454B2 (en) * 2006-01-13 2010-12-07 Dell Products L.P. Automatic firmware corruption recovery and update
WO2007141780A2 (en) * 2006-06-05 2007-12-13 Reimage Ltd A system and method for software application remediation
US8209676B2 (en) 2006-06-08 2012-06-26 Hewlett-Packard Development Company, L.P. Device management in a network
US7590835B1 (en) 2006-06-30 2009-09-15 American Megatrends, Inc. Dynamically updating a computer system firmware image
US7797696B1 (en) * 2006-06-30 2010-09-14 American Megatrends, Inc. Dynamically updating a computer system and firmware image utilizing an option read only memory (OPROM) data structure
US9395968B1 (en) 2006-06-30 2016-07-19 American Megatrends, Inc. Uniquely identifying and validating computer system firmware
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency management in a mobile device
US8732279B2 (en) 2006-08-18 2014-05-20 Cisco Technology, Inc. Secure network deployment
US20130047145A1 (en) * 2006-08-29 2013-02-21 Quan-Jie Cui Match analysis for encoding optimized update packages
CA2630934C (en) * 2007-05-10 2012-07-10 Research In Motion Limited System and method for device management
US8132166B2 (en) * 2007-05-14 2012-03-06 Red Hat, Inc. Methods and systems for provisioning software
RU2438263C2 (en) 2007-06-19 2011-12-27 Квэлкомм Инкорпорейтед Methods and apparatus for dataset synchronisation in wireless environment
US8561058B2 (en) * 2007-06-20 2013-10-15 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8464247B2 (en) * 2007-06-21 2013-06-11 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
CN101360291B (en) * 2007-07-31 2011-08-24 华为技术有限公司 Multi-standby terminal and firmware updating method and apparatus
US8726260B2 (en) * 2007-11-26 2014-05-13 Lenovo (Singapore) Pte Ltd Techniques for providing software patches to a computer system
US7861119B1 (en) 2007-12-07 2010-12-28 American Megatrends, Inc. Updating a firmware image using a firmware debugger application
US8219595B2 (en) 2008-02-14 2012-07-10 Hewlett-Packard Development Company, L.P. System and method for efficient remote data access for server management
US8869134B2 (en) * 2008-04-07 2014-10-21 Google Inc. Updating firmware on mobile electronice devices
US8713177B2 (en) * 2008-05-30 2014-04-29 Red Hat, Inc. Remote management of networked systems using secure modular platform
US9100297B2 (en) * 2008-08-20 2015-08-04 Red Hat, Inc. Registering new machines in a software provisioning environment
US8930512B2 (en) 2008-08-21 2015-01-06 Red Hat, Inc. Providing remote software provisioning to machines
US8838827B2 (en) * 2008-08-26 2014-09-16 Red Hat, Inc. Locating a provisioning server
US9477570B2 (en) 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US8793683B2 (en) 2008-08-28 2014-07-29 Red Hat, Inc. Importing software distributions in a software provisioning environment
US9111118B2 (en) 2008-08-29 2015-08-18 Red Hat, Inc. Managing access in a software provisioning environment
US9952845B2 (en) * 2008-08-29 2018-04-24 Red Hat, Inc. Provisioning machines having virtual storage resources
US9021470B2 (en) 2008-08-29 2015-04-28 Red Hat, Inc. Software provisioning in multiple network configuration environment
US8527578B2 (en) * 2008-08-29 2013-09-03 Red Hat, Inc. Methods and systems for centrally managing multiple provisioning servers
US8244836B2 (en) 2008-08-29 2012-08-14 Red Hat, Inc. Methods and systems for assigning provisioning servers in a software provisioning environment
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US9164749B2 (en) * 2008-08-29 2015-10-20 Red Hat, Inc. Differential software provisioning on virtual machines having different configurations
GB0817514D0 (en) * 2008-09-24 2008-10-29 Symbian Software Ltd Method and apparatus for updating a computing device
US8326972B2 (en) 2008-09-26 2012-12-04 Red Hat, Inc. Methods and systems for managing network connections in a software provisioning environment
US8612968B2 (en) * 2008-09-26 2013-12-17 Red Hat, Inc. Methods and systems for managing network connections associated with provisioning objects in a software provisioning environment
US8898305B2 (en) 2008-11-25 2014-11-25 Red Hat, Inc. Providing power management services in a software provisioning environment
US9124497B2 (en) * 2008-11-26 2015-09-01 Red Hat, Inc. Supporting multiple name servers in a software provisioning environment
US8782204B2 (en) * 2008-11-28 2014-07-15 Red Hat, Inc. Monitoring hardware resources in a software provisioning environment
US8775578B2 (en) * 2008-11-28 2014-07-08 Red Hat, Inc. Providing hardware updates in a software environment
US8832256B2 (en) * 2008-11-28 2014-09-09 Red Hat, Inc. Providing a rescue Environment in a software provisioning environment
US8892699B2 (en) * 2008-12-31 2014-11-18 Schneider Electric USA, Inc. Automatic firmware updates for intelligent electronic devices
US20100191867A1 (en) * 2009-01-29 2010-07-29 Dell Products L.P. Systems and Methods for Performing Field Updates of Firmware
US8402123B2 (en) 2009-02-24 2013-03-19 Red Hat, Inc. Systems and methods for inventorying un-provisioned systems in a software provisioning environment
US9727320B2 (en) 2009-02-25 2017-08-08 Red Hat, Inc. Configuration of provisioning servers in virtualized systems
US8413259B2 (en) 2009-02-26 2013-04-02 Red Hat, Inc. Methods and systems for secure gated file deployment associated with provisioning
US20100217944A1 (en) * 2009-02-26 2010-08-26 Dehaan Michael Paul Systems and methods for managing configurations of storage devices in a software provisioning environment
US8892700B2 (en) * 2009-02-26 2014-11-18 Red Hat, Inc. Collecting and altering firmware configurations of target machines in a software provisioning environment
US8135989B2 (en) * 2009-02-27 2012-03-13 Red Hat, Inc. Systems and methods for interrogating diagnostic target using remotely loaded image
US9940208B2 (en) * 2009-02-27 2018-04-10 Red Hat, Inc. Generating reverse installation file for network restoration
US8170706B2 (en) * 2009-02-27 2012-05-01 Xerox Corporation Package generation system
US9411570B2 (en) * 2009-02-27 2016-08-09 Red Hat, Inc. Integrating software provisioning and configuration management
US8667096B2 (en) * 2009-02-27 2014-03-04 Red Hat, Inc. Automatically generating system restoration order for network recovery
US8572587B2 (en) * 2009-02-27 2013-10-29 Red Hat, Inc. Systems and methods for providing a library of virtual images in a software provisioning environment
US9558195B2 (en) 2009-02-27 2017-01-31 Red Hat, Inc. Depopulation of user data from network
US8990368B2 (en) 2009-02-27 2015-03-24 Red Hat, Inc. Discovery of network software relationships
US8640122B2 (en) * 2009-02-27 2014-01-28 Red Hat, Inc. Systems and methods for abstracting software content management in a software provisioning environment
JP5342302B2 (en) * 2009-03-30 2013-11-13 株式会社日立ソリューションズ Firmware update system, firmware distribution server, and program
US8417926B2 (en) 2009-03-31 2013-04-09 Red Hat, Inc. Systems and methods for providing configuration management services from a provisioning server
KR101605875B1 (en) * 2009-04-03 2016-03-24 삼성전자주식회사 Memory apparatus and method for updating firmware of the memory apparatus
US8176307B2 (en) 2009-04-13 2012-05-08 Broadcom Corporation Method and system for post-build modification of firmware binaries to support different hardware configurations
US9250672B2 (en) 2009-05-27 2016-02-02 Red Hat, Inc. Cloning target machines in a software provisioning environment
US9134987B2 (en) 2009-05-29 2015-09-15 Red Hat, Inc. Retiring target machines by a provisioning server
US8429640B2 (en) * 2009-06-05 2013-04-23 Dell Products L.P. System and method for modifying firmware
US9047155B2 (en) * 2009-06-30 2015-06-02 Red Hat, Inc. Message-based installation management using message bus
US8484652B2 (en) 2009-07-31 2013-07-09 Dell Products L.P. Systems and methods for task execution on a managed node
US20110119570A1 (en) * 2009-11-18 2011-05-19 Xerox Corporation Automated variable dimension digital document advisor
US10133485B2 (en) 2009-11-30 2018-11-20 Red Hat, Inc. Integrating storage resources from storage area network in machine provisioning platform
US8825819B2 (en) 2009-11-30 2014-09-02 Red Hat, Inc. Mounting specified storage resources from storage area network in machine provisioning platform
US9639347B2 (en) * 2009-12-21 2017-05-02 International Business Machines Corporation Updating a firmware package
CN101763269A (en) * 2010-01-27 2010-06-30 中兴通讯股份有限公司 Method for making software installation package
US9473966B2 (en) * 2010-02-16 2016-10-18 Telefonaktiebolaget Lm Ericsson (Publ) Enabling reporting of non-real-time MDT measurements
US20110201324A1 (en) * 2010-02-16 2011-08-18 Telefonaktiebolaget L M Ericsson (Publ) Reporting of Non-Real-Time MDT Measurements
WO2011136809A1 (en) * 2010-04-30 2011-11-03 Hewlett-Packard Development Company, L.P. Preprocessor for file updating
JP5527146B2 (en) * 2010-09-30 2014-06-18 ブラザー工業株式会社 Terminal device and program
KR101383691B1 (en) 2010-10-25 2014-04-09 한국전자통신연구원 Apparatus and method for cooperatively updating firmware on wireless mesh network
US8800050B2 (en) * 2010-11-09 2014-08-05 Microsoft Corporation Security system for computing resources pre-releases
US20120144380A1 (en) * 2010-12-07 2012-06-07 Samsung Electronics Co. Ltd. Method for generating delta file using basic blocks
US8543543B2 (en) * 2011-09-13 2013-09-24 Microsoft Corporation Hash-based file comparison
JP5696018B2 (en) * 2011-09-28 2015-04-08 クラリオン株式会社 Target data placement method, target data placement system, and server device, client device, and program thereof
US20130339934A1 (en) * 2012-06-13 2013-12-19 Josef Troch Updating virtualized services
US8943489B1 (en) * 2012-06-29 2015-01-27 Juniper Networks, Inc. High availability in-service software upgrade using virtual machine instances in dual computing appliances
US8757479B2 (en) 2012-07-31 2014-06-24 Xerox Corporation Method and system for creating personalized packaging
KR20150092108A (en) 2012-12-05 2015-08-12 엘지전자 주식회사 Method and apparatus for notifying information change in wireless communication system
US8924950B2 (en) 2012-12-17 2014-12-30 Itron, Inc. Utility node software/firmware update through a multi-type package
US8938730B2 (en) * 2012-12-17 2015-01-20 Itron, Inc. Utilizing a multi-system set configuration to update a utility node system set
US9928047B2 (en) 2012-12-18 2018-03-27 Digital Turbine, Inc. System and method for providing application programs to devices
US9928048B2 (en) 2012-12-18 2018-03-27 Digital Turbine, Inc. System and method for providing application programs to devices
CN104461593A (en) * 2013-09-18 2015-03-25 中兴通讯股份有限公司 Differential upgrade patch manufacturing method and device
US9298446B2 (en) * 2013-10-28 2016-03-29 International Business Machines Corporation Unified update tool for multi-protocol network adapter
US9760659B2 (en) 2014-01-30 2017-09-12 Xerox Corporation Package definition system with non-symmetric functional elements as a function of package edge property
TWI520066B (en) * 2014-03-12 2016-02-01 緯創資通股份有限公司 Basic input/output system updating method and computer readable storage medium
US9892212B2 (en) 2014-05-19 2018-02-13 Xerox Corporation Creation of variable cut files for package design
US9563418B1 (en) 2015-03-26 2017-02-07 Captioncall, Llc Communication endpoints, software update servers, and related methods
CN106155722A (en) * 2015-04-09 2016-11-23 华为技术有限公司 A kind of software method for updating pages and terminal
US9916401B2 (en) 2015-05-18 2018-03-13 Xerox Corporation Creation of cut files for personalized package design using multiple substrates
US9916402B2 (en) 2015-05-18 2018-03-13 Xerox Corporation Creation of cut files to fit a large package flat on one or more substrates
JP6595822B2 (en) * 2015-07-07 2019-10-23 キヤノン株式会社 Information processing apparatus and control method thereof
WO2017095449A1 (en) * 2015-12-04 2017-06-08 Aruba Networks Inc. Reprogramming access points
CN105487907A (en) * 2015-12-07 2016-04-13 青岛海信电器股份有限公司 Difference package manufacturing method and device
US10282190B2 (en) * 2016-12-01 2019-05-07 Dell Products, L.P. System and method for updating a UEFI image in an information handling system
US10628167B2 (en) * 2018-02-21 2020-04-21 International Business Machines Corporation Runtime detection of code modification
CN110795131A (en) * 2018-08-01 2020-02-14 技嘉科技股份有限公司 Server firmware updating method
US11625240B1 (en) * 2021-09-28 2023-04-11 Red Hat, Inc. Generating rules for migrating dependencies of a software application

Citations (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493083A (en) * 1980-11-28 1985-01-08 Fanuc Ltd. System for updating data in bubble memories
US5084816A (en) * 1987-11-25 1992-01-28 Bell Communications Research, Inc. Real time fault tolerant transaction processing system
US5261055A (en) * 1992-02-19 1993-11-09 Milsys, Ltd. Externally updatable ROM (EUROM)
US5442771A (en) * 1988-07-15 1995-08-15 Prodigy Services Company Method for storing data in an interactive computer network
US5479637A (en) * 1990-08-31 1995-12-26 Gemplus Card International Method and device for updating information elements in a memory
US5535357A (en) * 1993-03-15 1996-07-09 M-Systems Flash Disk Pioneers Ltd. Flash memory system providing both BIOS and user storage capability
US5579522A (en) * 1991-05-06 1996-11-26 Intel Corporation Dynamic non-volatile memory update in a computer system
US5596738A (en) * 1992-01-31 1997-01-21 Teac Corporation Peripheral device control system using changeable firmware in a single flash memory
US5606693A (en) * 1991-10-02 1997-02-25 International Business Machines Corporation Distributed database management over a network
US5832000A (en) * 1997-03-17 1998-11-03 Motorola, Inc. Method and apparatus for communicating error-tolerant messages
US5832520A (en) * 1996-07-03 1998-11-03 Miller, Call, Plauck And Miller Automatic file differencing and updating system
US5896566A (en) * 1995-07-28 1999-04-20 Motorola, Inc. Method for indicating availability of updated software to portable wireless communication units
US5933498A (en) * 1996-01-11 1999-08-03 Mrj, Inc. System for controlling access and distribution of digital property
US5968182A (en) * 1997-05-12 1999-10-19 International Business Machines Corporation Method and means for utilizing device long busy response for resolving detected anomalies at the lowest level in a hierarchical, demand/response storage management subsystem
US5974250A (en) * 1996-12-13 1999-10-26 Compaq Computer Corp. System and method for secure information transmission over a network
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US6138249A (en) * 1997-12-11 2000-10-24 Emc Corporation Method and apparatus for monitoring computer systems during manufacturing, testing and in the field
US6209111B1 (en) * 1998-11-09 2001-03-27 Microsoft Corporation Error correction on a mobile device
US6212659B1 (en) * 1997-05-30 2001-04-03 Qualcomm Inc. Method and apparatus for providing error protection for over the air file transfer
US6279153B1 (en) * 1995-10-16 2001-08-21 Nec Corporation Multi-user flash ROM update
US6301710B1 (en) * 1999-01-06 2001-10-09 Sony Corporation System and method for creating a substitute registry when automatically installing an update program
US20020010702A1 (en) * 1997-02-03 2002-01-24 Miklos Ajtai System and method for differential compression of data from a plurality of binary sources
US6381740B1 (en) * 1997-09-16 2002-04-30 Microsoft Corporation Method and system for incrementally improving a program layout
US20020072359A1 (en) * 2000-12-08 2002-06-13 Moles Bryan J. System and method for performing diagnostics on a mobile station using over-the-air transfer of interpreted byte-code program
US6408434B1 (en) * 1999-01-07 2002-06-18 Sony Corporation System and method for using a substitute directory to automatically install an update program
US20030023964A1 (en) * 2001-07-26 2003-01-30 Gowri Rajaram System and method for compacting field upgradeable wireless communication device software code sections
US20030027563A1 (en) * 2001-08-06 2003-02-06 Samsung Electronics Co., Ltd. IOTA software download via auxiliary device
US6526574B1 (en) * 1997-07-15 2003-02-25 Pocket Soft, Inc. System for finding differences between two computer files and updating the computer files
US20030055919A1 (en) * 2001-08-30 2003-03-20 Fong Ryan Patrick One-click deployment of data processing systems
US6546552B1 (en) * 1998-08-19 2003-04-08 Red Bend Ltd. Difference extraction between two versions of data-tables containing intra-references
US20030074658A1 (en) * 2001-10-17 2003-04-17 Samsung Electronics Co., Ltd. Apparatus and method for upgrading program
US20030081786A1 (en) * 2001-10-26 2003-05-01 Toshihisa Nakano Key management apparatus
US20030084435A1 (en) * 2001-10-31 2003-05-01 Alan Messer Method and system for offloading execution and resources for resource-constrained networked devices
US20030103484A1 (en) * 2001-12-03 2003-06-05 Paul Oommen Apparatus, and associated method, for retrieving mobile-node logic tree information
US20030121032A1 (en) * 2001-12-21 2003-06-26 Samsung Electronics Co., Ltd. Method and system for remotely updating function of household device
US20030154471A1 (en) * 2002-02-13 2003-08-14 Power Measurement Ltd. Method for upgrading firmware in an electronic device
US20030162533A1 (en) * 2000-04-04 2003-08-28 Moles Bryan J. System and method for provisioning or updating a mobile station using over-the-air transfer of interpreted byte-code program
US6615404B1 (en) * 1999-05-13 2003-09-02 Tadiran Telecom Business Systems Ltd. Method and apparatus for downloading software into an embedded-system
US6615038B1 (en) * 2000-04-28 2003-09-02 Samsung Electronics Co., Ltd. System and method for automatically creating and updating a mobile station configuration database in a wireless network
US20030186689A1 (en) * 2001-08-06 2003-10-02 Samsung Electronics Co., Ltd System and method for IOTA software download notification for wireless communication devices
US6659345B2 (en) * 1999-12-27 2003-12-09 Hitachi, Ltd. Method of loading an application program into a smart card, smart card, method of loading scripts into a smart card, terminal device capable of operating with a smart card, and storage medium holding an application program
US6668336B2 (en) * 2001-11-08 2003-12-23 M-Systems Flash Disk Pioneers Ltd. Ruggedized block device driver
US20040015952A1 (en) * 2001-04-18 2004-01-22 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
US20040017831A1 (en) * 2002-04-05 2004-01-29 Jian Shen System and method for processing SI data from multiple input transport streams
US20040031031A1 (en) * 2002-08-08 2004-02-12 Rudelic John C. Executing applications from a semiconductor nonvolatile memory
US20040034853A1 (en) * 2002-03-22 2004-02-19 Bill Gibbons Mobile download system
US20040054995A1 (en) * 2002-09-14 2004-03-18 Samsung Electronics Co., Ltd. Method of updating firmware
US20040068724A1 (en) * 2002-08-30 2004-04-08 Gardner Richard Wayne Server processing for updating dataset versions resident on a wireless device
US6725056B1 (en) * 2000-02-09 2004-04-20 Samsung Electronics Co., Ltd. System and method for secure over-the-air provisioning of a mobile station from a provisioning server via a traffic channel
US6725392B1 (en) * 1999-03-03 2004-04-20 Adaptec, Inc. Controller fault recovery system for a distributed file system
US20040095457A1 (en) * 1999-05-14 2004-05-20 3M Innovative Properties Company Thermal transfer of a black matrix containing carbon black
US20040111723A1 (en) * 2002-12-05 2004-06-10 Samsung Electronics Co., Ltd. Apparatus and method for remote DLL linking of software upgrades for a wireless mobile station
US20040117785A1 (en) * 2002-12-13 2004-06-17 Samsung Electronics Co., Ltd. Component download manager for a wireless mobile station and method of operation
US6754895B1 (en) * 2001-04-26 2004-06-22 Palm Source, Inc. Method and system for automatic firmware updates in a portable hand-held device
US20040123282A1 (en) * 2000-11-17 2004-06-24 Rao Bindu Rama Mobile handset with a fault tolerant update agent
US20040133887A1 (en) * 2002-12-05 2004-07-08 Samsung Electronics Co., Ltd. Apparatus and method for upgrading software of a wireless mobile station
US20040152455A1 (en) * 2003-02-05 2004-08-05 Samsung Electronics Co., Ltd. System and method for delta-based over-the-air software upgrades for a wireless mobile station
US20040166839A1 (en) * 2002-04-19 2004-08-26 Harri Okkonen Communications network capable of determining SIM card changes in electronic devices
US20040194081A1 (en) * 2002-03-23 2004-09-30 Iyad Qumei Update system for facilitating firmware/software update in a mobile handset
US20040215755A1 (en) * 2000-11-17 2004-10-28 O'neill Patrick J. System and method for updating and distributing information
US20040243993A1 (en) * 2003-03-24 2004-12-02 Harri Okonnen Electronic device supporting multiple update agents
US20040243992A1 (en) * 2003-01-21 2004-12-02 Gustafson James P. Update system capable of updating software across multiple FLASH chips
US20040261073A1 (en) * 2003-06-20 2004-12-23 Samsung Electronics Co., Ltd. Apparatus and method for performing a fail-safe over-the-air software update in a mobile station
US20040261072A1 (en) * 2003-06-20 2004-12-23 Samsung Electronics Co., Ltd. Apparatus and method for performing an over-the-air software update in a dual processor mobile station
US6836657B2 (en) * 2002-11-12 2004-12-28 Innopath Software, Inc. Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade
US20040267833A1 (en) * 2003-06-23 2004-12-30 Evyatar Meller Method and system for updating versions of content stored in a storage device
US20050005268A1 (en) * 2003-07-01 2005-01-06 Zilavy Daniel V. Field-replaceable unit revision compatibility
US20050039178A1 (en) * 2003-06-27 2005-02-17 Sunil Marolia System and method for downloading update packages into a mobile handset in a carrier network
US20050060699A1 (en) * 2003-09-17 2005-03-17 Samsung Electronics Co., Ltd. Method and system for updating software
US20050071385A1 (en) * 2003-09-26 2005-03-31 Rao Bindu Rama Update package catalog for update package transfer between generator and content server in a network
US20050097544A1 (en) * 2003-10-31 2005-05-05 Samsung Electronics Co., Ltd. Mobile communication terminal having embedded system for software download and method for software download
US20050096025A1 (en) * 2003-10-30 2005-05-05 Iyad Qumei Open update framework for mobile handsets capable of processing firmware and software update packages based on mime-types
US20050102615A1 (en) * 2003-11-12 2005-05-12 Manuel Roman Method and apparatus for composing software
US20050114504A1 (en) * 2003-07-09 2005-05-26 Sunil Marolia Carrier network capable of conducting remote diagnostics in a mobile handset
US20050144609A1 (en) * 2003-12-12 2005-06-30 Intel Corporation Methods and apparatus to provide a robust code update
US20050144612A1 (en) * 2003-12-31 2005-06-30 Shin-Ping Wang Firmware updating method and application utilizing the same
US20050160195A1 (en) * 2001-09-14 2005-07-21 Bruner Curtis H. Digital device configuration and method
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US6928108B2 (en) * 1993-07-02 2005-08-09 Multi-Tech Systems, Inc. Modem with firmware upgrade feature
US20050204068A1 (en) * 2004-03-11 2005-09-15 Microsoft Corporation Connectivity objects under a mobile device management tree
US20050216902A1 (en) * 2004-03-23 2005-09-29 General Motors Corporation Method and system for vehicle software configuration update management
US20050216903A1 (en) * 2004-03-23 2005-09-29 General Motors Corporation Method and system for vehicle software configuration management
US20050227683A1 (en) * 2004-03-22 2005-10-13 Motorola, Inc. Apparatus and method for over the air software repair
US20060039561A1 (en) * 2004-08-20 2006-02-23 Nokia Corporation Methods and apparatus to integrate mobile communications device management with web browsing
US7031972B2 (en) * 2003-07-21 2006-04-18 Innopath Software, Inc. Algorithms for block-level code alignment of software binary files
US7073017B2 (en) * 2004-02-25 2006-07-04 Hitachi, Ltd. Efficient update of firmware in a disk-type storage device
US20060174242A1 (en) * 2005-02-01 2006-08-03 Microsoft Corporation Publishing the status of and updating firmware components
US7143115B2 (en) * 2003-04-15 2006-11-28 Pocket Soft, Inc. Method and apparatus for finding differences between two computer files efficiently in linear time and for using these differences to update computer files
US7242929B2 (en) * 2004-03-22 2007-07-10 Motorola Inc. Method and apparatus for dynamic extension of device management tree data model on a mobile
US7292846B2 (en) * 2003-02-28 2007-11-06 Nokia Corporation Apparatus, and associated method, for retrieving mobile-node device management tree information
US7313791B1 (en) * 2002-08-22 2007-12-25 Hewlett-Packard Development Company, L.P. Firmware update network and process employing preprocessing techniques
US7818556B2 (en) * 2006-08-28 2010-10-19 Toshiba Storage Device Corporation Storage apparatus, control method, and control device which can be reliably started up when power is turned on even after there is an error during firmware update

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0449530A3 (en) 1990-03-23 1993-09-01 Canon Kabushiki Kaisha A memory medium having a control program memorized therein and an information processing method and an information processing apparatus using the same medium
US5878256A (en) 1991-10-16 1999-03-02 International Business Machine Corp. Method and apparatus for providing updated firmware in a data processing system
US5623604A (en) 1992-11-18 1997-04-22 Canon Information Systems, Inc. Method and apparatus for remotely altering programmable firmware stored in an interactive network board coupled to a network peripheral
US5835933A (en) 1993-02-19 1998-11-10 Intel Corporation Method and apparatus for updating flash memory resident firmware through a standard disk drive interface
JPH06274384A (en) 1993-03-22 1994-09-30 N T T Data Tsushin Kk Extracting/updating device of execution file difference and extracting method for execution file difference
JP3177117B2 (en) * 1994-05-11 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション Method and apparatus for updating control codes in multiple nodes
US5666293A (en) 1994-05-27 1997-09-09 Bell Atlantic Network Services, Inc. Downloading operating system software through a broadcast channel
US5628016A (en) * 1994-06-15 1997-05-06 Borland International, Inc. Systems and methods and implementing exception handling using exception registration records stored in stack memory
US5598534A (en) 1994-09-21 1997-01-28 Lucent Technologies Inc. Simultaneous verify local database and using wireless communication to verify remote database
US5778440A (en) 1994-10-26 1998-07-07 Macronix International Co., Ltd. Floating gate memory device and method for terminating a program load cycle upon detecting a predetermined address/data pattern
JPH08202626A (en) 1995-01-31 1996-08-09 Isuzu Motors Ltd Memory controller
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5854981A (en) * 1995-08-08 1998-12-29 Telefonaktiebolaget L M Ericsson Adaptive neighbor cell list
US6126327A (en) 1995-10-16 2000-10-03 Packard Bell Nec Radio flash update
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US5960445A (en) 1996-04-24 1999-09-28 Sony Corporation Information processor, method of updating a program and information processing system
US5790974A (en) 1996-04-29 1998-08-04 Sun Microsystems, Inc. Portable calendaring device having perceptual agent managing calendar entries
US6308061B1 (en) * 1996-08-07 2001-10-23 Telxon Corporation Wireless software upgrades with version control
US6112024A (en) 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
US6088759A (en) * 1997-04-06 2000-07-11 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6209127B1 (en) 1997-06-05 2001-03-27 Matsushita Electrical Industrial Co., Ltd Terminal device capable of remote download, download method of loader program in terminal device, and storage medium storing loader program
US5974318A (en) * 1997-07-09 1999-10-26 Northern Telecom Limited Method and system for increasing capacity and improving performance of a cellular network
US6163274A (en) 1997-09-04 2000-12-19 Ncr Corporation Remotely updatable PDA
KR100448932B1 (en) * 1997-09-23 2004-12-17 삼성전자주식회사 Flash rom writer device and its control method, especially recovering data without separating flash rom from pcb
US6064814A (en) 1997-11-13 2000-05-16 Allen-Bradley Company, Llc Automatically updated cross reference system having increased flexibility
KR100258969B1 (en) 1997-11-20 2000-06-15 윤종용 Firmware upgrading method in wireless communication device and firmware upgrade supporting method in cell base station
US6311322B1 (en) 1998-03-09 2001-10-30 Nikon Corporation Program rewriting apparatus
JP4016359B2 (en) 1998-03-24 2007-12-05 ソニー株式会社 Receiving device and program rewriting method
US6052531A (en) * 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US6038636A (en) 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
US6073206A (en) * 1998-04-30 2000-06-06 Compaq Computer Corporation Method for flashing ESCD and variables into a ROM
US6105063A (en) * 1998-05-05 2000-08-15 International Business Machines Corp. Client-server system for maintaining application preferences in a hierarchical data structure according to user and user group or terminal and terminal group contexts
US6438585B2 (en) 1998-05-29 2002-08-20 Research In Motion Limited System and method for redirecting message attachments between a host system and a mobile data communication device
US6112197A (en) * 1998-05-29 2000-08-29 Oracle Corporation Method and apparatus for transmission of row differences
EP0997815A3 (en) * 1998-10-29 2004-05-26 Texas Instruments Incorporated Interactive translation system and method
US6298481B1 (en) * 1998-10-30 2001-10-02 Segasoft, Inc. System for modifying the functionality of compiled computer code at run-time
US6675382B1 (en) * 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
US7502759B2 (en) * 1999-08-30 2009-03-10 Digimarc Corporation Digital watermarking methods and related toy and game applications
US6754848B1 (en) * 1999-09-30 2004-06-22 International Business Machines Corporation Method, system and program products for operationally migrating a cluster through emulation
US6928467B2 (en) 2000-02-02 2005-08-09 Inno Path Software, Inc. Apparatus and methods for providing data synchronization by facilitating data synchronization system design
US6968543B2 (en) * 2000-03-10 2005-11-22 Fujitsu Limited Information processing apparatus
KR20010100328A (en) 2000-04-22 2001-11-14 강원희 Upgrade method of mobile phone software using communication network
KR20020034228A (en) 2000-10-31 2002-05-09 구자홍 Method for upgrading S/W using OTA service provision in mobile terminal and system for the same
EP1340167A2 (en) 2000-11-28 2003-09-03 4thPass Inc. Method and system for maintaining and distributing wireless applications
US6959436B2 (en) 2000-12-15 2005-10-25 Innopath Software, Inc. Apparatus and methods for intelligently providing applications and data on a mobile device system
US7069545B2 (en) * 2000-12-29 2006-06-27 Intel Corporation Quantization and compression for computation reuse
US20020116261A1 (en) * 2001-02-20 2002-08-22 Moskowitz Paul A. Systems and methods that facilitate an exchange of supplemental information in association with a dispensing of fuel
US7373643B2 (en) * 2001-03-06 2008-05-13 Cybersoft, Inc. Apparatus, methods and articles of manufacture for data transmission
JP4827310B2 (en) * 2001-03-30 2011-11-30 パナソニック株式会社 Remote program download system
US6594548B2 (en) * 2001-04-12 2003-07-15 Hani Bagnordi Portable digital assistant
US20020157090A1 (en) 2001-04-20 2002-10-24 Anton, Jr. Francis M. Automated updating of access points in a distributed network
US20020156863A1 (en) 2001-04-23 2002-10-24 Luosheng Peng Apparatus and methods for managing caches on a gateway
US7143407B2 (en) * 2001-07-26 2006-11-28 Kyocera Wireless Corp. System and method for executing wireless communications device dynamic instruction sets
US20030061384A1 (en) 2001-09-25 2003-03-27 Bryce Nakatani System and method of addressing and configuring a remote device
US7006820B1 (en) * 2001-10-05 2006-02-28 At Road, Inc. Method for determining preferred conditions for wireless programming of mobile devices
US7086049B2 (en) * 2002-02-26 2006-08-01 International Business Machines Corporation Background code update for embedded systems
JP3840149B2 (en) * 2002-06-28 2006-11-01 株式会社東芝 Compiler, arithmetic processing system, and arithmetic processing method
US7096311B2 (en) * 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
JP2005228123A (en) * 2004-02-13 2005-08-25 Sharp Corp Communication method, communication system and information reception-side device used in the communication system
US7739679B2 (en) * 2004-04-06 2010-06-15 Hewlett-Packard Development Company, L.P. Object ordering tool for facilitating generation of firmware update friendly binary image

Patent Citations (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493083A (en) * 1980-11-28 1985-01-08 Fanuc Ltd. System for updating data in bubble memories
US5084816A (en) * 1987-11-25 1992-01-28 Bell Communications Research, Inc. Real time fault tolerant transaction processing system
US5442771A (en) * 1988-07-15 1995-08-15 Prodigy Services Company Method for storing data in an interactive computer network
US5479637A (en) * 1990-08-31 1995-12-26 Gemplus Card International Method and device for updating information elements in a memory
US5579522A (en) * 1991-05-06 1996-11-26 Intel Corporation Dynamic non-volatile memory update in a computer system
US5606693A (en) * 1991-10-02 1997-02-25 International Business Machines Corporation Distributed database management over a network
US5596738A (en) * 1992-01-31 1997-01-21 Teac Corporation Peripheral device control system using changeable firmware in a single flash memory
US5261055A (en) * 1992-02-19 1993-11-09 Milsys, Ltd. Externally updatable ROM (EUROM)
US5535357A (en) * 1993-03-15 1996-07-09 M-Systems Flash Disk Pioneers Ltd. Flash memory system providing both BIOS and user storage capability
US6928108B2 (en) * 1993-07-02 2005-08-09 Multi-Tech Systems, Inc. Modem with firmware upgrade feature
US5896566A (en) * 1995-07-28 1999-04-20 Motorola, Inc. Method for indicating availability of updated software to portable wireless communication units
US6279153B1 (en) * 1995-10-16 2001-08-21 Nec Corporation Multi-user flash ROM update
US5933498A (en) * 1996-01-11 1999-08-03 Mrj, Inc. System for controlling access and distribution of digital property
US5832520A (en) * 1996-07-03 1998-11-03 Miller, Call, Plauck And Miller Automatic file differencing and updating system
US5974250A (en) * 1996-12-13 1999-10-26 Compaq Computer Corp. System and method for secure information transmission over a network
US20020010702A1 (en) * 1997-02-03 2002-01-24 Miklos Ajtai System and method for differential compression of data from a plurality of binary sources
US5832000A (en) * 1997-03-17 1998-11-03 Motorola, Inc. Method and apparatus for communicating error-tolerant messages
US5968182A (en) * 1997-05-12 1999-10-19 International Business Machines Corporation Method and means for utilizing device long busy response for resolving detected anomalies at the lowest level in a hierarchical, demand/response storage management subsystem
US6212659B1 (en) * 1997-05-30 2001-04-03 Qualcomm Inc. Method and apparatus for providing error protection for over the air file transfer
US6526574B1 (en) * 1997-07-15 2003-02-25 Pocket Soft, Inc. System for finding differences between two computer files and updating the computer files
US6381740B1 (en) * 1997-09-16 2002-04-30 Microsoft Corporation Method and system for incrementally improving a program layout
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US6138249A (en) * 1997-12-11 2000-10-24 Emc Corporation Method and apparatus for monitoring computer systems during manufacturing, testing and in the field
US6546552B1 (en) * 1998-08-19 2003-04-08 Red Bend Ltd. Difference extraction between two versions of data-tables containing intra-references
US6209111B1 (en) * 1998-11-09 2001-03-27 Microsoft Corporation Error correction on a mobile device
US6301710B1 (en) * 1999-01-06 2001-10-09 Sony Corporation System and method for creating a substitute registry when automatically installing an update program
US6408434B1 (en) * 1999-01-07 2002-06-18 Sony Corporation System and method for using a substitute directory to automatically install an update program
US6725392B1 (en) * 1999-03-03 2004-04-20 Adaptec, Inc. Controller fault recovery system for a distributed file system
US6615404B1 (en) * 1999-05-13 2003-09-02 Tadiran Telecom Business Systems Ltd. Method and apparatus for downloading software into an embedded-system
US20040095457A1 (en) * 1999-05-14 2004-05-20 3M Innovative Properties Company Thermal transfer of a black matrix containing carbon black
US6659345B2 (en) * 1999-12-27 2003-12-09 Hitachi, Ltd. Method of loading an application program into a smart card, smart card, method of loading scripts into a smart card, terminal device capable of operating with a smart card, and storage medium holding an application program
US6725056B1 (en) * 2000-02-09 2004-04-20 Samsung Electronics Co., Ltd. System and method for secure over-the-air provisioning of a mobile station from a provisioning server via a traffic channel
US20030162533A1 (en) * 2000-04-04 2003-08-28 Moles Bryan J. System and method for provisioning or updating a mobile station using over-the-air transfer of interpreted byte-code program
US6615038B1 (en) * 2000-04-28 2003-09-02 Samsung Electronics Co., Ltd. System and method for automatically creating and updating a mobile station configuration database in a wireless network
US20040215755A1 (en) * 2000-11-17 2004-10-28 O'neill Patrick J. System and method for updating and distributing information
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US20040123282A1 (en) * 2000-11-17 2004-06-24 Rao Bindu Rama Mobile handset with a fault tolerant update agent
US20020072359A1 (en) * 2000-12-08 2002-06-13 Moles Bryan J. System and method for performing diagnostics on a mobile station using over-the-air transfer of interpreted byte-code program
US20040015952A1 (en) * 2001-04-18 2004-01-22 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
US6754895B1 (en) * 2001-04-26 2004-06-22 Palm Source, Inc. Method and system for automatic firmware updates in a portable hand-held device
US20030023964A1 (en) * 2001-07-26 2003-01-30 Gowri Rajaram System and method for compacting field upgradeable wireless communication device software code sections
US20030186689A1 (en) * 2001-08-06 2003-10-02 Samsung Electronics Co., Ltd System and method for IOTA software download notification for wireless communication devices
US20030027563A1 (en) * 2001-08-06 2003-02-06 Samsung Electronics Co., Ltd. IOTA software download via auxiliary device
US20030055919A1 (en) * 2001-08-30 2003-03-20 Fong Ryan Patrick One-click deployment of data processing systems
US20050160195A1 (en) * 2001-09-14 2005-07-21 Bruner Curtis H. Digital device configuration and method
US20030074658A1 (en) * 2001-10-17 2003-04-17 Samsung Electronics Co., Ltd. Apparatus and method for upgrading program
US20030081786A1 (en) * 2001-10-26 2003-05-01 Toshihisa Nakano Key management apparatus
US20030084435A1 (en) * 2001-10-31 2003-05-01 Alan Messer Method and system for offloading execution and resources for resource-constrained networked devices
US6668336B2 (en) * 2001-11-08 2003-12-23 M-Systems Flash Disk Pioneers Ltd. Ruggedized block device driver
US20030103484A1 (en) * 2001-12-03 2003-06-05 Paul Oommen Apparatus, and associated method, for retrieving mobile-node logic tree information
US20030121032A1 (en) * 2001-12-21 2003-06-26 Samsung Electronics Co., Ltd. Method and system for remotely updating function of household device
US20030154471A1 (en) * 2002-02-13 2003-08-14 Power Measurement Ltd. Method for upgrading firmware in an electronic device
US7275243B2 (en) * 2002-03-22 2007-09-25 Sun Microsystems, Inc. Mobile download system
US20040034853A1 (en) * 2002-03-22 2004-02-19 Bill Gibbons Mobile download system
US20040194081A1 (en) * 2002-03-23 2004-09-30 Iyad Qumei Update system for facilitating firmware/software update in a mobile handset
US20040017831A1 (en) * 2002-04-05 2004-01-29 Jian Shen System and method for processing SI data from multiple input transport streams
US20040166839A1 (en) * 2002-04-19 2004-08-26 Harri Okkonen Communications network capable of determining SIM card changes in electronic devices
US7369851B2 (en) * 2002-04-19 2008-05-06 Hewlett-Packard Development Company, L.P. Communications network capable of determining SIM card changes in electronic devices
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US20040031031A1 (en) * 2002-08-08 2004-02-12 Rudelic John C. Executing applications from a semiconductor nonvolatile memory
US7313791B1 (en) * 2002-08-22 2007-12-25 Hewlett-Packard Development Company, L.P. Firmware update network and process employing preprocessing techniques
US7367027B1 (en) * 2002-08-22 2008-04-29 Hewlett-Packard Development Company, L.P. System for generating efficient and compact update packages
US7555750B1 (en) * 2002-08-22 2009-06-30 Hewlett-Packard Development Company, L.P. Update package generator employing partial predictive mapping techniques for generating update packages for mobile handsets
US20040068724A1 (en) * 2002-08-30 2004-04-08 Gardner Richard Wayne Server processing for updating dataset versions resident on a wireless device
US20040054995A1 (en) * 2002-09-14 2004-03-18 Samsung Electronics Co., Ltd. Method of updating firmware
US6836657B2 (en) * 2002-11-12 2004-12-28 Innopath Software, Inc. Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade
US20040133887A1 (en) * 2002-12-05 2004-07-08 Samsung Electronics Co., Ltd. Apparatus and method for upgrading software of a wireless mobile station
US20040111723A1 (en) * 2002-12-05 2004-06-10 Samsung Electronics Co., Ltd. Apparatus and method for remote DLL linking of software upgrades for a wireless mobile station
US20040117785A1 (en) * 2002-12-13 2004-06-17 Samsung Electronics Co., Ltd. Component download manager for a wireless mobile station and method of operation
US20040243992A1 (en) * 2003-01-21 2004-12-02 Gustafson James P. Update system capable of updating software across multiple FLASH chips
US20040152455A1 (en) * 2003-02-05 2004-08-05 Samsung Electronics Co., Ltd. System and method for delta-based over-the-air software upgrades for a wireless mobile station
US7292846B2 (en) * 2003-02-28 2007-11-06 Nokia Corporation Apparatus, and associated method, for retrieving mobile-node device management tree information
US20040243993A1 (en) * 2003-03-24 2004-12-02 Harri Okonnen Electronic device supporting multiple update agents
US7143115B2 (en) * 2003-04-15 2006-11-28 Pocket Soft, Inc. Method and apparatus for finding differences between two computer files efficiently in linear time and for using these differences to update computer files
US20040261072A1 (en) * 2003-06-20 2004-12-23 Samsung Electronics Co., Ltd. Apparatus and method for performing an over-the-air software update in a dual processor mobile station
US20040261073A1 (en) * 2003-06-20 2004-12-23 Samsung Electronics Co., Ltd. Apparatus and method for performing a fail-safe over-the-air software update in a mobile station
US20040267833A1 (en) * 2003-06-23 2004-12-30 Evyatar Meller Method and system for updating versions of content stored in a storage device
US20050039178A1 (en) * 2003-06-27 2005-02-17 Sunil Marolia System and method for downloading update packages into a mobile handset in a carrier network
US20050005268A1 (en) * 2003-07-01 2005-01-06 Zilavy Daniel V. Field-replaceable unit revision compatibility
US20050114504A1 (en) * 2003-07-09 2005-05-26 Sunil Marolia Carrier network capable of conducting remote diagnostics in a mobile handset
US7031972B2 (en) * 2003-07-21 2006-04-18 Innopath Software, Inc. Algorithms for block-level code alignment of software binary files
US20060101040A1 (en) * 2003-07-21 2006-05-11 Liwei Ren Algorithms for block-level code alignment of software binary files
US20050060699A1 (en) * 2003-09-17 2005-03-17 Samsung Electronics Co., Ltd. Method and system for updating software
US20050071385A1 (en) * 2003-09-26 2005-03-31 Rao Bindu Rama Update package catalog for update package transfer between generator and content server in a network
US20050096025A1 (en) * 2003-10-30 2005-05-05 Iyad Qumei Open update framework for mobile handsets capable of processing firmware and software update packages based on mime-types
US20050097544A1 (en) * 2003-10-31 2005-05-05 Samsung Electronics Co., Ltd. Mobile communication terminal having embedded system for software download and method for software download
US20050102615A1 (en) * 2003-11-12 2005-05-12 Manuel Roman Method and apparatus for composing software
US20050144609A1 (en) * 2003-12-12 2005-06-30 Intel Corporation Methods and apparatus to provide a robust code update
US20050144612A1 (en) * 2003-12-31 2005-06-30 Shin-Ping Wang Firmware updating method and application utilizing the same
US7073017B2 (en) * 2004-02-25 2006-07-04 Hitachi, Ltd. Efficient update of firmware in a disk-type storage device
US7433936B2 (en) * 2004-03-11 2008-10-07 Microsoft Corporation Connectivity objects under a mobile device management tree
US20050204068A1 (en) * 2004-03-11 2005-09-15 Microsoft Corporation Connectivity objects under a mobile device management tree
US7242929B2 (en) * 2004-03-22 2007-07-10 Motorola Inc. Method and apparatus for dynamic extension of device management tree data model on a mobile
US20050227683A1 (en) * 2004-03-22 2005-10-13 Motorola, Inc. Apparatus and method for over the air software repair
US20050216903A1 (en) * 2004-03-23 2005-09-29 General Motors Corporation Method and system for vehicle software configuration management
US20050216902A1 (en) * 2004-03-23 2005-09-29 General Motors Corporation Method and system for vehicle software configuration update management
US20060039561A1 (en) * 2004-08-20 2006-02-23 Nokia Corporation Methods and apparatus to integrate mobile communications device management with web browsing
US20060174242A1 (en) * 2005-02-01 2006-08-03 Microsoft Corporation Publishing the status of and updating firmware components
US7818556B2 (en) * 2006-08-28 2010-10-19 Toshiba Storage Device Corporation Storage apparatus, control method, and control device which can be reliably started up when power is turned on even after there is an error during firmware update

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060149744A1 (en) * 2004-12-30 2006-07-06 Das Abhinandan S Distributed set-expression cardinality estimation
US7873689B2 (en) * 2004-12-30 2011-01-18 Alcatel-Lucent Usa Inc. Distributed set-expression cardinality estimation
US20080028387A1 (en) * 2006-07-31 2008-01-31 Masayuki Nakagawa Update data transmission method, computer program for practicing the method, host device and firmware writing system
US8255894B2 (en) * 2006-07-31 2012-08-28 Seiko Epson Corporation Update data transmission method, computer program for practicing the method, host device and firmware writing system
US20120331454A1 (en) * 2011-06-24 2012-12-27 International Business Machines Corporation Image Delta-Based Upgrade Of Complex Stack In Software Appliance
US8997085B2 (en) * 2011-06-24 2015-03-31 International Business Machines Corporation Image delta-based upgrade of complex stack in software appliance
US20160188641A1 (en) * 2014-12-29 2016-06-30 Here Global B.V. Updates for Navigational Map Data Organized in Lists
US9798740B2 (en) * 2014-12-29 2017-10-24 Here Global B.V. Updates for navigational map data organized in lists
WO2018094180A1 (en) * 2016-11-21 2018-05-24 Nio Usa, Inc. Structure for updating software in remote device
US10209981B2 (en) 2016-11-21 2019-02-19 Nio Usa, Inc. Structure for updating software in remote device
US10360020B2 (en) 2017-04-11 2019-07-23 Nio Usa, Inc. Virtual machine (VM) approach to embedded system hot update
US10871952B2 (en) 2017-12-20 2020-12-22 Nio Usa, Inc. Method and system for providing secure over-the-air vehicle updates
WO2021188678A1 (en) * 2020-03-18 2021-09-23 Aclara Technologies Llc Robust firmware and configuration update over network

Also Published As

Publication number Publication date
US7555750B1 (en) 2009-06-30
US7367027B1 (en) 2008-04-29
US8233893B2 (en) 2012-07-31
US8219984B2 (en) 2012-07-10
US20060258344A1 (en) 2006-11-16
US7313791B1 (en) 2007-12-25
US20080059959A1 (en) 2008-03-06

Similar Documents

Publication Publication Date Title
US7367027B1 (en) System for generating efficient and compact update packages
US7549148B2 (en) Self-describing software image update components
US6993760B2 (en) Installing software on a mobile computing device using the rollback and security features of a configuration manager
US8719810B2 (en) Program upgrade system and method for over the air-capable mobile terminal
US7860834B2 (en) Method and system for updating versions of content stored in a storage device
US7363622B2 (en) Remote program downloading system
US7644404B2 (en) Network having customizable generators and electronic device having customizable updating software
US7958502B2 (en) Efficient generator of update packages for mobile devices that uses non-ELF preprocessing
US7814474B2 (en) Updatable mobile handset based on Linux with compression and decompression techniques
US8775620B2 (en) Multimedia middleware apparatus using metadata, method for controlling multimedia middleware, and storage medium thereof
US20040260734A1 (en) Processing software images for use in generating difference files
CN1886976B (en) Method and apparatus for performing actions on a wireless device using action lists and versioning
CN105740016A (en) Increment issuance method and device, upgrade method and device of application program
CN105335196A (en) POS (Point Of Sale) terminal program incremental download method
US20060136423A1 (en) Wireless communication terminal having function for dynamically upgrading platform and method thereof
CN113900723B (en) Common platform updating method, network device and computer readable storage medium
CN116647447A (en) Application program hot update method and device, intelligent device and storage medium
CN116599946A (en) Thermal updating method and device based on real Native, intelligent device and storage medium
CN112035142A (en) Data processing method, device and equipment based on software maintenance
CN110247966A (en) Kernel creation method, smart television and computer readable storage medium
WO2002045405A2 (en) Method and apparatus for building a platform specific data service

Legal Events

Date Code Title Description
AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BITFONE CORPORATION;REEL/FRAME:021316/0317

Effective date: 20080118

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.,TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BITFONE CORPORATION;REEL/FRAME:021316/0317

Effective date: 20080118

AS Assignment

Owner name: BITFONE CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHEN, SHAO-CHUN;GUSTAFSON, JAMES P.;BARBER, JERRY;SIGNING DATES FROM 20030215 TO 20110621;REEL/FRAME:027350/0251

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION