Software Updating

US2017090902A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017090902-A1
Application numberUS-201514941229-A
CountryUS
Kind codeA1
Filing dateNov 13, 2015
Priority dateSep 30, 2015
Publication dateMar 30, 2017
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A novel software updating method is provided. A target file is divided into segments, where some segments are updated by patching, while other segments are updated by archiving. The segmentation of the update allows very large files such as DYLD shared caches to be patched in-place, i.e., by using free space available within the file to perform patching rather than requiring enough free space on disk to store both the new version and the old version of the file. The segmentation of the update also allows each segment to be updated individually by the most optimal update method (copy, patch, or archive) so that the size of the update file can be minimized.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method of applying an update file for updating a target file stored on a device, the method comprising: receiving an update file that specifies a plurality of sections for the target file, wherein a first plurality of sections are patch update sections and a second plurality of sections are full update sections; vacating sections of the target file that correspond to the second plurality of sections to create free space in the target file; performing patch update for each section of the first plurality of sections by using free space in the target file. 2 . The method of claim 1 , wherein performing patch update for a section in the first plurality of sections comprises computing a current version of the section from a prior version of the section residing in the target file and a differential data stored in the update file. 3 . The method of claim 2 , wherein performing patch update for a section in the first plurality of sections further comprises moving data within the target file to make room for storing the computed current version of the section. 4 . The method of claim 2 , wherein performing patch update for a section in the first plurality of sections further comprises locating the old version of the section within the target file. 5 . The method of claim 2 , wherein performing patch update for a section in the first plurality of sections comprises using the free space in the target file to store the current version and the prior version of the section. 6 . The method of claim 5 , wherein the target file comprises a plurality of pages, wherein performing patch update for a section in the first plurality of sections comprises moving pages within the target file and tracking the use and the position of each page. 7 . The method of claim 1 further comprises, after each section of the first plurality of sections has been updated, expanding archived data for each section of the second plurality of sections. 8 . A computing device comprising: a set of processing units; and a machine readable medium storing a program for execution by at least one of the processors, the program for updating a target file stored on the device, the program comprising sets of instructions for: receiving an update file that specifies a plurality of sections for the target file, wherein a first plurality of sections are patch update sections and a second plurality of sections are full update sections; vacating sections of the target file that correspond to the second plurality of sections to create free space in the target file; performing patch update for each section of the first plurality of sections by using free space in the target file. 9 . The computing device of claim 8 , wherein the set of instructions for performing patch update for a section in the first plurality of sections comprises a set of instructions for computing a current version of the section from a prior version of the section residing in the target file and a differential data stored in the update file. 10 . The computing device of claim 9 , wherein the set of instructions for performing patch update for a section in the first plurality of sections further comprises a set of instructions for moving data within the target file to make room for storing the computed current version of the section. 11 . The computing device of claim 9 , wherein the set of instructions for performing patch update for a section in the first plurality of sections further comprises a set of instructions for locating the old version of the section within the target file. 12 . The computing device of claim 9 , wherein the set of instructions for performing patch update for a section in the first plurality of sections comprises a set of instructions for using the free space in the target file to store the current version and the prior version of the section. 13 . The computing device of claim 12 , wherein the target file comprises a plurality of pages, wherein the set of instructions for performing patch update for a section in the first plurality of sections comprises a set of instructions for moving pages within the target file and tracking the use and the position of each page. 14 . The computing device of claim 8 , wherein the program further comprises a set of instructions for expanding archived data for each section of the second plurality of sections after each section of the first plurality of sections has been updated, 15 . A method of specifying an update file for updating a target file stored on a device, the method comprising: generating a first update file by using a first compression technique to produce a plurality of compressed sections from a plurality of uncompressed sections that are to be stored in the target file; emulating an update process that will run on the device to determine whether the target file comprises sufficient amount of free space to store temporarily target-file content that may have to be moved to provide space to store each uncompressed section; said emulating producing a second update file that has a first set of the compressed sections from the first update file and a second set of compressed sections that are not from the first update file, wherein each compressed section in the second set of compressed sections is compressed by using a second compression technique. 16 . The method of claim 15 , wherein compressing each of the first set of sections by using the first compression technique comprises (i) identifying a difference between a current version of section and a prior version of the section that is executing on the device, and (ii) storing the difference in the second update file; and compressing each of the second set of sections by using the second compression technique comprises compressing a current version of the section, which is to replace a prior version of the section that is in the target file stored on the device. 17 . The method of claim 15 , wherein each of the first set of sections is identified by an emulation process as having sufficient space in the target file for storing its uncompressed sections, wherein said emulation process emulates (i) the uncompressing of the first set of compressed sections and (ii) the moving of the parts of the content of the target file. 18 . The method of claim 15 , wherein: each of the first set of sections is identified as having a smaller compression size when compressed by using patch section update; each of the second set of sections is identified as having a smaller compression size when compressed by using full section update. 19 . The method of claim 15 , wherein producing the second update file comprises identifying a section in the plurality of sections that when compressed by using the second compression technique instead of the first technique would add sufficient amount of free space for storing the temporarily target-file content that may have to be moved to provide space to store each uncompressed section. 20 . The method of claim 19 , wherein identifying a section in the plurality of sections comprises search through a sequence of sections whose corresponding sizes increase by geometric progression.

Assignees

Inventors

Classifications

  • G06F8/65Primary

    Updates (security arrangements therefor G06F21/57) · CPC title

  • G06F8/71Primary

    Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • Incremental updates; Differential updates · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2017090902A1 cover?
A novel software updating method is provided. A target file is divided into segments, where some segments are updated by patching, while other segments are updated by archiving. The segmentation of the update allows very large files such as DYLD shared caches to be patched in-place, i.e., by using free space available within the file to perform patching rather than requiring enough free space o…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/65. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Mar 30 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).