US20120096456A1 - Apparatus and method for selective file erasure using metadata modifications - Google Patents
Apparatus and method for selective file erasure using metadata modifications Download PDFInfo
- Publication number
- US20120096456A1 US20120096456A1 US13/325,820 US201113325820A US2012096456A1 US 20120096456 A1 US20120096456 A1 US 20120096456A1 US 201113325820 A US201113325820 A US 201113325820A US 2012096456 A1 US2012096456 A1 US 2012096456A1
- Authority
- US
- United States
- Prior art keywords
- software programs
- storage medium
- installed software
- data
- subset
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
- G06Q20/123—Shopping for digital content
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Definitions
- the present invention relates to the field of computer file system technology and, in particular, to a method, system, and program product for quickly and securely erasing files.
- Computer operating systems employ file systems to associate the complexity of physical storage hardware to logical abstractions that can be more easily and uniformly manipulated.
- Modern file systems use a hierarchy of directories (sometimes known as folders and subfolders) and directory entries to keep track of the file names on a file system stored within diverse storage media, including magnetic hard drives, flash memory drives, or optical media such as compact disks or DVDs.
- the directory entry for a file typically points to a list of blocks that contain the file's data.
- the exact format of the directory entry and block list varies with on the specific type of file system (e.g., Linux ext 2 , FAT 32 , NTFS, or UDF), but this general approach is widely used because it is simple and can track files and their contents with a minimum of overhead.
- file systems completely and destructively overwrite the file's data blocks one or more times with known patterns or random data before deletion, ensuring that the contents cannot be read without disassembling the media device.
- a variant of the data-overwrite approach is the encrypt overwrite approach whereby the data is not permanently lost if one possess the cryptographic key.
- Kung describes a method of securely deleting a file on a storage medium of a computer system so that it is not readable, wherein an encryption algorithm is used to encrypt the data in the stored file prior to a conventional deletion process.
- His invention permits a user to erase files from a permanent storage space in a manner that makes the file totally unreadable by others.
- the file is encrypted so that it is not readable.
- the user has an option to undelete the file by decrypting the file as long as this operation is done before the storage space is used by another program.
- a bitmap records uses a single bit for each block in the file system, with one value (1, for example) indicating that the corresponding block is free, and the other value (0) indicating that the corresponding block is incorporated into a file and thus unavailable for use.
- the file system frees the blocks associated with a file by setting the bits associated with the blocks to 1. This marking is arbitrary but consistent within a file system. Other systems, like NTFS, may use the opposite convention.
- substantially all file information mapping logical to physical storage is deleted.
- One embodiment is directed to a method for rendering data stored on a storage medium inaccessible. The method includes but is not limited to destroying metadata that identifies a location on the storage medium at which the data is stored such that at least a portion of the data cannot be located on the storage medium by reading of metadata; and leaving a substantial portion of the data intact on the storage medium upon completion of the method.
- Other embodiments provide fast selective bulk erase and make data harder to recover. These methods work particularly well for creating unique distributions of files derived from a common base.
- FIG. 1A is a schematic of areas within an ext 2 file system affected by selective erasure.
- FIG. 1B is a flowchart relating to erasing a single file in an ext 2 file system.
- FIG. 2A is a schematic of areas within a UDF file system affected by selective erasure.
- FIG. 2B is a flowchart relating to erasing a single file in a UDF file system.
- FIG. 3A is a schematic of areas within a FAT 32 file and directory structure affected by selective erasure methods.
- FIG. 3B is a flowchart relating to erasing a single file in a FAT 32 file system.
- FIG. 4 is a flowchart relating to erasing multiple files in an ext 2 file system.
- FIG. 5 is a flowchart relating to erasing multiple files in an UDF file system directory.
- FIG. 6A is a flowchart relating to erasing multiple files in an FAT 32 file system directory.
- FIG. 6B is a flowchart relating to freeing blocks in an FAT 32 file system after batch deletion.
- FIG. 7 is a data layout schema for enhancing batch deletion.
- FIG. 8A is a block diagram of a sideloading process 889 for dispensing soft assets into a personal computer or similar information-processing device.
- FIG. 8B is a block diagram of a sideloading process 890 for dispensing soft assets into a percepter or similar device.
- FIG. 9A is a block diagram of a panoplex-generation and panoplex-gryphing process 900 for creating a storage medium 99 having a customized and/or user-selected set of soft assets.
- FIG. 9B is a block diagram of another panoplex-generation and panoplex-gryphing process 904 for creating a storage medium 99 having a customized and/or user-selected set of soft assets.
- FIG. 9C is a block diagram of a storage device 960 (e.g., embodied on a disk drive 961 ) having a self-contained gryphing program 940 .
- FIG. 9D is a block diagram of a storage device 970 (e.g., embodied on a solid-state drive 971 ) having a self-contained gryphing program 940 .
- FIG. 9E is a block diagram of a process 988 to process a blankoplex 953 used for a storage device 936 .
- standard erasure time is linearly proportional to the number of files to be erased.
- Secure, destructive erasure time is linearly proportional to the size of the files to be erased.
- erasure time is linear to number of files for small numbers of files.
- elapsed time will peak and decline making erasure times shorter and more predictable.
- erasing includes writing zeros or other data patterns to some or all of the location(s) of data, thereby displacing and/or overwriting the previous data and making that previous data unreadable and unavailable; performing an erase operation (such as are available on certain types of electrically erasable programmable read-only memory chips) that erases one or more entire blocks of data at once; setting status indicators (such as certain bits in a directory entry) that are interpreted and enforced by operating-system software as indicating that the storage locations of the data are not readable as data or instructions; and/or other suitable methods.
- an erase operation such as are available on certain types of electrically erasable programmable read-only memory chips
- the present invention provides an erasure mechanism that is more expensive to defeat than the cost of the erased content.
- the cost of a conventional undeletion of a conventionally deleted file can be trivial. Accordingly, a more-secure mechanism should be used.
- the cost of defeating high-security erasure could be many times greater than the value of the erased panoplex content, but the use of high-security erasure exacts a toll on the manufacturer or retailer in terms of throughput (e.g., machines per hour) of the customization process. Accordingly, a more efficient erasure mechanism is needed.
- removal of extraneous content of the panoplex uses a secure, quick erase that overwrites file directory information that would otherwise allow file reconstruction.
- file directory information includes any file-in-use flag; file length; file-folder location; and cluster-allocation pointers.
- Such an erasure foils normal undelete programs and makes any attempt to reconstruct the content more costly than the cost of acquiring the content.
- FIG. 1A shows the directory entry, inode, and file blocks.
- FIGS. 1A and 1B elide the activities normally associated with deleting a file in ext 2 , including the manipulation of the free block bitmap; these operations are/remain unchanged.
- Deleting a single file in a UDF file system can be done similarly.
- Directories and file entries in a UDF file system are typically stored in a separate “metadata partition,” and each file entry contains the locations of the extents (an extent is a set of 1 or more contiguous blocks).
- a directory entry contains a file name and a pointer to the file's file entry, which is similar to an inode in ext 2 .
- Each file entry can be up to one block long, so it is rarely necessary to place extent locations anywhere other than the file entry itself.
- Deleting a single file in a FAT 32 file system is similar to the operation in ext 2 and UDF.
- the directory entry for a file in FAT 32 contains the file name (with a possible extension to successive directory entries for long file names) along with attributes including the number of the first cluster (block) of the file's data.
- the file can be deleted by setting the first letter of the file name to a certain value (0.times.E5); however, this approach makes it trivial to recover the file's name, location, and size.
- Our approach sets the entire directory entry to zero, and with 0.times.E5 subsequently written to the first byte of the directory entry, marking the entry as available, as shown in FIGS. 3A and 3B .
- the original directory structure might contain thousands of files, but each individually distributed disk might only retain relatively few files. Rather than produce totally new media for each such distribution, the construction of a new directory containing only the desired files could be used to quickly build a disk that contains just the desired files.
- This goal can be accomplished by constructing a list containing the files that will be included in the new directory and scanning the original directory, copying only the desired files to a new directory.
- the original directory can then be deleted using metadata deletion or destructive deletion thus bulk erasing numerous files at once.
- the algorithms for the specific file systems listed below assume that the system has already assembled or been given a list of files to keep in the new directory.
- This list can be kept in any form; however, it is more efficient for the program doing the copying to keep the list in a hash table. It is possible to check whether a particular string (file name) is in the hash table in constant time, allowing the following procedures to run in time linearly proportional to the number of files in the original directory.
- a new (empty) directory is created, and the original directory is opened.
- the process goes through each directory entry in the original directory in turn. If the file referenced by the directory entry is desired to be kept, the directory entry is copied from the old directory to the new directory. If the file referenced by the directory entry is not desired, the file may be optionally deleted as described above. This step might be unnecessary if the file system will not need to accommodate additional files, but is a good idea to keep the location of the deleted files from future users. After all of the entries in the old directory have been scanned, the old directory is deleted either through destructive or metadata erasure. This approach is illustrated in FIG. 4 .
- the procedure for deleting multiple files is similar for a UDF file system. As above, a new (empty) directory is created, and the original (old) directory is opened. The user then examines each directory entry in turn, copying the entry if it is to be kept and optionally deleting the file if it is not desired in the new directory. After all directory entries have been examined, the old directory is deleted as above. This algorithm is shown in FIG. 5 .
- Deletion of many files in FAT 32 also proceeds by creating a new (empty) directory and opening the original directory. The process then examines each directory entry in turn, copying the entry if it is to be kept and optionally deleting the file if it is not desired in the new directory. Deletion in this case consists of recording the first cluster used in the deleted file in a list. After all entries in the original directory have been examined and optionally copied to the new directory, the process reads in the FAT and deletes all of the files by starting at each deleted file's first cluster and following the pointers through the FAT, marking each visited pointer as free by zeroing it. By grouping all of the modifications to the FAT together, this approach can be much faster than deleting each file separately. This algorithm is shown in FIGS. 6A and 6B .
- Any directories to be created can then use blocks still marked “free” in the new FAT.
- the cross-over point for which approach is faster (delete individual files, or start with a “clean” FAT) varies and can be determined experimentally for a given system. In general, small list of files to be kept will be more quickly done by starting with a “clean” FAT, and that a system in which relatively few files are to be deleted will be handled more quickly using the approach in FIGS. 6A and 6B .
- a customized storage medium is formed by subtractive installation of soft assets, wherein the storage medium is preloaded with a superset of possible soft assets (a collection of available content called a “panoplex”), and is then gryphed to remove non-selected soft assets (creating erased space that can then be used for other data) and to retain selected assets (which are thereby substantially ready to use without substantial effort or additional input from the end user).
- a superset of possible soft assets a collection of available content called a “panoplex”
- the business plan calls for build-to-order operation.
- Hard drives are components provided by a disk-drive manufacturer.
- the contract with the drive supplier can include preloading the selected panoplex into the drives and delivering these to the computer manufacturer.
- the drives pass from the drive supplier to a contract manufacturer that loads the panoplex onto a disk.
- the original-equipment manufacturer (OEM) i.e., the brand-name manufacturer, loads the panoplex onto the drives.
- OEM original-equipment manufacturer
- the order includes an indication of the customer's selection of the desired content.
- the necessary customization is accomplished and the finished machine with the desired programs installed is delivered.
- a manufacturer who builds computers to place in their inventory will store the finished machines; each loaded with the selected panoplex, and will later customize the devices, as needed, before shipping.
- one or more data-encryption, sequestering, or other protection methods are used to prevent access to the soft assets contained within the end-user storage media unless and until a gryphing program is run on each end-user storage medium.
- a “blank” directory structure is written to a default location used by an operating system for the directory of the end-user storage medium, such that the storage medium appears to be substantially blank if used as is by that operating system.
- Directory data for the panoplex is written elsewhere on the end-user storage medium or on an external storage device, such that the gryphing program can access the panoplex directory data, gryph it, and write it to the default location used by the operating system for its directory.
- Another approach to obfuscating file structure is to overwrite selected file blocks to make recovery more difficult. Overwriting just a few blocks in a large file can make the file unusable, especially if the file contains program code. This could be accomplished by overwriting the first block of the file and a small number of subsequent blocks with patterned or random bits. Overwriting the first block obscures the type of the file as well as information about the file's size, entry points, checksum, metadata tags, and other critical information. Overwriting a small number of subsequent blocks can render the entire file useless, particularly if the file contains executable program code. This technique can be used with any of the deletion mechanisms listed above to make file recovery considerably more difficult.
- FIG. 8A is a block diagram of a sideloading process 889 for dispensing soft assets into a personal computer 804 or similar information-processing device, for example, a new device being purchased by its initial user.
- Conventional methods for dispensing soft assets into a personal computer 804 occasionally include downloading 892 of soft assets from a network 891 .
- network 891 could be a manufacturer's internal network used to preload soft assets into a device being assembled.
- one aspect of sideloading process 889 of the present invention provides sideloading 898 of soft assets, wherein a large set (an “ipselecta”) of soft assets are in effect loaded en masse onto a storage medium 99 that is operatively coupled to computer 804 , either before or after the ipselecta are loaded.
- storage medium 99 includes a disk drive and/or FLASH card or chip (e.g., a SanDisk®, TransFlash® or microSD® card) or any other suitable storage medium that is preloaded (for example, as described below for FIG. 9A or FIG.
- FIG. 8B is a block diagram of a sideloading process 890 for dispensing soft assets into a “percepter” 805 or similar device.
- Percepters are devices such as MP3 players, multi-function cell phones, video players and the like that provide sensory stimulation to a user's senses (i.e., sight and sound, as well as touch, smell, temperature, and the like).
- Process 890 is similar to process 889 of FIG. 8A , except that often an intermediate device such as computer 804 is required as a download intermediary between network 891 and percepter 805 for downloaded “percepta” (such as songs or other audio and/or video files) or other soft assets.
- An intermediate device such as computer 804 is also frequently required as a media-install intermediary between physical media 893 and percepter 805 for manually installed soft assets (such as songs that are read from a music CD, compressed (or “ripped”), and loaded into a playlist on an MP3 player).
- soft assets such as songs that are read from a music CD, compressed (or “ripped”), and loaded into a playlist on an MP3 player.
- one aspect of sideloading process 890 of the present invention provides direct sideloading 898 of soft assets, wherein a preloaded storage medium 99 is operatively coupled to percepter 805 , either before or after the ipselecta are selected and made available.
- storage medium 99 is preloaded (for example, as described below for FIG. 9A or FIG. 9B ), then plugged into an appropriate slot and connected by appropriate signal and power cabling to other hardware in percepter 805 (which is, in some embodiments for example, a cell phone and/or music player), again resulting in an operational, ready-to-use device.
- the sideloading into a percepter is supplemented by also downloading and/or manually installing soft assets that were not in the ipselecta.
- FIG. 9A is a block diagram of a process 900 for creating a storage medium 99 having a customized and/or user-selected set of soft assets 955 .
- storage medium 99 once completed, is sideloadable according to the descriptions for FIG. 8A and FIG. 8B above.
- process 900 includes a panoplex-generation process 901 and panoplex-gryphing process 902 .
- a plurality of soft assets 997 is installed into an installation storage medium (ISM) 910 using one or more installation programs 998 . In some embodiments, this operation is performed with ISM 910 coupled to and controlled by a device that is similar to the final device 960 (see FIG. 9B ).
- ISM installation storage medium
- ISM 910 is an initially blank, formatted storage medium onto which a plurality of soft assets (e.g., software programs or MP3 songs) is installed using one or more installation programs 998 .
- panoplex 911 is then copied to a master storage medium (MSM) 920 having one or more other panoplexes (e.g., panoplex 921 and panoplex 922 ) stored thereon.
- MSM master storage medium
- ISM 910 is then reformatted and again used to create a different panoplex having a different set of soft assets.
- an inventory of at least one blank end-user storage medium 935 is converted to intermediate workpiece 930 by copying into it the data for panoplex 911 (e.g., the software portion) from MSM 920 .
- blank end-user storage medium 935 is, in some embodiments, a disk drive or FLASH card that is part of the complete hardware 960 for the final user device (i.e., it is a complete hardware combination 960 with an embedded blank storage medium as described in FIG. 9B ). In other embodiments, it later becomes part of the complete hardware 960 (i.e., it is a stand-alone storage medium 935 (hardware) that is to be first loaded with panoplex 911 (software) and is then later connected to the rest of the device hardware).
- panoplex-gryphing process 902 Individual ones of the inventory of intermediate workpieces 930 are supplied, as needed, to panoplex-gryphing process 902 . That is, a blank end-user storage medium 935 becomes, by copying a panoplex 911 onto it, an intermediate workpiece 930 , and this becomes, after gryphing to remove relicta data, gryphed storage medium 99 .
- panoplex-gryphing process 902 includes obtaining a set of gryph source data 932 from the panoplex 911 on an intermediate workpiece 930 , obtaining ipselecta-relicta selection data (IRSD) 933 that indicates the selections of soft assets of a particular user, and gryphing the panoplex 911 by using gryphing program 940 to achieve subtractive installation.
- the subtractive installation performed by gryphing program 940 culls the relicta (the soft assets that are to be removed), leaving erased space 958 in the place of the culled soft assets, and retaining the ipselecta 955 (the soft assets selected to be retained) to obtain a gryphed storage medium 99 .
- the gryph source data 932 includes the data for the directory and the registry
- the gryphing program removes the directory entries and the registry entries for the relicta, and then writes the resulting directory and registry to their respective locations (i.e., the locations on the storage medium where the operating-system software expects to find this data) on intermediate workpiece (storage medium) 930 , thus forming the gryphed storage medium 99 . That is, a blank end-user storage medium 935 becomes, by copying a panoplex 911 onto it, an intermediate workpiece 930 , and this becomes, after gryphing to remove relicta data, gryphed storage medium 99 .
- the ipselecta-relicta selection data 933 is data that is interactively elicited and received from the end user (e.g., the purchaser of the final device).
- the IRSD 933 specifies each soft asset in the panoplex and whether that respective asset is to be kept or culled. In other embodiments, the IRSD specifies only the soft assets in the relicta, wherein the non-specified assets are retained by default. In some embodiments, the IRSD specifies the particular order in which the relicta are to be uninstalled.
- IRSD 933 specifies which soft assets in the panoplex are to be kept, implicitly specifying that the relicta are all other soft assets on the panoplex.
- the gryphing program 940 or a table that it uses specifies the particular order in which the relicta are to be uninstalled.
- IRSD 933 specifies to financial invoice/charging program 941 which soft assets in the panoplex are to be charged for, and financial invoice/charging program 941 charges for the selected content by either generating an invoice or deducting from an account (e.g., the account of the purchaser of this set of assets) an amount based, at least in part, on which soft assets are retained in the ipselecta 955 .
- an account e.g., the account of the purchaser of this set of assets
- charging includes any mechanism or facility to transfer, obtain, or ask for payment from a purchaser; “invoicing” includes any mechanism or facility to ask for payment or create a debt, such as, for example, creating an invoice that is mailed or electronically transmitted to a purchaser and that requests or demands future payment or otherwise debits a credit-card account; and “deducting” includes any mechanism or facility for transferring money at the present time from a purchaser's account to an account for the benefit of the seller.
- each intermediate workpiece 930 includes, as part of panoplex 911 , sufficient gryph source data 932 (e.g., directory and registry data) to provide the information needed by gryphing program 940 to cull the undesired/unselected relicta portion of panoplex 911 , under control of the IRSD 933 .
- each intermediate workpiece 930 includes the program code of gryphing program 940 , such that alone or with the assistance of external operating-system code, the gryphing can be accomplished (either in the final device 960 , or by a dedicated gryphing system).
- FIG. 9B is a block diagram of another panoplex-generation and panoplex-gryphing process 904 for creating a storage medium 99 having a customized and/or user-selected set of soft assets 955 .
- process 904 includes a panoplex-generation process 905 and panoplex-gryphing process 906 .
- a plurality of soft assets 997 is installed into an installation storage medium (ISM) 910 using one or more installation programs 998 .
- ISM installation storage medium
- panoplex 911 is then copied in two parts (panoplex' 926 (the panoplex less a certain amount of gryph data) and gryph data set 929 ) to a master storage medium (MSM) 923 .
- MSM 923 has one or more other panoplexes (e.g., panoplex' 924 and panoplex' 925 ) and corresponding gryph data sets (e.g., gryph data set 927 and gryph data set 928 ) stored thereon.
- gryph data sets e.g., gryph data set 927 and gryph data set 928
- an inventory of one or more intermediate workpieces 931 (which are each, e.g., a hardware/software combination) is created by copying the data for panoplex' 926 (e.g., the software portion) from MSM 923 to a corresponding number of blank end-user storage media 935 (the hardware portion, e.g., a disk drive or FLASH card).
- An individual one of the inventory of intermediate workpieces 931 is supplied, as needed, to panoplex-gryphing process 906 .
- the gryph data set 929 is transmitted, transported, and/or supplied as gryph source data 932 that is input to gryphing program 940 .
- panoplex-gryphing process 906 includes obtaining a set of gryph source data 932 from the gryph data set 929 , obtaining ipselecta-relicta selection data (IRSD) 933 that indicates the selections of soft assets of a particular user, and gryphing the panoplex' 926 by using gryphing program 940 to achieve subtractive installation.
- the subtractive installation performed by gryphing program 940 culls the relicta (the soft assets that are to be removed), leaving erased space 958 in the place of the culled soft assets, and retaining the ipselecta 955 (the soft assets selected to be retained) to obtain a gryphed storage medium 99 .
- the set of ipselecta 955 include the ipselecta directory 952 , the ipselecta registry 954 , and the ipselecta asset data 956 .
- each intermediate workpiece 931 omits from panoplex' 926 , sufficient gryph source data 932 (e.g., directory and registry data) to make the soft assets of panoplex' 926 substantially useless unless rejoined with gryph source data 932 (obtained or received from a different source) and gryphed by gryphing program 940 .
- intermediate workpiece 931 is operatively coupled to end-user device 960 before the gryphing program executes.
- end-user device 960 is substantially or completely ready-to-use and functional for its end user.
- each intermediate workpiece 931 includes the program code of gryphing program 940 , such that alone or with the assistance of external operating-system code, the gryphing can be accomplished in and by the final device 960 .
- FIG. 9C is a block diagram of a rotating-media storage device 960 (e.g., embodied on a disk drive 961 ) having a self-contained gryphing program 940 .
- a rotating-media storage device 960 e.g., embodied on a disk drive 961
- most or all of process 902 is performed in the storage device 960 .
- disk drive 961 has one or more rotating disks 969 having data stored thereon, wherein the data is written and read by transducer 959 that is moved to selected data positions by actuator 957 .
- disk drive 961 also includes various electronics including microprocessor or controller 963 , a data/instruction store 965 , one or more buffers 964 , and an external-device interface (also called a system interface) 962 used to accept data-transfer requests and to send data to and receive data from an external device such as the electronics of a personal computer 804 (see FIG. 8A ) or percepter 805 (see FIG. 8B ) through connector 956 (e.g., a serial ATA (SATA) connector).
- the data on disk(s) 969 is divided into two or more subsets, including a user-data subset 958 and the disk drive's reserved-area subset 968 .
- control program 966 and access-control program 967 are used to control operation of disk drive 961 , and to translate or map system addresses (e.g., logical-block addresses (LBAs) used by the external system to access disk-drive data) into disk-drive addresses (e.g., cylinder-head-sector (CHS) addresses used by controller 963 to access data on disk 969 ). That mapping process is also used to reassign spare sectors for those sectors that have failed or have unreadable or uncorrectable data, and to prevent user access to reserved area 968 .
- LBAs logical-block addresses
- CHS cylinder-head-sector
- a panoplex 911 (see FIG. 9A ) is initially stored on disk 969 , but access to the data in the panoplex 911 by external devices is blocked by access-control program 967 until gryphing program 940 has been run to cull the unselected soft assets (relicta) and/or to charge the user for the retained assets (ipselecta 955 ).
- control parameters, authorization codes and/or decryption keys are sent to gryphing program 940 through system interface 962 by an external device (such as an ordering, customization and/or selection computer), in order to enable gryphing program 940 to perform its gryphing operation, which, once completed, provides full access to the ipselecta 955 .
- Access-control program 967 prevents reading the panoplex data before gryphing and the relicta data after gryphing.
- the access-control program 967 will allow such normal use but will present zeros or some other data pattern instead of the panoplex data if any user-data sector is read before the system writes data to it. This allows the same disk drive 961 to be used as a gryph-able panoplex (if interfaced to a gryphing-program controller before first use) or as a normal blank drive (if accessed first by any other program), thus providing economies of scale and reducing inventory requirements to the system manufacturer.
- FIG. 9D is a block diagram of a solid-state storage device 970 (e.g., embodied on a flash or other type of solid-state drive 971 ) having a self-contained gryphing program 940 .
- the operation of device 970 is substantially the same as described for device 960 of FIG. 9C , and most or all of process 902 (see FIG. 9A ) is performed in the storage device 970 .
- solid-state drive 971 has one or more memory chips 979 having data stored thereon (e.g., using non-volatile memory such as FLASH, or memory that uses a thin-film battery embedded in device 970 ).
- solid-state drive 971 also includes various electronics including microprocessor or controller 963 , a data/instruction store 965 , zero or more buffers 964 , and a system interface 962 used to accept data-transfer requests and to send and receive data from an external device such as the electronics of a personal computer 804 (see FIG. 8A ) or percepter 805 (see FIG. 8B ) through connector 956 (e.g., a USB connector).
- the data on chip(s) 979 is divided into two or more subsets, including a user-data subset 958 and a reserved-area subset 968 .
- control program 966 and access-control program 967 are used to control operation of solid-state drive 971 , and to translate or map system addresses (e.g., logical-block addresses (LBAs) used by the external system to access disk-drive data), into chip-sector addresses used by controller 963 to access data on chip(s) 979 ). That mapping process is also used to reassign spare sectors for those sectors that have failed or have unreadable or uncorrectable data, and to prevent user access to the reserved area 968 .
- LBAs logical-block addresses
- a panoplex 911 (see FIG. 9A ) is initially stored on chip(s) 979 , but access to the data in the panoplex 911 by external devices is blocked by access-control program 967 until gryphing program 940 has been run to cull the unselected soft assets (relicta) and/or to charge the user for the retained assets (ipselecta 955 ).
- control parameters, authorization codes and/or decryption keys are sent to gryphing program 940 through system interface 962 by an external device (such as an ordering, customization and/or selection computer), in order to enable gryphing program 940 to perform its gryphing operation, which, once completed, provides full access to the ipselecta 955 .
- Access-control program 967 prevents reading the panoplex data before gryphing and the relicta data after gryphing.
- FIG. 9E is a block diagram of a process 988 to process a blankoplex 953 stored on a storage device 936 .
- the process of gryphing reads at least some program(s) (such as the gryphing program itself) and/or data (such as file directory data, registry data, manifest data and the like) in order to perform the gryphing process.
- data such as file directory data, registry data, manifest data and the like
- no data need be read from storage medium 936 .
- a directory structure 937 (and/or registry data, partition data, manifest data) is provided at the location(s) expected by the operating system, wherein this initial directory 937 is blank or substantially blank (i.e., indicating that all or substantially all of the storage space (other than the directory itself) is available for storage of user data.
- blankoplex 936 acts as a normal blank storage medium (e.g., a blank disk drive or blank solid-state drive). If, instead, gryphing process 943 operates and writes directory data and/or registry data and/or the like, then storage medium 936 will end up with ready-to-use ipselecta.
- a process such as process 904 of FIG.
- the separated gryph data 929 is the total panoplex directory and registry (TPDR) data 938 (which, in some embodiments, also contains other data) shown in FIG. 9E , and is input to selector-charger process 943 , along with ipselecta-relicta selection data (IRSD) 933 obtained from choices made by a user or purchaser.
- TPDR total panoplex directory and registry
- selector-charger process 943 includes a gryphing API (application programming interface) that operates on TPDR data 938 to generate the gryphed ipselecta directory-registry 939 (containing only data relevant to the ipselecta, and indicating all other storage space is available for storing of other data) and a pricing-charging API that presents pricing options to the user and elicits and receives selection data based on the choices and prices selected by the user.
- selector-charger process 943 debits an amount (based on the selections made and ipselecta kept) from the user's account 945 (either directly or by invoice sent to the user).
- selector-charger process 943 causes the ipselecta directory-registry 939 to be written on top of the blank directory area 937 to convert blankoplex 953 into a ready-to-use storage medium 99 (see FIG. 9B ) having the customized and/or user-selected set 955 of soft assets and erased space 958 .
- storage medium 99 is connected to the device that will use its soft assets after the gryphing process 943 operates, while in other embodiments, blankoplex 936 is connected to the device first, and gryphing process 943 operates afterward.
- the individual files and assets of panoplex' 926 are broken into pieces and stored in a scattered manner, in order to make reconstruction and/or use of the assets more difficult unless provided with the gryphed ipselecta directory-registry 939 .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Human Computer Interaction (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
A process that ensures the virtual destruction of data files a user wishes to erase from a storage medium, such as a hard drive, flash drive, or removable disk. This approach is appropriate for managing custom distributions from a large file sets as it is roughly linear in compute complexity to the number of files erased but is capped when many files are batch erased.
Description
- This is a divisional under 35 U.S.C. §120 of U.S. patent application Ser. No. 12/973,898 filed on Dec. 20, 2010, titled “METHOD AND APPARATUS FOR SELECTIVE FILE ERASURE USING METADATA MODIFICATIONS” (scheduled to issue as U.S. Pat. No. ______ on Dec. ______, 2011), which is a divisional under 35 U.S.C. §120 of U.S. patent application Ser. No. 12/534,839 filed on Aug. 3, 2009, titled “SELECTIVE FILE ERASURE USING METADATA MODIFICATIONS” (now U.S. Pat. No. 7,856,451), which is a divisional under 35 U.S.C. §120 of U.S. patent application Ser. No. 11/611,886 filed on Dec. 17, 2006, titled “SELECTIVE FILE ERASURE USING METADATA MODIFICATIONS” (now U.S. Pat. No. 7,571,176), which claims benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 60/753,635 filed on Dec. 22, 2005, titled “RAPID DISPENSING OF STORED DIGITAL CONTENT,” and of U.S. Provisional Patent Application No. 60/747,201 filed on May 14, 2006, titled “APPARATUS AND METHOD FOR SELECTIVELY DISPENSING SOFT ASSETS VIA SUBTRACTIVE INSTALLATION,” each one of which is incorporated herein by reference in its entirety.
- The present invention relates to the field of computer file system technology and, in particular, to a method, system, and program product for quickly and securely erasing files.
- Computer operating systems (OS) employ file systems to associate the complexity of physical storage hardware to logical abstractions that can be more easily and uniformly manipulated. Modern file systems use a hierarchy of directories (sometimes known as folders and subfolders) and directory entries to keep track of the file names on a file system stored within diverse storage media, including magnetic hard drives, flash memory drives, or optical media such as compact disks or DVDs.
- In such file systems, the directory entry for a file typically points to a list of blocks that contain the file's data. The exact format of the directory entry and block list varies with on the specific type of file system (e.g., Linux ext2, FAT32, NTFS, or UDF), but this general approach is widely used because it is simple and can track files and their contents with a minimum of overhead.
- Often, it is necessary to delete files from a file system for various reasons, including the need to free up space they are using, the need to replace the file with a more recent version, and the need to remove the file so that its data will no longer be accessible to users of the file system. In order to delete a file, most file systems must accomplish two tasks: marking the file's directory entry as “unused,” and making the file blocks that the file was using available to subsequently created files.
- If the goal of deleting the file is to ensure that nobody can ever recover the data contained in the file, file systems completely and destructively overwrite the file's data blocks one or more times with known patterns or random data before deletion, ensuring that the contents cannot be read without disassembling the media device.
- Overwriting technology is widely known. For example, U.S. Pat. No. 6,731,447 “Secure data file erasure” issued to Keith G. Bunker, et al. on May 4, 2004, and is incorporated herein by reference. Bunker et al. describe a process that ensures the destruction of data files a user wishes to completely erase from a storage medium, such as a hard drive or removable disk. A system administrator can select a quantity of and pattern to be used in overwrites of the data file so that no one can recover the data from the storage medium.
- A variant of the data-overwrite approach is the encrypt overwrite approach whereby the data is not permanently lost if one possess the cryptographic key. For example, U.S. Pat. No. 5,265,159 “Secure file erasure” issued to Kenneth C. Kung, on Nov. 23, 1993, and is incorporated herein by reference. Kung describes a method of securely deleting a file on a storage medium of a computer system so that it is not readable, wherein an encryption algorithm is used to encrypt the data in the stored file prior to a conventional deletion process. His invention permits a user to erase files from a permanent storage space in a manner that makes the file totally unreadable by others. When a user requests deletion of a stored file, the file is encrypted so that it is not readable. The user has an option to undelete the file by decrypting the file as long as this operation is done before the storage space is used by another program.
- While these data overwriting approaches to file deletion are very secure, they also very slow, being roughly linear in speed to the amount of data erased. Erasing via overwriting all of the files on a 500 gigabyte hard drive in this fashion can require many hours. Encrypting is slower yet as it requires additional compute resources in addition to the data overwriting time.
- Instead, nearly all modern file systems take a much simpler, but less secure, approach: they mark directory entries as “unused” and leave most of the other structures on disk untouched. This approach sets a flag in the directory entry, typically changing a single word on disk, and writes the directory entry back to disk. At this point, the file is considered deleted from the point of view of a file system user and the directory entry is available for reuse for future files that might be written, but the entry is largely unchanged otherwise.
- After marking the directory entry as “unused,” the file system must also make the blocks that the file was using available for use by other files. This can be done in several ways, the most common of which are a bitmap or a free list. In file systems such as Linux ext2, a bitmap records uses a single bit for each block in the file system, with one value (1, for example) indicating that the corresponding block is free, and the other value (0) indicating that the corresponding block is incorporated into a file and thus unavailable for use. In such a system, the file system frees the blocks associated with a file by setting the bits associated with the blocks to 1. This marking is arbitrary but consistent within a file system. Other systems, like NTFS, may use the opposite convention.
- No other activity is necessary; thus, file systems concerned with efficiency do not destroy the structures in the blocks themselves that describe the relationship of the blocks to the now-deleted file. This approach makes it straightforward to recover a file that has been deleted if no other files have reused the directory entry or media blocks; however, this is a drawback if the file should not be recoverable. The second kind of file system, such as UDF, maintains a list of blocks that are available (UDF actually uses extents—ranges of blocks—rather than individual block numbers, but the approach is the same). The identifiers for blocks that were used in the now-deleted file are added to the list of blocks available for reuse without necessarily altering the data within the blocks themselves. Not changing block content makes it straightforward to recover the file and its contents using the flagged directory entry and associated (unmodified) block pointers, as long as the data blocks have not been reallocated to another file.
- What is needed is a rapid means to erase files singly and in batch while making file recovery very difficult but not necessarily impossible. This protects non-unique digital assets by making data recovery cost more than the replacement value of the digital assets at risk, such as commercial software programs, music tracks, video, and still pictures and the like. By escalating piracy effort from a brief, self-service utility approach to an day-long, expert effort equipped with a $250,000 suite of tools, then a potential pirate more likely would just buy a fresh software package, music track, or movie rather than attempting to restore deleted files.
- In accordance with the present invention, substantially all file information mapping logical to physical storage is deleted. One embodiment is directed to a method for rendering data stored on a storage medium inaccessible. The method includes but is not limited to destroying metadata that identifies a location on the storage medium at which the data is stored such that at least a portion of the data cannot be located on the storage medium by reading of metadata; and leaving a substantial portion of the data intact on the storage medium upon completion of the method. Other embodiments provide fast selective bulk erase and make data harder to recover. These methods work particularly well for creating unique distributions of files derived from a common base.
-
FIG. 1A is a schematic of areas within an ext2 file system affected by selective erasure. -
FIG. 1B is a flowchart relating to erasing a single file in an ext2 file system. -
FIG. 2A is a schematic of areas within a UDF file system affected by selective erasure. -
FIG. 2B is a flowchart relating to erasing a single file in a UDF file system. -
FIG. 3A is a schematic of areas within a FAT32 file and directory structure affected by selective erasure methods. -
FIG. 3B is a flowchart relating to erasing a single file in a FAT32 file system. -
FIG. 4 is a flowchart relating to erasing multiple files in an ext2 file system. -
FIG. 5 is a flowchart relating to erasing multiple files in an UDF file system directory. -
FIG. 6A is a flowchart relating to erasing multiple files in an FAT32 file system directory. -
FIG. 6B is a flowchart relating to freeing blocks in an FAT32 file system after batch deletion. -
FIG. 7 is a data layout schema for enhancing batch deletion. -
FIG. 8A is a block diagram of a sideloading process 889 for dispensing soft assets into a personal computer or similar information-processing device. -
FIG. 8B is a block diagram of a sideloading process 890 for dispensing soft assets into a percepter or similar device. -
FIG. 9A is a block diagram of a panoplex-generation and panoplex-gryphing process 900 for creating astorage medium 99 having a customized and/or user-selected set of soft assets. -
FIG. 9B is a block diagram of another panoplex-generation and panoplex-gryphing process 904 for creating astorage medium 99 having a customized and/or user-selected set of soft assets. -
FIG. 9C is a block diagram of a storage device 960 (e.g., embodied on a disk drive 961) having a self-containedgryphing program 940. -
FIG. 9D is a block diagram of a storage device 970 (e.g., embodied on a solid-state drive 971) having a self-containedgryphing program 940. -
FIG. 9E is a block diagram of aprocess 988 to process ablankoplex 953 used for astorage device 936. - Although the following detailed description contains many specifics for the purpose of illustration, a person of ordinary skill in the art will appreciate that many variations and alterations to the following details are within the scope of the invention. Accordingly, the following preferred embodiments of the invention are set forth without any loss of generality to, and without imposing limitations upon the claimed invention. Further, in the following detailed description of the preferred embodiments, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the invention may be practiced. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.
- The leading digit(s) of reference numbers appearing in the Figures generally corresponds to the Figure number in which that component is first introduced, such that the same reference number is used throughout to refer to an identical component which appears in multiple Figures. Signals and connections may be referred to by the same reference number or label, and the actual meaning will be clear from its use in the context of the description.
- In accordance with the present invention, we offer a unique approach to deleting files through altering file metadata that is not as secure as totally overwriting the data in the files, but is significantly more secure than loosely flagging directory entries and marking data blocks as unused. This approach is significantly faster than secure deletion via data overwriting, and approaches and in some cases surpasses the speed of traditional file deletion via flagging entries.
- As a first approximation, standard erasure time is linearly proportional to the number of files to be erased. Secure, destructive erasure time is linearly proportional to the size of the files to be erased. Using our file metadata erasure approach, erasure time is linear to number of files for small numbers of files. However, when a substantially large number proportion of files within a directory are erased, elapsed time will peak and decline making erasure times shorter and more predictable.
- As used herein, erasing includes writing zeros or other data patterns to some or all of the location(s) of data, thereby displacing and/or overwriting the previous data and making that previous data unreadable and unavailable; performing an erase operation (such as are available on certain types of electrically erasable programmable read-only memory chips) that erases one or more entire blocks of data at once; setting status indicators (such as certain bits in a directory entry) that are interpreted and enforced by operating-system software as indicating that the storage locations of the data are not readable as data or instructions; and/or other suitable methods.
- In some embodiments, the present invention provides an erasure mechanism that is more expensive to defeat than the cost of the erased content. The cost of a conventional undeletion of a conventionally deleted file can be trivial. Accordingly, a more-secure mechanism should be used. The cost of defeating high-security erasure could be many times greater than the value of the erased panoplex content, but the use of high-security erasure exacts a toll on the manufacturer or retailer in terms of throughput (e.g., machines per hour) of the customization process. Accordingly, a more efficient erasure mechanism is needed.
- In some embodiments, removal of extraneous content of the panoplex uses a secure, quick erase that overwrites file directory information that would otherwise allow file reconstruction. Such directory information includes any file-in-use flag; file length; file-folder location; and cluster-allocation pointers. Such an erasure foils normal undelete programs and makes any attempt to reconstruct the content more costly than the cost of acquiring the content.
- Deleting Single Files
- Individual files are deleted by overwriting the entire directory entry with zeroes, rather than just setting a flag or byte in the directory entry. For the ext2 file system, this approach will destroy the file name and index node (inode) number of the file. For more complete security, the inode for the file should also be overwritten with zeros, hiding the file size, and the locations of the first 12 blocks in the file along with the location of extra block lists used to locate file blocks for files larger than 48 kilobytes. In ext2, this approach requires a single additional disk access to overwrite the inode with zeros; the time needed to write the zeros to the copy of the block in memory before writing it back to the media is negligible. Additional security can be obtained by overwriting the first block list of the deleted file (the “single indirect block”) with zeros, hiding the identities of the blocks that make up the first 4 megabytes of the file. This changes made to the directory entry, inode, and file blocks are shown in
FIG. 1A , with a flowchart in 1B. Note thatFIGS. 1A and 1B elide the activities normally associated with deleting a file in ext2, including the manipulation of the free block bitmap; these operations are/remain unchanged. - Deleting a single file in a UDF file system can be done similarly. Directories and file entries in a UDF file system are typically stored in a separate “metadata partition,” and each file entry contains the locations of the extents (an extent is a set of 1 or more contiguous blocks). As in ext2, a directory entry contains a file name and a pointer to the file's file entry, which is similar to an inode in ext2. Each file entry can be up to one block long, so it is rarely necessary to place extent locations anywhere other than the file entry itself. In a UDF file system, overwriting the entire directory entry with zeros and then marking the directory entry as unused will obscure the existence of the file name and the location of the file entry, and can be done as quickly as a standard fast deletion that only marks the directory entry as unused. If greater security is desired, the file entry can be overwritten with zeros, effectively hiding the location of the contents of the file to which the entry pointed. All of these activities are done in addition to the normal actions taken when deleting a file in a UDF file system, including the addition of the location of the freed blocks to the free block list. The modifications made to the directory entry and file entry are shown in
FIG. 2A , with a flowchart inFIG. 2B . As with ext2,FIGS. 2A and 2B elide operations associated with normal deletions. - Deleting a single file in a FAT32 file system is similar to the operation in ext2 and UDF. The directory entry for a file in FAT32 contains the file name (with a possible extension to successive directory entries for long file names) along with attributes including the number of the first cluster (block) of the file's data. The file can be deleted by setting the first letter of the file name to a certain value (0.times.E5); however, this approach makes it trivial to recover the file's name, location, and size. Our approach sets the entire directory entry to zero, and with 0.times.E5 subsequently written to the first byte of the directory entry, marking the entry as available, as shown in
FIGS. 3A and 3B . This approach completely hides both the file name, file size, and the location of its first cluster. As with a normal FAT32 file erase, the allocated cluster chain must be traversed and zeroed to free the blocks of the deleted file. This operation also makes it more difficult to recover a file by simply scanning the FAT. It is particularly strong when many files are deleted from a full file system. Metadata processing is here assumed to apply to both long and short name entries and both the primary and secondary FAT tables. - Deleting Large Numbers of Files
- Altering directory entries individually works well for deletion of individual files, but can be optimized better for deleting large numbers of files, as might be done for distribution of a relatively few files from a well-populated, relatively large storage medium. In such a case, the original directory structure might contain thousands of files, but each individually distributed disk might only retain relatively few files. Rather than produce totally new media for each such distribution, the construction of a new directory containing only the desired files could be used to quickly build a disk that contains just the desired files.
- This goal can be accomplished by constructing a list containing the files that will be included in the new directory and scanning the original directory, copying only the desired files to a new directory. The original directory can then be deleted using metadata deletion or destructive deletion thus bulk erasing numerous files at once. The algorithms for the specific file systems listed below assume that the system has already assembled or been given a list of files to keep in the new directory. This list can be kept in any form; however, it is more efficient for the program doing the copying to keep the list in a hash table. It is possible to check whether a particular string (file name) is in the hash table in constant time, allowing the following procedures to run in time linearly proportional to the number of files in the original directory.
- For an ext2 file system, a new (empty) directory is created, and the original directory is opened. Next, the process goes through each directory entry in the original directory in turn. If the file referenced by the directory entry is desired to be kept, the directory entry is copied from the old directory to the new directory. If the file referenced by the directory entry is not desired, the file may be optionally deleted as described above. This step might be unnecessary if the file system will not need to accommodate additional files, but is a good idea to keep the location of the deleted files from future users. After all of the entries in the old directory have been scanned, the old directory is deleted either through destructive or metadata erasure. This approach is illustrated in
FIG. 4 . - The procedure for deleting multiple files is similar for a UDF file system. As above, a new (empty) directory is created, and the original (old) directory is opened. The user then examines each directory entry in turn, copying the entry if it is to be kept and optionally deleting the file if it is not desired in the new directory. After all directory entries have been examined, the old directory is deleted as above. This algorithm is shown in
FIG. 5 . - Deletion of many files in FAT32 also proceeds by creating a new (empty) directory and opening the original directory. The process then examines each directory entry in turn, copying the entry if it is to be kept and optionally deleting the file if it is not desired in the new directory. Deletion in this case consists of recording the first cluster used in the deleted file in a list. After all entries in the original directory have been examined and optionally copied to the new directory, the process reads in the FAT and deletes all of the files by starting at each deleted file's first cluster and following the pointers through the FAT, marking each visited pointer as free by zeroing it. By grouping all of the modifications to the FAT together, this approach can be much faster than deleting each file separately. This algorithm is shown in
FIGS. 6A and 6B . - The above procedures work on a single directory, but many file systems contain large numbers of directories. In order to apply the above procedures to a tree of directories, the procedures should be applied recursively, with a directory being processed after all of its subdirectories have been processed. If this is done, empty directories can themselves be deleted and zeroed, further hiding the location of on-disk information.
- If an entire FAT32 file system is processed recursively, as described in the previous paragraph, an additional optimization can be applied. The procedure listed above requires that each file be deleted individually. However, if an entire FAT32 file system is processed and only a few files are to be kept, the entire FAT32 can be rebuilt. In this approach, the list of files to be kept contains all of the files to be retained in the entire file system; thus, the new FAT contains only the information for the files in the list. If there are few files to be kept and many to be deleted, it will be faster to start with a “clean” FAT in which all blocks are marked free, and to then traverse the original FAT for each file to be kept, copying the information for each block in each file to be kept from the original FAT to the new FAT. Any directories to be created can then use blocks still marked “free” in the new FAT. The cross-over point for which approach is faster (delete individual files, or start with a “clean” FAT) varies and can be determined experimentally for a given system. In general, small list of files to be kept will be more quickly done by starting with a “clean” FAT, and that a system in which relatively few files are to be deleted will be handled more quickly using the approach in
FIGS. 6A and 6B . - In some embodiments, a customized storage medium is formed by subtractive installation of soft assets, wherein the storage medium is preloaded with a superset of possible soft assets (a collection of available content called a “panoplex”), and is then gryphed to remove non-selected soft assets (creating erased space that can then be used for other data) and to retain selected assets (which are thereby substantially ready to use without substantial effort or additional input from the end user).
- Consider a manufacturer of computers. In one instance, the business plan calls for build-to-order operation. Hard drives are components provided by a disk-drive manufacturer. In one method of this invention, the contract with the drive supplier can include preloading the selected panoplex into the drives and delivering these to the computer manufacturer. Alternatively the drives pass from the drive supplier to a contract manufacturer that loads the panoplex onto a disk. Alternatively, the original-equipment manufacturer (OEM), i.e., the brand-name manufacturer, loads the panoplex onto the drives. When an order is received from a customer, the order includes an indication of the customer's selection of the desired content. On the production line, the necessary customization is accomplished and the finished machine with the desired programs installed is delivered. In another instance, a manufacturer who builds computers to place in their inventory will store the finished machines; each loaded with the selected panoplex, and will later customize the devices, as needed, before shipping.
- In some embodiments, one or more data-encryption, sequestering, or other protection methods are used to prevent access to the soft assets contained within the end-user storage media unless and until a gryphing program is run on each end-user storage medium. In some embodiments, a “blank” directory structure is written to a default location used by an operating system for the directory of the end-user storage medium, such that the storage medium appears to be substantially blank if used as is by that operating system. Directory data for the panoplex is written elsewhere on the end-user storage medium or on an external storage device, such that the gryphing program can access the panoplex directory data, gryph it, and write it to the default location used by the operating system for its directory.
- Obfuscating File Structure
- In all of these scenarios, after file deletion, the data itself will still exist on the media, but would require considerable effort to recover. Nonetheless, in certain applications, be prudence might dictate taking additional precautions to make recovery of intact but erased files more difficult. Certain practices are particularly useful.
- For example, many file systems, particularly those that utilize optical media, store the contents of a file in contiguous blocks on the media. In such a case, recovery simply consists of finding the first block of a file; the remaining blocks follow sequentially. To combat this problem, the blocks of a file should be written non-contiguously. To ensure that performance is still acceptable, however, the file could be stored as non-contiguous extents of reasonable size, say 128 kilobytes to 4 megabytes, making reassembly of the files without usable metadata much more difficult. It is important to note that data in such a file system is still potentially recoverable, but the cost and effort necessary to recover it should exceed the value of the files deleted in such a way.
- Another approach to obfuscating file structure is to overwrite selected file blocks to make recovery more difficult. Overwriting just a few blocks in a large file can make the file unusable, especially if the file contains program code. This could be accomplished by overwriting the first block of the file and a small number of subsequent blocks with patterned or random bits. Overwriting the first block obscures the type of the file as well as information about the file's size, entry points, checksum, metadata tags, and other critical information. Overwriting a small number of subsequent blocks can render the entire file useless, particularly if the file contains executable program code. This technique can be used with any of the deletion mechanisms listed above to make file recovery considerably more difficult.
- The two approaches above are best combined by storing the first blocks of many files near one another, with the remainder of the files spread across the media. In this way, the first blocks of many files could be overwritten by writing patterns or random bits to large sequential chunks of the media. Since sequential writes are often much faster than writes to non-consecutive locations, this approach has the advantage of being able to obfuscate many files relatively quickly. In addition, the non-sequential storage of individual files would make it more difficult to locate them without the metadata that describes the location of the deleted files' contents. A diagram of this technique is shown in
FIG. 7 . Optionally after deletion, background storage defragmentation can be scheduled or immediately performed, to improve file access to the remaining unerased files. Furthermore, with Windows implementations, an optional cleanup of the Windows Registry to remove linkages or indicia to any of the erased files or programs is suggested. -
FIG. 8A is a block diagram of a sideloading process 889 for dispensing soft assets into a personal computer 804 or similar information-processing device, for example, a new device being purchased by its initial user. Conventional methods for dispensing soft assets into a personal computer 804 occasionally include downloading 892 of soft assets from a network 891. For example, network 891 could be a manufacturer's internal network used to preload soft assets into a device being assembled. Further, software and music are commonly available for purchase (or even for free, in some cases) and immediate download from the internet 891 via a process of “downloading.” Conventional methods also include media-installing 894 of soft assets from physical media 893 (e.g., CDROM, diskette, FLASH memory, and the like), sometimes also requiring substantial amounts of manual input 896 from a user via an interactive input device 895 (such as a manual keyboard). It takes a considerable amount of the user's time and mental energy (the drain on the user from the concentration needed to perform the various unfamiliar tasks, as well as the boredom from waiting for the process to complete), as well as power from the electrical grid needed to download and install a large selection of soft assets from the internet 891, or to install soft assets from media 893 and/or manual input device 895. - In contrast, one aspect of sideloading process 889 of the present invention provides sideloading 898 of soft assets, wherein a large set (an “ipselecta”) of soft assets are in effect loaded en masse onto a
storage medium 99 that is operatively coupled to computer 804, either before or after the ipselecta are loaded. For example, in some embodiments,storage medium 99 includes a disk drive and/or FLASH card or chip (e.g., a SanDisk®, TransFlash® or microSD® card) or any other suitable storage medium that is preloaded (for example, as described below forFIG. 9A orFIG. 9B below), then plugged into an appropriate slot and connected by appropriate signal and power cabling to other hardware in computer 804, resulting in an operational, ready-to-use device 804. This saves a considerable amount of time (thus increasing manufacturing throughput and/or reducing the time spent by the user waiting for his or her purchase to become usable) and electrical energy for the manufacturer and/or end-user by avoiding much or all of the downloading manual, and/or media installing of soft assets. In some embodiments, however, the sideloading of the present invention is supplemented by also downloading and/or manually installing and/or media installing soft assets that were not in the ipselecta. -
FIG. 8B is a block diagram of a sideloading process 890 for dispensing soft assets into a “percepter” 805 or similar device. Percepters are devices such as MP3 players, multi-function cell phones, video players and the like that provide sensory stimulation to a user's senses (i.e., sight and sound, as well as touch, smell, temperature, and the like). Process 890 is similar to process 889 ofFIG. 8A , except that often an intermediate device such as computer 804 is required as a download intermediary between network 891 and percepter 805 for downloaded “percepta” (such as songs or other audio and/or video files) or other soft assets. An intermediate device such as computer 804 is also frequently required as a media-install intermediary between physical media 893 and percepter 805 for manually installed soft assets (such as songs that are read from a music CD, compressed (or “ripped”), and loaded into a playlist on an MP3 player). - In contrast, one aspect of sideloading process 890 of the present invention provides direct sideloading 898 of soft assets, wherein a
preloaded storage medium 99 is operatively coupled to percepter 805, either before or after the ipselecta are selected and made available. For example, in some embodiments,storage medium 99 is preloaded (for example, as described below forFIG. 9A orFIG. 9B ), then plugged into an appropriate slot and connected by appropriate signal and power cabling to other hardware in percepter 805 (which is, in some embodiments for example, a cell phone and/or music player), again resulting in an operational, ready-to-use device. In some embodiments, the sideloading into a percepter is supplemented by also downloading and/or manually installing soft assets that were not in the ipselecta. -
FIG. 9A is a block diagram of aprocess 900 for creating astorage medium 99 having a customized and/or user-selected set ofsoft assets 955. In some embodiments,storage medium 99, once completed, is sideloadable according to the descriptions forFIG. 8A andFIG. 8B above. In some embodiments,process 900 includes a panoplex-generation process 901 and panoplex-gryphing process 902. In some embodiments, a plurality ofsoft assets 997 is installed into an installation storage medium (ISM) 910 using one ormore installation programs 998. In some embodiments, this operation is performed withISM 910 coupled to and controlled by a device that is similar to the final device 960 (seeFIG. 9B ). The result of installations is a panoplex 911 stored onISM 910. In some embodiments,ISM 910 is an initially blank, formatted storage medium onto which a plurality of soft assets (e.g., software programs or MP3 songs) is installed using one ormore installation programs 998. In some embodiments,panoplex 911 is then copied to a master storage medium (MSM) 920 having one or more other panoplexes (e.g.,panoplex 921 and panoplex 922) stored thereon. In some embodiments,ISM 910 is then reformatted and again used to create a different panoplex having a different set of soft assets. - In some embodiments, an inventory of at least one blank end-
user storage medium 935 is converted tointermediate workpiece 930 by copying into it the data for panoplex 911 (e.g., the software portion) fromMSM 920. For example, blank end-user storage medium 935 is, in some embodiments, a disk drive or FLASH card that is part of thecomplete hardware 960 for the final user device (i.e., it is acomplete hardware combination 960 with an embedded blank storage medium as described inFIG. 9B ). In other embodiments, it later becomes part of the complete hardware 960 (i.e., it is a stand-alone storage medium 935 (hardware) that is to be first loaded with panoplex 911 (software) and is then later connected to the rest of the device hardware). Individual ones of the inventory ofintermediate workpieces 930 are supplied, as needed, to panoplex-gryphing process 902. That is, a blank end-user storage medium 935 becomes, by copying apanoplex 911 onto it, anintermediate workpiece 930, and this becomes, after gryphing to remove relicta data,gryphed storage medium 99. - In some embodiments, panoplex-
gryphing process 902 includes obtaining a set ofgryph source data 932 from thepanoplex 911 on anintermediate workpiece 930, obtaining ipselecta-relicta selection data (IRSD) 933 that indicates the selections of soft assets of a particular user, and gryphing thepanoplex 911 by usinggryphing program 940 to achieve subtractive installation. The subtractive installation performed bygryphing program 940 culls the relicta (the soft assets that are to be removed), leaving erasedspace 958 in the place of the culled soft assets, and retaining the ipselecta 955 (the soft assets selected to be retained) to obtain agryphed storage medium 99. In some embodiments, for example, thegryph source data 932 includes the data for the directory and the registry, and the gryphing program removes the directory entries and the registry entries for the relicta, and then writes the resulting directory and registry to their respective locations (i.e., the locations on the storage medium where the operating-system software expects to find this data) on intermediate workpiece (storage medium) 930, thus forming thegryphed storage medium 99. That is, a blank end-user storage medium 935 becomes, by copying apanoplex 911 onto it, anintermediate workpiece 930, and this becomes, after gryphing to remove relicta data,gryphed storage medium 99. - In some embodiments, the ipselecta-
relicta selection data 933 is data that is interactively elicited and received from the end user (e.g., the purchaser of the final device). In some embodiments, theIRSD 933 specifies each soft asset in the panoplex and whether that respective asset is to be kept or culled. In other embodiments, the IRSD specifies only the soft assets in the relicta, wherein the non-specified assets are retained by default. In some embodiments, the IRSD specifies the particular order in which the relicta are to be uninstalled. - In some embodiments,
IRSD 933 specifies which soft assets in the panoplex are to be kept, implicitly specifying that the relicta are all other soft assets on the panoplex. In some embodiments, thegryphing program 940 or a table that it uses specifies the particular order in which the relicta are to be uninstalled. - In some embodiments,
IRSD 933 specifies to financial invoice/charging program 941 which soft assets in the panoplex are to be charged for, and financial invoice/charging program 941 charges for the selected content by either generating an invoice or deducting from an account (e.g., the account of the purchaser of this set of assets) an amount based, at least in part, on which soft assets are retained in theipselecta 955. As used herein, “charging” includes any mechanism or facility to transfer, obtain, or ask for payment from a purchaser; “invoicing” includes any mechanism or facility to ask for payment or create a debt, such as, for example, creating an invoice that is mailed or electronically transmitted to a purchaser and that requests or demands future payment or otherwise debits a credit-card account; and “deducting” includes any mechanism or facility for transferring money at the present time from a purchaser's account to an account for the benefit of the seller. - In some embodiments, each
intermediate workpiece 930 includes, as part ofpanoplex 911, sufficient gryph source data 932 (e.g., directory and registry data) to provide the information needed bygryphing program 940 to cull the undesired/unselected relicta portion ofpanoplex 911, under control of theIRSD 933. In some embodiments, eachintermediate workpiece 930 includes the program code ofgryphing program 940, such that alone or with the assistance of external operating-system code, the gryphing can be accomplished (either in thefinal device 960, or by a dedicated gryphing system). -
FIG. 9B is a block diagram of another panoplex-generation and panoplex-gryphing process 904 for creating astorage medium 99 having a customized and/or user-selected set ofsoft assets 955. In some embodiments,process 904 includes a panoplex-generation process 905 and panoplex-gryphing process 906. As described above forprocess 901, in some embodiments, a plurality ofsoft assets 997 is installed into an installation storage medium (ISM) 910 using one ormore installation programs 998. In some embodiments,panoplex 911 is then copied in two parts (panoplex' 926 (the panoplex less a certain amount of gryph data) and gryph data set 929) to a master storage medium (MSM) 923. In some embodiments,MSM 923 has one or more other panoplexes (e.g., panoplex' 924 and panoplex' 925) and corresponding gryph data sets (e.g.,gryph data set 927 and gryph data set 928) stored thereon. By separating thegryphing data 929, the panoplex' 926 becomes more secure against theft of the soft assets therein. In some embodiments, an inventory of one or more intermediate workpieces 931 (which are each, e.g., a hardware/software combination) is created by copying the data for panoplex' 926 (e.g., the software portion) fromMSM 923 to a corresponding number of blank end-user storage media 935 (the hardware portion, e.g., a disk drive or FLASH card). An individual one of the inventory ofintermediate workpieces 931 is supplied, as needed, to panoplex-gryphing process 906. Separately, thegryph data set 929 is transmitted, transported, and/or supplied asgryph source data 932 that is input togryphing program 940. - In some embodiments, panoplex-
gryphing process 906 includes obtaining a set ofgryph source data 932 from thegryph data set 929, obtaining ipselecta-relicta selection data (IRSD) 933 that indicates the selections of soft assets of a particular user, and gryphing the panoplex' 926 by usinggryphing program 940 to achieve subtractive installation. The subtractive installation performed bygryphing program 940 culls the relicta (the soft assets that are to be removed), leaving erasedspace 958 in the place of the culled soft assets, and retaining the ipselecta 955 (the soft assets selected to be retained) to obtain agryphed storage medium 99. In some embodiments, the set ofipselecta 955 include theipselecta directory 952, theipselecta registry 954, and theipselecta asset data 956. - In some embodiments, each
intermediate workpiece 931 omits from panoplex' 926, sufficient gryph source data 932 (e.g., directory and registry data) to make the soft assets of panoplex' 926 substantially useless unless rejoined with gryph source data 932 (obtained or received from a different source) and gryphed bygryphing program 940. In some embodiments,intermediate workpiece 931 is operatively coupled to end-user device 960 before the gryphing program executes. In some embodiments, oncegryphing program 940 completes its operation, end-user device 960 is substantially or completely ready-to-use and functional for its end user. In some embodiments, eachintermediate workpiece 931 includes the program code ofgryphing program 940, such that alone or with the assistance of external operating-system code, the gryphing can be accomplished in and by thefinal device 960. -
FIG. 9C is a block diagram of a rotating-media storage device 960 (e.g., embodied on a disk drive 961) having a self-containedgryphing program 940. In some embodiments, most or all of process 902 (seeFIG. 9A ) is performed in thestorage device 960. In some embodiments,disk drive 961 has one or morerotating disks 969 having data stored thereon, wherein the data is written and read bytransducer 959 that is moved to selected data positions byactuator 957. In some embodiments,disk drive 961 also includes various electronics including microprocessor orcontroller 963, a data/instruction store 965, one ormore buffers 964, and an external-device interface (also called a system interface) 962 used to accept data-transfer requests and to send data to and receive data from an external device such as the electronics of a personal computer 804 (seeFIG. 8A ) or percepter 805 (seeFIG. 8B ) through connector 956 (e.g., a serial ATA (SATA) connector). In some embodiments, the data on disk(s) 969 is divided into two or more subsets, including a user-data subset 958 and the disk drive's reserved-area subset 968. In some embodiments, whendisk drive 961 is powered up,store 965 is loaded withcontrol program 966 and access-control program 967. In some embodiments,control program 966 and access-control program 967 are used to control operation ofdisk drive 961, and to translate or map system addresses (e.g., logical-block addresses (LBAs) used by the external system to access disk-drive data) into disk-drive addresses (e.g., cylinder-head-sector (CHS) addresses used bycontroller 963 to access data on disk 969). That mapping process is also used to reassign spare sectors for those sectors that have failed or have unreadable or uncorrectable data, and to prevent user access toreserved area 968. In the embodiment ofFIG. 9C , a panoplex 911 (seeFIG. 9A ) is initially stored ondisk 969, but access to the data in thepanoplex 911 by external devices is blocked by access-control program 967 untilgryphing program 940 has been run to cull the unselected soft assets (relicta) and/or to charge the user for the retained assets (ipselecta 955). In some embodiments, control parameters, authorization codes and/or decryption keys are sent togryphing program 940 throughsystem interface 962 by an external device (such as an ordering, customization and/or selection computer), in order to enablegryphing program 940 to perform its gryphing operation, which, once completed, provides full access to theipselecta 955. Access-control program 967 prevents reading the panoplex data before gryphing and the relicta data after gryphing. In some embodiments, ifdisk drive 961 is used (e.g., attempting to read data from the user- data area before gryphing is complete), the access-control program 967 will allow such normal use but will present zeros or some other data pattern instead of the panoplex data if any user-data sector is read before the system writes data to it. This allows thesame disk drive 961 to be used as a gryph-able panoplex (if interfaced to a gryphing-program controller before first use) or as a normal blank drive (if accessed first by any other program), thus providing economies of scale and reducing inventory requirements to the system manufacturer. -
FIG. 9D is a block diagram of a solid-state storage device 970 (e.g., embodied on a flash or other type of solid-state drive 971) having a self-containedgryphing program 940. In some embodiments, the operation ofdevice 970 is substantially the same as described fordevice 960 ofFIG. 9C , and most or all of process 902 (seeFIG. 9A ) is performed in thestorage device 970. In some embodiments, solid-state drive 971 has one ormore memory chips 979 having data stored thereon (e.g., using non-volatile memory such as FLASH, or memory that uses a thin-film battery embedded in device 970). In some embodiments, solid-state drive 971 also includes various electronics including microprocessor orcontroller 963, a data/instruction store 965, zero ormore buffers 964, and asystem interface 962 used to accept data-transfer requests and to send and receive data from an external device such as the electronics of a personal computer 804 (seeFIG. 8A ) or percepter 805 (seeFIG. 8B ) through connector 956 (e.g., a USB connector). In some embodiments, the data on chip(s) 979 is divided into two or more subsets, including a user-data subset 958 and a reserved-area subset 968. In some embodiments, when solid-state drive 971 is powered up,store 965 is loaded with control program (CP) 966 and access-control program (ACP) 967. In some embodiments,control program 966 and access-control program 967 are used to control operation of solid-state drive 971, and to translate or map system addresses (e.g., logical-block addresses (LBAs) used by the external system to access disk-drive data), into chip-sector addresses used bycontroller 963 to access data on chip(s) 979). That mapping process is also used to reassign spare sectors for those sectors that have failed or have unreadable or uncorrectable data, and to prevent user access to the reservedarea 968. In the embodiment ofFIG. 9D , a panoplex 911 (seeFIG. 9A ) is initially stored on chip(s) 979, but access to the data in thepanoplex 911 by external devices is blocked by access-control program 967 untilgryphing program 940 has been run to cull the unselected soft assets (relicta) and/or to charge the user for the retained assets (ipselecta 955). In some embodiments, control parameters, authorization codes and/or decryption keys are sent togryphing program 940 throughsystem interface 962 by an external device (such as an ordering, customization and/or selection computer), in order to enablegryphing program 940 to perform its gryphing operation, which, once completed, provides full access to theipselecta 955. Access-control program 967 prevents reading the panoplex data before gryphing and the relicta data after gryphing. -
FIG. 9E is a block diagram of aprocess 988 to process ablankoplex 953 stored on astorage device 936. In at least some of the embodiments described above, the process of gryphing reads at least some program(s) (such as the gryphing program itself) and/or data (such as file directory data, registry data, manifest data and the like) in order to perform the gryphing process. In contrast, in some embodiments such as shown inFIG. 9E , no data need be read fromstorage medium 936. Rather, a directory structure 937 (and/or registry data, partition data, manifest data) is provided at the location(s) expected by the operating system, wherein thisinitial directory 937 is blank or substantially blank (i.e., indicating that all or substantially all of the storage space (other than the directory itself) is available for storage of user data. If used as is, withoutgryphing process 943, blankoplex 936 acts as a normal blank storage medium (e.g., a blank disk drive or blank solid-state drive). If, instead, gryphingprocess 943 operates and writes directory data and/or registry data and/or the like, thenstorage medium 936 will end up with ready-to-use ipselecta. In some embodiments, a process, such asprocess 904 ofFIG. 9B , separates apanoplex 911 intocertain gryph data 929 and the remaining panoplex' 926. In some embodiments, the separatedgryph data 929 is the total panoplex directory and registry (TPDR) data 938 (which, in some embodiments, also contains other data) shown inFIG. 9E , and is input to selector-charger process 943, along with ipselecta-relicta selection data (IRSD) 933 obtained from choices made by a user or purchaser. In some embodiments, selector-charger process 943 includes a gryphing API (application programming interface) that operates onTPDR data 938 to generate the gryphed ipselecta directory-registry 939 (containing only data relevant to the ipselecta, and indicating all other storage space is available for storing of other data) and a pricing-charging API that presents pricing options to the user and elicits and receives selection data based on the choices and prices selected by the user. In some embodiments, selector-charger process 943 debits an amount (based on the selections made and ipselecta kept) from the user's account 945 (either directly or by invoice sent to the user). In some embodiments, selector-charger process 943 causes the ipselecta directory-registry 939 to be written on top of theblank directory area 937 to convertblankoplex 953 into a ready-to-use storage medium 99 (seeFIG. 9B ) having the customized and/or user-selectedset 955 of soft assets and erasedspace 958. In some embodiments,storage medium 99 is connected to the device that will use its soft assets after thegryphing process 943 operates, while in other embodiments,blankoplex 936 is connected to the device first, andgryphing process 943 operates afterward. In some embodiments, the individual files and assets of panoplex' 926 are broken into pieces and stored in a scattered manner, in order to make reconstruction and/or use of the assets more difficult unless provided with the gryphed ipselecta directory-registry 939. - While these techniques have been illustrated with several specific, currently widely-used file systems, they are of general application to any file system that manages physical storage. The above description is illustrative only and is not limiting. Instead, the present invention is defined solely by the claims which follow and their full range of equivalents.
- It is to be understood that the above description is intended to be illustrative, and not restrictive. Moreover, it is not necessary for a device or method to address each and every problem sought to be solved by the present invention, for it to be encompassed by the present claims. Furthermore, no element, component, or method step in the present invention is intended to be dedicated to the public regardless of whether the element, component, or method step is explicitly recited in the claims. No claim element herein is to be construed under the provisions of 35 U.S.C. §112
paragraph 6 unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is expressly recited as a “step” instead of an “act.” - Although numerous characteristics and advantages of various embodiments as described herein have been set forth in the foregoing description, together with details of the structure and function of various embodiments, many other embodiments and changes to details will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein,” respectively. Moreover, the terms “first,” “second,” and “third,” etc., are used merely as labels, and are not intended to impose numerical requirements on their objects.
Claims (20)
1. A computer-implemented method for installing and distributing customized content using a first storage medium having a plurality of installed software programs stored therein, wherein the plurality of installed software programs includes at least a first subset and a second subset, the method comprising:
obtaining a set of metadata describing the plurality of installed software programs, wherein the set of metadata includes directory information that identifies locations on the first storage medium at which the plurality of installed software programs are stored;
receiving selection data that distinguish the first subset of the plurality of installed software programs that is to be unavailable for use by an end user from the second subset of the plurality of installed software programs, wherein the second subset of the plurality of installed software programs are selected software programs that are to be retained and available as installed software programs for the end user;
automatically modifying the first storage medium based on the selection data such that, in place of those software programs not relevant to the selected software programs, erased space becomes available for storage of other data, and automatically modifying a portion of the set of metadata into modified directory information metadata, wherein the modified directory information metadata corresponds to the second subset of the plurality of installed software programs to be retained; and
writing the modified directory information metadata into storage locations used by an operating system for access to the retained installed software programs such that those selected software programs specified by the selection data are available as installed software programs.
2. The method of claim 1 , wherein the automatically modifying the first storage medium includes performing a secure-quick-erase operation that includes overwriting the directory information that would otherwise allow reconstruction of the first subset of the plurality of installed software programs.
3. The method of claim 1 , further comprising:
providing a master storage medium;
installing a plurality of software programs to the master storage medium;
copying, to the first storage medium, data from the master storage medium that includes the plurality of installed software programs.
4. The method of claim 1 , further comprising operatively coupling the first storage medium to an end-user device for a first time after the writing of the modified directory information metadata.
5. The method of claim 1 , further comprising operatively coupling the first storage medium to an end-user device for a first time before the receiving of the selection data.
6. The method of claim 1 , wherein the obtaining of the set of metadata describing the plurality of installed software programs includes obtaining the set of metadata describing the plurality of installed software programs from the first storage medium.
7. The method of claim 1 , further comprising charging a monetary amount to a predetermined account based on the received selection data.
8. An apparatus comprising:
a processor;
a first storage medium that has a plurality of installed software programs stored therein, wherein the plurality of installed software programs includes at least a first subset and a second subset;
a set of metadata that describes the plurality of installed software programs, wherein the set of metadata includes directory information that identifies locations on the first storage medium at which the plurality of installed software programs are stored;
a receiver operatively coupled to the processor and configured to receive selection data that distinguish the first subset of the plurality of installed software programs that is to be unavailable for use by an end user from the second subset of the plurality of installed software programs, wherein the second subset of the plurality of installed software programs are selected software programs that are to be retained and available as installed software programs for the end user; and
a grypher that executes in the processor and that is operatively coupled to the first storage medium, wherein the grypher is operable to automatically modify the first storage medium based on the selection data such that, in place of those software programs not relevant to the selected software programs, erased space becomes available for storage of other data, wherein the grypher is further operable to automatically modify a portion of the set of metadata into modified directory information metadata, wherein the modified directory information metadata corresponds to the second subset of the plurality of installed software programs to be retained, and wherein the grypher is further operable to write the modified directory information metadata into storage locations used by an operating system for access to the retained installed software programs such that those selected software programs specified by the selection data are available as installed software programs.
9. The apparatus of claim 8 , wherein the automatic modification of the first storage medium performed by the grypher includes a secure-quick-erase operation that overwrites the directory information that would otherwise allow reconstruction of the first subset of the plurality of installed software programs.
10. The apparatus of claim 8 , further comprising:
a master storage medium that has a plurality of installed software programs stored therein; and
a copy module operable to copy, to the first storage medium, data from the master storage medium that includes the plurality of installed software programs.
11. The apparatus of claim 8 , further comprising an end-user device, wherein the first storage medium is operatively coupled to the end-user device for a first time after the grypher writes the modified directory information metadata into storage locations used by the operating system for access to the retained installed software programs.
12. The apparatus of claim 8 , further comprising an end-user device, wherein the first storage medium is operatively coupled to the end-user device for a first time before the receiver receives the selection data.
13. The apparatus of claim 8 , wherein the set of metadata that describes the plurality of installed software programs is also stored on the first storage medium.
14. The apparatus of claim 8 , further comprising a charge program operable to charge a monetary amount to a predetermined account based on the received selection data.
15. An apparatus comprising:
a processor;
a first storage medium that has a plurality of installed software programs stored therein, wherein the plurality of installed software programs includes at least a first subset and a second subset;
a set of metadata that describes the plurality of installed software programs, wherein the set of metadata includes directory information that identifies locations on the first storage medium at which the plurality of installed software programs are stored;
means for receiving selection data that distinguish the first subset of the plurality of installed software programs that is to be unavailable for use by an end user from the second subset of the plurality of installed software programs, wherein the second subset of the plurality of installed software programs are selected software programs that are to be retained and available as installed software programs for the end user;
means for automatically modifying the first storage medium based on the selection data such that, in place of those software programs not relevant to the selected software programs, erased space becomes available for storage of other data, and for automatically modifying a portion of the set of metadata into modified directory information metadata, wherein the modified directory information metadata corresponds to the second subset of the plurality of installed software programs to be retained; and
means for writing the modified directory information metadata into storage locations used by an operating system for access to the retained installed software programs such that those selected software programs specified by the selection data are available as installed software programs.
16. The apparatus of claim 15 , wherein the means for automatically modifying the first storage medium includes means for performing a secure-quick-erase operation that includes means for overwriting the directory information that would otherwise allow reconstruction of the first subset of the plurality of installed software programs.
17. The apparatus of claim 15 , further comprising:
a master storage medium;
means for installing a plurality of software programs to the master storage medium; and
means for copying, to the first storage medium, data from the master storage medium that includes the plurality of installed software programs.
18. The apparatus of claim 15 , wherein the first storage medium is coupled to an end-user device for a first time after the means for writing the modified directory information metadata performs its function.
19. The apparatus of claim 15 , wherein the first storage medium is coupled to an end-user device for a first time before the means for receiving selection data performs its function.
20. The apparatus of claim 15 , further comprising:
means for charging a monetary amount to a predetermined account based on the received selection data.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/325,820 US8521781B2 (en) | 2005-12-22 | 2011-12-14 | Apparatus and method for selective file erasure using metadata modifications |
US13/610,517 US9176971B2 (en) | 2005-12-22 | 2012-09-11 | Method and apparatus for subtractive installation |
US13/826,392 US9286308B2 (en) | 2005-12-22 | 2013-03-14 | System and method for metadata modification |
US13/973,453 US8782089B2 (en) | 2005-12-22 | 2013-08-22 | Selective file erasure using metadata modifications and apparatus |
US14/331,017 US9171005B2 (en) | 2005-12-22 | 2014-07-14 | System and method for selective file erasure using metadata modifcations |
US15/064,386 US9753934B2 (en) | 2005-12-22 | 2016-03-08 | Method and system for metadata modification |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75363505P | 2005-12-22 | 2005-12-22 | |
US74720106P | 2006-05-14 | 2006-05-14 | |
US11/611,886 US7571176B2 (en) | 2005-12-22 | 2006-12-17 | Selective file erasure using metadata modifications |
US12/534,839 US7856451B2 (en) | 2005-12-22 | 2009-08-03 | Selective file erasure using metadata modifications |
US12/973,898 US8099437B2 (en) | 2005-12-22 | 2010-12-20 | Method and apparatus for selective file erasure using metadata modifications |
US13/325,820 US8521781B2 (en) | 2005-12-22 | 2011-12-14 | Apparatus and method for selective file erasure using metadata modifications |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/973,898 Division US8099437B2 (en) | 2005-12-22 | 2010-12-20 | Method and apparatus for selective file erasure using metadata modifications |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/973,453 Division US8782089B2 (en) | 2005-12-22 | 2013-08-22 | Selective file erasure using metadata modifications and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120096456A1 true US20120096456A1 (en) | 2012-04-19 |
US8521781B2 US8521781B2 (en) | 2013-08-27 |
Family
ID=44767204
Family Applications (14)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/428,369 Abandoned US20070150889A1 (en) | 2005-12-22 | 2006-06-30 | Method and apparatus for panoplex generation and gryphing |
US11/428,376 Expired - Fee Related US8321859B2 (en) | 2005-12-22 | 2006-06-30 | Method and apparatus for dispensing on a data-storage medium customized content comprising selected assets |
US11/428,374 Expired - Fee Related US8286159B2 (en) | 2005-12-22 | 2006-06-30 | Method and apparatus for gryphing a data storage medium |
US11/428,359 Expired - Fee Related US7712094B2 (en) | 2005-12-22 | 2006-06-30 | Method and apparatus for replicating a panoplex onto a storage medium from a master |
US11/428,346 Expired - Fee Related US7398524B2 (en) | 2005-12-22 | 2006-06-30 | Apparatus and method for subtractive installation |
US11/428,352 Abandoned US20070150887A1 (en) | 2005-12-22 | 2006-06-30 | Apparatus and method for selectively dispensing soft assets |
US11/611,886 Expired - Fee Related US7571176B2 (en) | 2005-12-22 | 2006-12-17 | Selective file erasure using metadata modifications |
US12/022,118 Expired - Fee Related US8266615B2 (en) | 2005-12-22 | 2008-01-29 | Method and apparatus for delivering percepta |
US12/534,839 Expired - Fee Related US7856451B2 (en) | 2005-12-22 | 2009-08-03 | Selective file erasure using metadata modifications |
US12/973,898 Expired - Fee Related US8099437B2 (en) | 2005-12-22 | 2010-12-20 | Method and apparatus for selective file erasure using metadata modifications |
US13/325,820 Expired - Fee Related US8521781B2 (en) | 2005-12-22 | 2011-12-14 | Apparatus and method for selective file erasure using metadata modifications |
US13/610,517 Expired - Fee Related US9176971B2 (en) | 2005-12-22 | 2012-09-11 | Method and apparatus for subtractive installation |
US13/973,453 Expired - Fee Related US8782089B2 (en) | 2005-12-22 | 2013-08-22 | Selective file erasure using metadata modifications and apparatus |
US14/331,017 Expired - Fee Related US9171005B2 (en) | 2005-12-22 | 2014-07-14 | System and method for selective file erasure using metadata modifcations |
Family Applications Before (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/428,369 Abandoned US20070150889A1 (en) | 2005-12-22 | 2006-06-30 | Method and apparatus for panoplex generation and gryphing |
US11/428,376 Expired - Fee Related US8321859B2 (en) | 2005-12-22 | 2006-06-30 | Method and apparatus for dispensing on a data-storage medium customized content comprising selected assets |
US11/428,374 Expired - Fee Related US8286159B2 (en) | 2005-12-22 | 2006-06-30 | Method and apparatus for gryphing a data storage medium |
US11/428,359 Expired - Fee Related US7712094B2 (en) | 2005-12-22 | 2006-06-30 | Method and apparatus for replicating a panoplex onto a storage medium from a master |
US11/428,346 Expired - Fee Related US7398524B2 (en) | 2005-12-22 | 2006-06-30 | Apparatus and method for subtractive installation |
US11/428,352 Abandoned US20070150887A1 (en) | 2005-12-22 | 2006-06-30 | Apparatus and method for selectively dispensing soft assets |
US11/611,886 Expired - Fee Related US7571176B2 (en) | 2005-12-22 | 2006-12-17 | Selective file erasure using metadata modifications |
US12/022,118 Expired - Fee Related US8266615B2 (en) | 2005-12-22 | 2008-01-29 | Method and apparatus for delivering percepta |
US12/534,839 Expired - Fee Related US7856451B2 (en) | 2005-12-22 | 2009-08-03 | Selective file erasure using metadata modifications |
US12/973,898 Expired - Fee Related US8099437B2 (en) | 2005-12-22 | 2010-12-20 | Method and apparatus for selective file erasure using metadata modifications |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/610,517 Expired - Fee Related US9176971B2 (en) | 2005-12-22 | 2012-09-11 | Method and apparatus for subtractive installation |
US13/973,453 Expired - Fee Related US8782089B2 (en) | 2005-12-22 | 2013-08-22 | Selective file erasure using metadata modifications and apparatus |
US14/331,017 Expired - Fee Related US9171005B2 (en) | 2005-12-22 | 2014-07-14 | System and method for selective file erasure using metadata modifcations |
Country Status (2)
Country | Link |
---|---|
US (14) | US20070150889A1 (en) |
TW (2) | TW201421364A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014159357A1 (en) * | 2013-03-14 | 2014-10-02 | Alan Joshua Shapiro | System and method for metadata modification |
US11288007B2 (en) * | 2019-05-16 | 2022-03-29 | Western Digital Technologies, Inc. | Virtual physical erase of a memory of a data storage device |
Families Citing this family (313)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290243B1 (en) | 2001-02-28 | 2007-10-30 | Apple Inc. | Method and apparatus for application building using build styles |
US7010779B2 (en) * | 2001-08-16 | 2006-03-07 | Knowledge Dynamics, Inc. | Parser, code generator, and data calculation and transformation engine for spreadsheet calculations |
US7210142B2 (en) * | 2001-08-31 | 2007-04-24 | Sony Corporation | Client-server bidirectional synchronization via browser plug in for an XM radio system |
US7603518B2 (en) | 2005-12-19 | 2009-10-13 | Commvault Systems, Inc. | System and method for improved media identification in a storage device |
US8346733B2 (en) | 2006-12-22 | 2013-01-01 | Commvault Systems, Inc. | Systems and methods of media management, such as management of media to and from a media storage library |
US7885896B2 (en) | 2002-07-09 | 2011-02-08 | Avaya Inc. | Method for authorizing a substitute software license server |
US8041642B2 (en) | 2002-07-10 | 2011-10-18 | Avaya Inc. | Predictive software license balancing |
US7698225B2 (en) * | 2002-08-30 | 2010-04-13 | Avaya Inc. | License modes in call processing |
US7681245B2 (en) | 2002-08-30 | 2010-03-16 | Avaya Inc. | Remote feature activator feature extraction |
US7707116B2 (en) * | 2002-08-30 | 2010-04-27 | Avaya Inc. | Flexible license file feature controls |
US7966520B2 (en) | 2002-08-30 | 2011-06-21 | Avaya Inc. | Software licensing for spare processors |
US6667700B1 (en) * | 2002-10-30 | 2003-12-23 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US8176186B2 (en) * | 2002-10-30 | 2012-05-08 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US7890997B2 (en) * | 2002-12-26 | 2011-02-15 | Avaya Inc. | Remote feature activation authentication file system |
US7260557B2 (en) * | 2003-02-27 | 2007-08-21 | Avaya Technology Corp. | Method and apparatus for license distribution |
US7174433B2 (en) | 2003-04-03 | 2007-02-06 | Commvault Systems, Inc. | System and method for dynamically sharing media in a computer network |
WO2004090789A2 (en) | 2003-04-03 | 2004-10-21 | Commvault Systems, Inc. | System and method for extended media retention |
US9715678B2 (en) | 2003-06-26 | 2017-07-25 | Microsoft Technology Licensing, Llc | Side-by-side shared calendars |
US7707255B2 (en) | 2003-07-01 | 2010-04-27 | Microsoft Corporation | Automatic grouping of electronic mail |
US8799808B2 (en) | 2003-07-01 | 2014-08-05 | Microsoft Corporation | Adaptive multi-line view user interface |
US20050125524A1 (en) * | 2003-12-08 | 2005-06-09 | Chandrasekhar Babu K. | Cache system in factory server for software dissemination |
US20060010167A1 (en) * | 2004-01-21 | 2006-01-12 | Grace James R | Apparatus for navigation of multimedia content in a vehicle multimedia system |
US7650513B2 (en) * | 2004-01-21 | 2010-01-19 | Gm Global Technology Operations, Inc. | System and method for vehicle-to-vehicle migration of multimedia content |
US7885926B2 (en) * | 2004-01-21 | 2011-02-08 | GM Global Technology Operations LLC | System and apparatus for wireless synchronization of multimedia content |
KR100601667B1 (en) * | 2004-03-02 | 2006-07-14 | 삼성전자주식회사 | Apparatus and Method for reporting operation state of digital right management |
US8578359B2 (en) * | 2004-03-15 | 2013-11-05 | Red Bend Ltd. | Method and apparatus for reliable in-place update |
US8146016B2 (en) | 2004-08-16 | 2012-03-27 | Microsoft Corporation | User interface for displaying a gallery of formatting options applicable to a selected object |
US7703036B2 (en) | 2004-08-16 | 2010-04-20 | Microsoft Corporation | User interface for displaying selectable software functionality controls that are relevant to a selected object |
US8255828B2 (en) | 2004-08-16 | 2012-08-28 | Microsoft Corporation | Command user interface for displaying selectable software functionality controls |
US7895531B2 (en) * | 2004-08-16 | 2011-02-22 | Microsoft Corporation | Floating command object |
US8117542B2 (en) | 2004-08-16 | 2012-02-14 | Microsoft Corporation | User interface for displaying selectable software functionality controls that are contextually relevant to a selected object |
US9015621B2 (en) | 2004-08-16 | 2015-04-21 | Microsoft Technology Licensing, Llc | Command user interface for displaying multiple sections of software functionality controls |
US9632665B2 (en) | 2004-09-08 | 2017-04-25 | Universal Electronics Inc. | System and method for flexible configuration of a controlling device |
US11687217B2 (en) | 2004-09-08 | 2023-06-27 | Universal Electronics Inc. | System and method for flexible configuration of a controlling device |
US7941786B2 (en) * | 2004-09-08 | 2011-05-10 | Universal Electronics Inc. | Configurable controlling device and associated configuration distribution system and method |
US7707405B1 (en) | 2004-09-21 | 2010-04-27 | Avaya Inc. | Secure installation activation |
US7747851B1 (en) | 2004-09-30 | 2010-06-29 | Avaya Inc. | Certificate distribution via license files |
US8229858B1 (en) | 2004-09-30 | 2012-07-24 | Avaya Inc. | Generation of enterprise-wide licenses in a customer environment |
US7747966B2 (en) | 2004-09-30 | 2010-06-29 | Microsoft Corporation | User interface for providing task management and calendar information |
US7472238B1 (en) | 2004-11-05 | 2008-12-30 | Commvault Systems, Inc. | Systems and methods for recovering electronic information from a storage medium |
KR20060054980A (en) * | 2004-11-17 | 2006-05-23 | 삼성전자주식회사 | Method of upgrading software of apparatus including a plurality of microprocessors, and apparatus therefor |
US8219807B1 (en) | 2004-12-17 | 2012-07-10 | Novell, Inc. | Fine grained access control for linux services |
US8271785B1 (en) | 2004-12-20 | 2012-09-18 | Novell, Inc. | Synthesized root privileges |
US8214398B1 (en) | 2005-02-16 | 2012-07-03 | Emc Corporation | Role based access controls |
US20080222604A1 (en) * | 2005-03-07 | 2008-09-11 | Network Engines, Inc. | Methods and apparatus for life-cycle management |
US8352935B2 (en) * | 2005-05-19 | 2013-01-08 | Novell, Inc. | System for creating a customized software distribution based on user requirements |
US8074214B2 (en) * | 2005-05-19 | 2011-12-06 | Oracle International Corporation | System for creating a customized software installation on demand |
US8239882B2 (en) | 2005-08-30 | 2012-08-07 | Microsoft Corporation | Markup based extensibility for user interfaces |
US8689137B2 (en) | 2005-09-07 | 2014-04-01 | Microsoft Corporation | Command user interface for displaying selectable functionality controls in a database application |
US7814023B1 (en) * | 2005-09-08 | 2010-10-12 | Avaya Inc. | Secure download manager |
US9542667B2 (en) | 2005-09-09 | 2017-01-10 | Microsoft Technology Licensing, Llc | Navigating messages within a thread |
US8627222B2 (en) | 2005-09-12 | 2014-01-07 | Microsoft Corporation | Expanded search and find user interface |
US20070061262A1 (en) * | 2005-09-13 | 2007-03-15 | Charles Morton | System and method for populating information handling system music devices with music |
US8347212B2 (en) * | 2005-11-10 | 2013-01-01 | Lifereel, Inc. | Presentation production system with universal format |
US7379325B1 (en) * | 2005-12-16 | 2008-05-27 | Maxim Intergrated Products, Inc. | Non-imprinting memory with high speed erase |
CN101390050B (en) | 2005-12-22 | 2018-04-24 | 艾伦·J·薛比洛 | Reach the apparatus and method of selectivity distribution software resource by subtractive installation |
US7577686B1 (en) * | 2006-02-10 | 2009-08-18 | Ringcube Technologies, Inc. | Dynamic table configuration in a virtual machine |
US8676973B2 (en) * | 2006-03-07 | 2014-03-18 | Novell Intellectual Property Holdings, Inc. | Light-weight multi-user browser |
US7797670B2 (en) * | 2006-04-14 | 2010-09-14 | Apple Inc. | Mirrored file system |
US7721284B2 (en) * | 2006-04-27 | 2010-05-18 | Microsoft Corporation | Deployment of multiple embedded operating system components |
US20090048860A1 (en) * | 2006-05-08 | 2009-02-19 | Corbis Corporation | Providing a rating for digital media based on reviews and customer behavior |
US9727989B2 (en) | 2006-06-01 | 2017-08-08 | Microsoft Technology Licensing, Llc | Modifying and formatting a chart using pictorially provided chart elements |
US8605090B2 (en) | 2006-06-01 | 2013-12-10 | Microsoft Corporation | Modifying and formatting a chart using pictorially provided chart elements |
US8707297B2 (en) * | 2006-07-26 | 2014-04-22 | Dell Products L.P. | Apparatus and methods for updating firmware |
US7870128B2 (en) * | 2006-07-28 | 2011-01-11 | Diskeeper Corporation | Assigning data for storage based on speed with which data may be retrieved |
US9052826B2 (en) * | 2006-07-28 | 2015-06-09 | Condusiv Technologies Corporation | Selecting storage locations for storing data based on storage location attributes and data usage statistics |
US20080033882A1 (en) * | 2006-08-01 | 2008-02-07 | Computer Associates Think, Inc. | System and method for on-site electronic software distribution |
US7730480B2 (en) * | 2006-08-22 | 2010-06-01 | Novell, Inc. | System and method for creating a pattern installation by cloning software installed another computer |
US8191060B2 (en) * | 2006-08-29 | 2012-05-29 | Adobe Systems Incorporated | Software installation using template executables |
US20130047150A1 (en) * | 2006-08-29 | 2013-02-21 | Adobe Systems Incorporated | Software installation and process management support |
US8136100B1 (en) | 2006-08-29 | 2012-03-13 | Adobe Systems Incorporated | Software installation and icon management support |
US8171470B2 (en) * | 2006-08-29 | 2012-05-01 | Adobe Systems Incorporated | Software installation and support |
US20080059911A1 (en) * | 2006-09-01 | 2008-03-06 | Taneli Kulo | Advanced player |
US8224930B2 (en) * | 2006-09-19 | 2012-07-17 | The Invention Science Fund I, Llc | Signaling partial service configuration changes in appnets |
US7539783B2 (en) | 2006-09-22 | 2009-05-26 | Commvault Systems, Inc. | Systems and methods of media management, such as management of media to and from a media storage library, including removable media |
US20080127161A1 (en) * | 2006-10-16 | 2008-05-29 | Microsoft Corporation | Environment state changes to alter functionality |
US7664982B2 (en) * | 2006-10-26 | 2010-02-16 | Hewlett-Packard Development Company, L.P. | Method and system for storing recovery related information on a computer memory |
US8190918B2 (en) * | 2006-11-13 | 2012-05-29 | Disney Enterprises, Inc. | Interoperable digital rights management |
US20080113525A1 (en) * | 2006-11-15 | 2008-05-15 | Sandisk Il Ltd. | Compact solid state drive and processor assembly |
US7680554B2 (en) * | 2006-12-19 | 2010-03-16 | International Business Machines Corporation | Method for associating objects in a manufacturing process |
US7831566B2 (en) | 2006-12-22 | 2010-11-09 | Commvault Systems, Inc. | Systems and methods of hierarchical storage management, such as global management of storage operations |
US8560760B2 (en) * | 2007-01-31 | 2013-10-15 | Microsoft Corporation | Extending flash drive lifespan |
US8688584B2 (en) * | 2007-03-01 | 2014-04-01 | Wms Gaming Inc. | Electronic gaming machine security for software stored in nonvolatile media |
US7657572B2 (en) * | 2007-03-06 | 2010-02-02 | Microsoft Corporation | Selectively utilizing a plurality of disparate solid state storage locations |
WO2008121873A1 (en) * | 2007-03-29 | 2008-10-09 | Vmware, Inc. | Synchronization and customization of a clone computer |
US8484637B2 (en) * | 2007-04-03 | 2013-07-09 | Microsoft Corporation | Parallel installation |
JP4277916B2 (en) * | 2007-04-06 | 2009-06-10 | キヤノン株式会社 | Document management system and control method thereof |
US8359566B2 (en) * | 2007-04-13 | 2013-01-22 | International Business Machines Corporation | Software factory |
US8010502B2 (en) * | 2007-04-13 | 2011-08-30 | Harris Corporation | Methods and systems for data recovery |
US20080270913A1 (en) * | 2007-04-26 | 2008-10-30 | Howard Singer | Methods, Media, and Devices for Providing a Package of Assets |
US20080279534A1 (en) * | 2007-04-26 | 2008-11-13 | Buttars David B | Storage device for storing media and a playback device for playing back media |
US20080299906A1 (en) * | 2007-06-04 | 2008-12-04 | Topway Electrical Appliance Company | Emulating playing apparatus of simulating games |
WO2009002847A1 (en) * | 2007-06-22 | 2008-12-31 | Corbis Corporation | Distributed media reviewing for conformance to criteria |
US8762880B2 (en) | 2007-06-29 | 2014-06-24 | Microsoft Corporation | Exposing non-authoring features through document status information in an out-space user interface |
US8484578B2 (en) | 2007-06-29 | 2013-07-09 | Microsoft Corporation | Communication between a document editor in-space user interface and a document editor out-space user interface |
US8201103B2 (en) | 2007-06-29 | 2012-06-12 | Microsoft Corporation | Accessing an out-space user interface for a document editor program |
US8015546B2 (en) * | 2007-08-03 | 2011-09-06 | International Business Machines Corporation | Rapidly assembling and deploying selected software solutions |
US7970919B1 (en) | 2007-08-13 | 2011-06-28 | Duran Paul A | Apparatus and system for object-based storage solid-state drive and method for configuring same |
US9824006B2 (en) | 2007-08-13 | 2017-11-21 | Digital Kiva, Inc. | Apparatus and system for object-based storage solid-state device |
US11237956B2 (en) | 2007-08-13 | 2022-02-01 | Digital Kiva, Inc. | Apparatus and system for object-based storage solid-state device |
US8706976B2 (en) | 2007-08-30 | 2014-04-22 | Commvault Systems, Inc. | Parallel access virtual tape library and drives |
WO2009036230A1 (en) * | 2007-09-13 | 2009-03-19 | Motorola, Inc. | Method and apparatus for reading records in a wireless communication device |
US8490078B2 (en) * | 2007-09-25 | 2013-07-16 | Barclays Capital, Inc. | System and method for application management |
JP2009087124A (en) * | 2007-10-01 | 2009-04-23 | Buffalo Inc | Storage device and storage device access control method |
KR20090036422A (en) * | 2007-10-09 | 2009-04-14 | 엘지전자 주식회사 | Washing machine |
US7945587B2 (en) * | 2007-10-10 | 2011-05-17 | Microsoft Corporation | Random allocation of media storage units |
JP2011503707A (en) * | 2007-11-08 | 2011-01-27 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Method and electronic circuit device for managing content |
US9009440B2 (en) * | 2007-11-12 | 2015-04-14 | Lsi Corporation | Adjustment of data storage capacity provided by a storage system |
US8997054B2 (en) * | 2007-11-30 | 2015-03-31 | Red Hat, Inc. | Software application certification service |
US8352939B1 (en) * | 2007-12-03 | 2013-01-08 | Mcafee, Inc. | System, method and computer program product for performing a security or maintenance operation in association with virtual disk data |
US20090150865A1 (en) * | 2007-12-07 | 2009-06-11 | Roche Diagnostics Operations, Inc. | Method and system for activating features and functions of a consolidated software application |
US8092251B2 (en) * | 2007-12-29 | 2012-01-10 | Apple Inc. | Active electronic media device packaging |
US8671271B2 (en) * | 2007-12-31 | 2014-03-11 | Safend Ltd. | System, apparatus, and method for BIOS level contextual configuration of resources |
US8566431B2 (en) * | 2008-01-16 | 2013-10-22 | Razer (Asia-Pacific) Pte. Ltd. | Identification device and method for device identification |
US8839225B2 (en) | 2008-01-23 | 2014-09-16 | International Business Machines Corporation | Generating and applying patches to a computer program code concurrently with its execution |
EP2096509A1 (en) * | 2008-02-26 | 2009-09-02 | Fujitsu Microelectronics Europe GmbH | Remote handler for off-chip microcontroller peripherals |
US8219534B2 (en) * | 2008-02-27 | 2012-07-10 | Dell Products L.P. | Multiple file compaction for network attached storage |
US9588781B2 (en) | 2008-03-31 | 2017-03-07 | Microsoft Technology Licensing, Llc | Associating command surfaces with multiple active components |
FR2929732B1 (en) * | 2008-04-02 | 2010-12-17 | Alcatel Lucent | DEVICE AND METHOD FOR MANAGING ACCESSIBILITY TO REAL OR VIRTUAL OBJECTS IN DIFFERENT PLACES. |
US20090265703A1 (en) * | 2008-04-22 | 2009-10-22 | Electronic Data Systems Corporation | System and method for application portability |
US20090267909A1 (en) * | 2008-04-27 | 2009-10-29 | Htc Corporation | Electronic device and user interface display method thereof |
US20090276722A1 (en) * | 2008-04-30 | 2009-11-05 | Jonathan Segel | Method and apparatus for dual mode content searching, selection, delivery, and playout |
US20090282398A1 (en) * | 2008-05-08 | 2009-11-12 | Microsoft Corporation | On-the-fly addition of products to an existing installation |
US8595044B2 (en) | 2008-05-29 | 2013-11-26 | International Business Machines Corporation | Determining competence levels of teams working within a software |
US8667469B2 (en) | 2008-05-29 | 2014-03-04 | International Business Machines Corporation | Staged automated validation of work packets inputs and deliverables in a software factory |
US9665850B2 (en) * | 2008-06-20 | 2017-05-30 | Microsoft Technology Licensing, Llc | Synchronized conversation-centric message list and message reading pane |
US8288976B2 (en) * | 2008-06-23 | 2012-10-16 | Sntech, Inc. | Optimization of motor operation using a test cycle |
CN102105863B (en) * | 2008-06-24 | 2015-02-11 | 哈伊姆·布卡伊 | Methods for mobile phone applications |
US8655341B2 (en) * | 2008-06-24 | 2014-02-18 | Haim Boukai | Methods for mobile phone applications |
US8402096B2 (en) | 2008-06-24 | 2013-03-19 | Microsoft Corporation | Automatic conversation techniques |
US8291403B2 (en) * | 2008-06-30 | 2012-10-16 | Symantec Operating Corporation | Install-unit upgrade using dynamic configuration data manipulation and merging |
US8527329B2 (en) | 2008-07-15 | 2013-09-03 | International Business Machines Corporation | Configuring design centers, assembly lines and job shops of a global delivery network into “on demand” factories |
US8452629B2 (en) | 2008-07-15 | 2013-05-28 | International Business Machines Corporation | Work packet enabled active project schedule maintenance |
US8140367B2 (en) | 2008-07-22 | 2012-03-20 | International Business Machines Corporation | Open marketplace for distributed service arbitrage with integrated risk management |
US8375370B2 (en) | 2008-07-23 | 2013-02-12 | International Business Machines Corporation | Application/service event root cause traceability causal and impact analyzer |
US8418126B2 (en) | 2008-07-23 | 2013-04-09 | International Business Machines Corporation | Software factory semantic reconciliation of data models for work packets |
US8336026B2 (en) | 2008-07-31 | 2012-12-18 | International Business Machines Corporation | Supporting a work packet request with a specifically tailored IDE |
US8271949B2 (en) | 2008-07-31 | 2012-09-18 | International Business Machines Corporation | Self-healing factory processes in a software factory |
US8448129B2 (en) | 2008-07-31 | 2013-05-21 | International Business Machines Corporation | Work packet delegation in a software factory |
WO2010016833A1 (en) * | 2008-08-05 | 2010-02-11 | Hewlett-Packard Development Company, L.P. | Method and device for customizing software |
US9317274B2 (en) * | 2008-08-06 | 2016-04-19 | Lenovo (Singapore) Pte. Ltd. | Apparatus, system and method for integrated customization of multiple disk images independent of operating system type, version or state |
US20100070466A1 (en) | 2008-09-15 | 2010-03-18 | Anand Prahlad | Data transfer techniques within data storage devices, such as network attached storage performing data migration |
KR101339869B1 (en) * | 2008-09-22 | 2013-12-10 | 삼성전자주식회사 | Image forming apparatus and method of overwriting for storage unit in image forming apparatus |
US9911457B2 (en) * | 2008-09-24 | 2018-03-06 | Disney Enterprises, Inc. | System and method for providing a secure content with revocable access |
US20100083244A1 (en) * | 2008-09-26 | 2010-04-01 | Nokia Corporation | Methods, apparatuses, and computer program products for repurposing computing devices |
US9653004B2 (en) * | 2008-10-16 | 2017-05-16 | Cypress Semiconductor Corporation | Systems and methods for downloading code and data into a secure non-volatile memory |
US20100100403A1 (en) * | 2008-10-20 | 2010-04-22 | Metafore | Method and apparatus for tracking and analyzing environmental impact of producing paper |
GB0820427D0 (en) * | 2008-11-07 | 2008-12-17 | Inq Entpr Ltd | Mobile communication device and method |
US8332842B2 (en) * | 2008-11-14 | 2012-12-11 | International Business Machines Corporation | Application restore points |
US20100131683A1 (en) * | 2008-11-26 | 2010-05-27 | Moore Clay S | System for storing, accessing and automatically updating documents |
JP5344588B2 (en) * | 2009-03-27 | 2013-11-20 | キヤノン株式会社 | Information processing apparatus, information processing apparatus control method, and control program |
US8402452B2 (en) * | 2009-04-02 | 2013-03-19 | International Business Machines Corporation | Automatically recommending an upgrade approach for a customizable software product |
US9665729B2 (en) * | 2009-04-13 | 2017-05-30 | Microsoft Technology Licensing, Llc | Revocation of application on mobile device |
US9046983B2 (en) | 2009-05-12 | 2015-06-02 | Microsoft Technology Licensing, Llc | Hierarchically-organized control galleries |
US8234583B2 (en) * | 2009-06-16 | 2012-07-31 | Microsoft Corporation | Media asset pivot navigation |
CN101645008B (en) * | 2009-08-03 | 2012-04-11 | 石家庄科林电气股份有限公司 | Power meter adopting directory-based management and window configuration display and method |
WO2011018677A1 (en) * | 2009-08-14 | 2011-02-17 | Sandisk Il Ltd. | Dual interface card with backward and forward compatibility |
US8997077B1 (en) * | 2009-09-11 | 2015-03-31 | Symantec Corporation | Systems and methods for remediating a defective uninstaller during an upgrade procedure of a product |
US8464249B1 (en) * | 2009-09-17 | 2013-06-11 | Adobe Systems Incorporated | Software installation package with digital signatures |
US20110083128A1 (en) * | 2009-10-02 | 2011-04-07 | International Truck Intellectual Property Company, Llc | Method for selecting software and installing same via a telematic module in a motor vehicle |
US8495626B1 (en) * | 2009-10-08 | 2013-07-23 | American Megatrends, Inc. | Automated operating system installation |
US8667605B2 (en) * | 2009-11-19 | 2014-03-04 | Adobe Systems Incorporated | Method and system for determining the eligibility for deploying protected content |
JP2011113401A (en) * | 2009-11-27 | 2011-06-09 | Sony Corp | Apparatus and method for processing information, computer program, and information processing server |
US20110145786A1 (en) * | 2009-12-15 | 2011-06-16 | Microsoft Corporation | Remote commands in a shell environment |
US8672427B2 (en) * | 2010-01-25 | 2014-03-18 | Pepsico, Inc. | Video display for product merchandisers |
US9563434B2 (en) * | 2010-02-02 | 2017-02-07 | International Business Machines Corporation | Mining dependencies from disk images |
EP2360583A3 (en) * | 2010-02-12 | 2011-09-28 | Samsung Electronics Co., Ltd. | Method and system for installing applications |
US20110202646A1 (en) * | 2010-02-14 | 2011-08-18 | Bhatia Randeep S | Policy controlled traffic offload via content smart-loading |
CN102782665B (en) * | 2010-03-09 | 2016-01-13 | 桑迪士克以色列有限公司 | In data storage device place combination user content and supplemental content |
US8869138B2 (en) * | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
US8296508B1 (en) * | 2010-04-27 | 2012-10-23 | Micron Technology, Inc. | Secure memory device erase |
US8505003B2 (en) * | 2010-04-28 | 2013-08-06 | Novell, Inc. | System and method for upgrading kernels in cloud computing environments |
US20110282476A1 (en) * | 2010-05-07 | 2011-11-17 | Skinit, Inc. | Systems and methods of on demand manufacturing of customized products |
US8495296B2 (en) | 2010-05-18 | 2013-07-23 | International Business Machines Corporation | System and method for optimizing data remanence over hubrid disk clusters using various storage technologies |
US9367302B2 (en) * | 2010-05-27 | 2016-06-14 | Red Hat, Inc. | Generating client qualification to execute package update manager |
US8739150B2 (en) * | 2010-05-28 | 2014-05-27 | Smartshift Gmbh | Systems and methods for dynamically replacing code objects via conditional pattern templates |
KR101145385B1 (en) * | 2010-05-31 | 2012-05-15 | (주)이앤비소프트 | Data upload method using shortcut |
TWI455135B (en) * | 2010-06-10 | 2014-10-01 | Apacer Technology Inc | Flash-based storage device and data writing method for the same |
US8930666B1 (en) | 2010-06-14 | 2015-01-06 | American Megatrends, Inc. | Virtual disk carousel |
US8935666B2 (en) * | 2010-06-30 | 2015-01-13 | Gordon G. MILLER, III | Systems and methods for dynamic mobile applications |
US8407073B2 (en) | 2010-08-25 | 2013-03-26 | International Business Machines Corporation | Scheduling resources from a multi-skill multi-level human resource pool |
US9152523B2 (en) | 2010-09-15 | 2015-10-06 | Qualcomm Incorporated | Batching and forking resource requests in a portable computing device |
US8806502B2 (en) | 2010-09-15 | 2014-08-12 | Qualcomm Incorporated | Batching resource requests in a portable computing device |
US9098521B2 (en) * | 2010-09-15 | 2015-08-04 | Qualcomm Incorporated | System and method for managing resources and threshsold events of a multicore portable computing device |
EP2431872A1 (en) * | 2010-09-15 | 2012-03-21 | ABB Technology AG | A low or medium voltage electric power distribution network |
US9244779B2 (en) | 2010-09-30 | 2016-01-26 | Commvault Systems, Inc. | Data recovery operations, such as recovery from modified network data management protocol data |
CN102012826A (en) * | 2010-11-19 | 2011-04-13 | 奇智软件(北京)有限公司 | Method and system for intelligently installing/upgrading software |
US9378007B2 (en) | 2010-12-01 | 2016-06-28 | Apple Inc. | Pre-heated software installation |
KR101760778B1 (en) * | 2011-01-17 | 2017-07-26 | 에스프린팅솔루션 주식회사 | Computer system and method for updating program therein |
US9967605B2 (en) * | 2011-03-03 | 2018-05-08 | Sony Corporation | Method and apparatus for providing customized menus |
US8667244B2 (en) * | 2011-03-21 | 2014-03-04 | Hewlett-Packard Development Company, L.P. | Methods, systems, and apparatus to prevent memory imprinting |
CA2773726C (en) * | 2011-04-07 | 2017-06-27 | Research In Motion Limited | Device for distribution of content |
US9298910B2 (en) | 2011-06-08 | 2016-03-29 | Mcafee, Inc. | System and method for virtual partition monitoring |
US9383985B2 (en) * | 2011-06-10 | 2016-07-05 | Unisys Corporation | Automated modification of pre-generated MSI packaged applications |
JP5682467B2 (en) * | 2011-06-14 | 2015-03-11 | 富士通株式会社 | Setting information management program, setting information management method, and information processing apparatus |
US8660878B2 (en) | 2011-06-15 | 2014-02-25 | International Business Machines Corporation | Model-driven assignment of work to a software factory |
CA2744165A1 (en) * | 2011-06-23 | 2012-12-23 | Ibm Canada Limited - Ibm Canada Limitee | Centrally controlled proximity based software installation |
US20130024573A1 (en) * | 2011-07-18 | 2013-01-24 | International Business Machines Corporation | Scalable and efficient management of virtual appliance in a cloud |
US8874935B2 (en) | 2011-08-30 | 2014-10-28 | Microsoft Corporation | Sector map-based rapid data encryption policy compliance |
US8677346B1 (en) * | 2011-09-27 | 2014-03-18 | Symantec Corporation | Providing installer package information to a user |
US8762704B2 (en) | 2011-09-29 | 2014-06-24 | Apple Inc. | Customized content for electronic devices |
US8732690B1 (en) * | 2011-10-27 | 2014-05-20 | Crimson Corporation | Computing device configured for installing an application |
US8756594B2 (en) * | 2011-10-28 | 2014-06-17 | Microsoft Corporation | Reactive anti-tampering system for protected services in an enterprise computing system |
US20130117739A1 (en) * | 2011-11-09 | 2013-05-09 | Ford Global Technologies, Llc | Electronic Tool for Automatically Programming a Plurality of Control Modules in a Vehicle On-Board Computer System |
US8719261B2 (en) * | 2011-12-02 | 2014-05-06 | Verizon Patent And Licensing Inc. | Dynamic catalog ranking |
CN102521031B (en) * | 2011-12-13 | 2014-11-05 | 华为终端有限公司 | Management method of preset application programs of mobile terminal and mobile terminal |
KR20130071850A (en) * | 2011-12-21 | 2013-07-01 | 삼성전자주식회사 | File system and method for storing the file |
US9081747B1 (en) | 2012-03-06 | 2015-07-14 | Big Bang Llc | Computer program deployment to one or more target devices |
US8881136B2 (en) * | 2012-03-13 | 2014-11-04 | International Business Machines Corporation | Identifying optimal upgrade scenarios in a networked computing environment |
AU2013202553B2 (en) | 2012-03-30 | 2015-10-01 | Commvault Systems, Inc. | Information management of mobile device data |
WO2013152129A1 (en) * | 2012-04-03 | 2013-10-10 | Fourth Wall Studios, Inc. | Transmedia story management systems and methods |
KR20150027065A (en) * | 2012-05-30 | 2015-03-11 | 톰슨 라이센싱 | Method and apparatus for mass updates of digital media |
US9892798B2 (en) | 2012-09-11 | 2018-02-13 | Seagate Technology Llc | Data protection for unexpected power loss |
US9001578B2 (en) | 2012-09-11 | 2015-04-07 | Seagate Technology Llc | Soft erasure of memory cells |
GB2520651A (en) * | 2012-09-14 | 2015-05-27 | Tangentix Ltd | Method and apparatus for delivery of interactive multimedia content over a network |
US9794134B2 (en) * | 2012-11-16 | 2017-10-17 | Apple Inc. | System and method for negotiating control of a shared audio or visual resource |
US9928472B2 (en) | 2012-12-12 | 2018-03-27 | International Business Machines Corporation | System and method for determining optimal asset configurations while minimizing disruption to existing business operations in a service delivery environment |
US9069799B2 (en) | 2012-12-27 | 2015-06-30 | Commvault Systems, Inc. | Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system |
US9069604B2 (en) * | 2013-03-04 | 2015-06-30 | Yagi Corp. | Activity interruption management |
US9245128B2 (en) | 2013-03-06 | 2016-01-26 | Microsoft Technology Licensing, Llc | Limiting enterprise applications and settings on devices |
US9361083B2 (en) * | 2013-03-06 | 2016-06-07 | Microsoft Technology Licensing, Llc | Enterprise management for devices |
US9342298B2 (en) | 2013-03-14 | 2016-05-17 | Microsoft Technology Licensing, Llc | Application compatibility checking in a distributed computing environment |
US10656800B2 (en) * | 2013-03-29 | 2020-05-19 | Microsoft Technology Licensing, Llc | Visual configuration and activation |
US10613914B2 (en) | 2013-04-01 | 2020-04-07 | Oracle International Corporation | Orchestration service for a distributed computing system |
US20140344570A1 (en) | 2013-05-20 | 2014-11-20 | Microsoft Corporation | Data Protection For Organizations On Computing Devices |
TW201445329A (en) * | 2013-05-28 | 2014-12-01 | Wistron Corp | Operating system deployment method, server and electronic system |
US9710248B2 (en) | 2013-05-29 | 2017-07-18 | Microsoft Technology Licensing, Llc | Application install and layout syncing |
US10452222B2 (en) * | 2013-05-29 | 2019-10-22 | Microsoft Technology Licensing, Llc | Coordination of system readiness tasks |
US8918775B1 (en) * | 2013-07-12 | 2014-12-23 | Ca, Inc. | Dynamic release control of software application version changes |
US9740875B2 (en) | 2013-09-30 | 2017-08-22 | Elwha Llc | Mobile device sharing facilitation methods and systems featuring exclusive data presentation |
US9838536B2 (en) | 2013-09-30 | 2017-12-05 | Elwha, Llc | Mobile device sharing facilitation methods and systems |
US9774728B2 (en) | 2013-09-30 | 2017-09-26 | Elwha Llc | Mobile device sharing facilitation methods and systems in a context of plural communication records |
US9826439B2 (en) | 2013-09-30 | 2017-11-21 | Elwha Llc | Mobile device sharing facilitation methods and systems operable in network equipment |
US9813891B2 (en) | 2013-09-30 | 2017-11-07 | Elwha Llc | Mobile device sharing facilitation methods and systems featuring a subset-specific source identification |
US9805208B2 (en) | 2013-09-30 | 2017-10-31 | Elwha Llc | Mobile device sharing facilitation methods and systems with recipient-dependent inclusion of a data selection |
US9454353B2 (en) | 2013-10-01 | 2016-09-27 | International Business Machines Corporation | Initiating use of software as part of a messaging window |
US9158662B1 (en) * | 2013-10-17 | 2015-10-13 | American Megatrends, Inc. | Automated operating system installation on multiple drives |
EP2887212A1 (en) * | 2013-12-17 | 2015-06-24 | StepNexus Ltd | System, method and personalizable portable device in which application code libraries are distributed in a compressed form |
US9659024B2 (en) * | 2014-01-06 | 2017-05-23 | Tuxera Corporation | Systems and methods for fail-safe operations of storage devices |
US10572451B2 (en) * | 2014-01-31 | 2020-02-25 | Hewlett Packard Enterprise Development Lp | File system storage |
US20150254261A1 (en) * | 2014-03-08 | 2015-09-10 | Guerby Rene | News Application |
US10615967B2 (en) | 2014-03-20 | 2020-04-07 | Microsoft Technology Licensing, Llc | Rapid data protection for storage devices |
KR20150129972A (en) * | 2014-05-12 | 2015-11-23 | 에스케이플래닛 주식회사 | Method for updating of firmware in beacon apparatus, beacon apparatus and system using the same |
USD736213S1 (en) * | 2014-07-01 | 2015-08-11 | Samsung Electronics Co., Ltd. | Memory card |
USD736212S1 (en) * | 2014-07-01 | 2015-08-11 | Samsung Electronics Co., Ltd. | Memory card |
US9652415B2 (en) | 2014-07-09 | 2017-05-16 | Sandisk Technologies Llc | Atomic non-volatile memory data transfer |
US9904621B2 (en) | 2014-07-15 | 2018-02-27 | Sandisk Technologies Llc | Methods and systems for flash buffer sizing |
US9645744B2 (en) | 2014-07-22 | 2017-05-09 | Sandisk Technologies Llc | Suspending and resuming non-volatile memory operations |
USD739856S1 (en) * | 2014-07-30 | 2015-09-29 | Samsung Electronics Co., Ltd. | Memory card |
USD736216S1 (en) * | 2014-07-30 | 2015-08-11 | Samsung Electronics Co., Ltd. | Memory card |
TWI557576B (en) * | 2014-08-15 | 2016-11-11 | Chunghwa Telecom Co Ltd | Method and System for Predicting Calculation of Timing Data |
US9825945B2 (en) | 2014-09-09 | 2017-11-21 | Microsoft Technology Licensing, Llc | Preserving data protection with policy |
US9853812B2 (en) | 2014-09-17 | 2017-12-26 | Microsoft Technology Licensing, Llc | Secure key management for roaming protected content |
TW201612529A (en) * | 2014-09-29 | 2016-04-01 | Ying Zhang | Automatic mouse test equipment and loop transfer mechanism and method |
US9952978B2 (en) | 2014-10-27 | 2018-04-24 | Sandisk Technologies, Llc | Method for improving mixed random performance in low queue depth workloads |
US9753649B2 (en) | 2014-10-27 | 2017-09-05 | Sandisk Technologies Llc | Tracking intermix of writes and un-map commands across power cycles |
US9900295B2 (en) | 2014-11-05 | 2018-02-20 | Microsoft Technology Licensing, Llc | Roaming content wipe actions across devices |
US9817752B2 (en) | 2014-11-21 | 2017-11-14 | Sandisk Technologies Llc | Data integrity enhancement to protect against returning old versions of data |
US9824007B2 (en) | 2014-11-21 | 2017-11-21 | Sandisk Technologies Llc | Data integrity enhancement to protect against returning old versions of data |
US9544643B2 (en) * | 2014-12-18 | 2017-01-10 | Sling Media Pvt Ltd | Management of a sideloaded content |
US9928144B2 (en) | 2015-03-30 | 2018-03-27 | Commvault Systems, Inc. | Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage |
US9645765B2 (en) | 2015-04-09 | 2017-05-09 | Sandisk Technologies Llc | Reading and writing data at multiple, individual non-volatile memory portions in response to data transfer sent to single relative memory address |
US10372529B2 (en) * | 2015-04-20 | 2019-08-06 | Sandisk Technologies Llc | Iterative soft information correction and decoding |
US9778878B2 (en) | 2015-04-22 | 2017-10-03 | Sandisk Technologies Llc | Method and system for limiting write command execution |
US20160353145A1 (en) * | 2015-06-01 | 2016-12-01 | Magine Holding AB | System and method for incentivizing personalized packages in a digital medium |
US9853820B2 (en) | 2015-06-30 | 2017-12-26 | Microsoft Technology Licensing, Llc | Intelligent deletion of revoked data |
US9870149B2 (en) | 2015-07-08 | 2018-01-16 | Sandisk Technologies Llc | Scheduling operations in non-volatile memory devices using preference values |
CN105183545A (en) * | 2015-07-23 | 2015-12-23 | 柳州易旺科技有限公司 | Big data information compression method |
US9392471B1 (en) * | 2015-07-24 | 2016-07-12 | Viavi Solutions Uk Limited | Self-optimizing network (SON) system for mobile networks |
US9715939B2 (en) | 2015-08-10 | 2017-07-25 | Sandisk Technologies Llc | Low read data storage management |
USD783622S1 (en) * | 2015-08-25 | 2017-04-11 | Samsung Electronics Co., Ltd. | Memory card |
USD783621S1 (en) * | 2015-08-25 | 2017-04-11 | Samsung Electronics Co., Ltd. | Memory card |
US10101913B2 (en) | 2015-09-02 | 2018-10-16 | Commvault Systems, Inc. | Migrating data to disk without interrupting running backup operations |
US9900325B2 (en) | 2015-10-09 | 2018-02-20 | Microsoft Technology Licensing, Llc | Passive encryption of organization data |
US10228990B2 (en) | 2015-11-12 | 2019-03-12 | Sandisk Technologies Llc | Variable-term error metrics adjustment |
US10126970B2 (en) | 2015-12-11 | 2018-11-13 | Sandisk Technologies Llc | Paired metablocks in non-volatile storage device |
US10032032B2 (en) * | 2015-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Software container registry inspection |
US10261782B2 (en) | 2015-12-18 | 2019-04-16 | Amazon Technologies, Inc. | Software container registry service |
US10002247B2 (en) | 2015-12-18 | 2018-06-19 | Amazon Technologies, Inc. | Software container registry container image deployment |
US9837146B2 (en) | 2016-01-08 | 2017-12-05 | Sandisk Technologies Llc | Memory system temperature management |
US11593342B2 (en) | 2016-02-01 | 2023-02-28 | Smartshift Technologies, Inc. | Systems and methods for database orientation transformation |
US10732856B2 (en) | 2016-03-03 | 2020-08-04 | Sandisk Technologies Llc | Erase health metric to rank memory portions |
US10585655B2 (en) | 2016-05-25 | 2020-03-10 | Smartshift Technologies, Inc. | Systems and methods for automated retrofitting of customized code objects |
US11412053B2 (en) | 2016-07-22 | 2022-08-09 | Cisco Technology, Inc. | Scaling service discovery in a micro-service environment |
US10481830B2 (en) | 2016-07-25 | 2019-11-19 | Sandisk Technologies Llc | Selectively throttling host reads for read disturbs in non-volatile memory system |
US10089103B2 (en) | 2016-08-03 | 2018-10-02 | Smartshift Technologies, Inc. | Systems and methods for transformation of reporting schema |
US10261770B2 (en) | 2016-11-17 | 2019-04-16 | Bank Of America Corporation | Install file size optimization and installation verification system |
WO2018136041A1 (en) * | 2017-01-18 | 2018-07-26 | Hewlett-Packard Development Company, L.P. | Software package installations with proximity tags |
US10564959B2 (en) | 2017-03-14 | 2020-02-18 | Google Llc | Shared software libraries for computing devices |
US10129269B1 (en) * | 2017-05-15 | 2018-11-13 | Forcepoint, LLC | Managing blockchain access to user profile information |
US9882918B1 (en) | 2017-05-15 | 2018-01-30 | Forcepoint, LLC | User behavior profile in a blockchain |
CN109643271B (en) * | 2017-06-13 | 2022-02-18 | 微软技术许可有限责任公司 | Identifying unstable testing |
US10318729B2 (en) | 2017-07-26 | 2019-06-11 | Forcepoint, LLC | Privacy protection during insider threat monitoring |
JP7013176B2 (en) * | 2017-09-06 | 2022-01-31 | キヤノン株式会社 | Programs, information processing devices, and control methods |
CN108108394B (en) * | 2017-11-28 | 2020-10-09 | 厦门市美亚柏科信息股份有限公司 | Compressed file recovery method and storage medium of APFS file system |
US10742735B2 (en) | 2017-12-12 | 2020-08-11 | Commvault Systems, Inc. | Enhanced network attached storage (NAS) services interfacing to cloud storage |
US10528343B2 (en) | 2018-02-06 | 2020-01-07 | Smartshift Technologies, Inc. | Systems and methods for code analysis heat map interfaces |
US10740075B2 (en) | 2018-02-06 | 2020-08-11 | Smartshift Technologies, Inc. | Systems and methods for code clustering analysis and transformation |
US10698674B2 (en) | 2018-02-06 | 2020-06-30 | Smartshift Technologies, Inc. | Systems and methods for entry point-based code analysis and transformation |
US20210176520A1 (en) * | 2018-06-08 | 2021-06-10 | Gary DeWitt | Systems and methods for media storage and retrieval |
CN109271175A (en) * | 2018-08-02 | 2019-01-25 | 珠海格力电器股份有限公司 | Method and equipment for deleting application in background |
DE102018124330A1 (en) * | 2018-10-02 | 2020-04-02 | Endress+Hauser Conducta Gmbh+Co. Kg | Method for adapting functionalities of a field device |
US11210717B2 (en) * | 2018-10-31 | 2021-12-28 | Dell Products L.P. | Customer based real-time autonomous dynamic product creation and recommendation system using AI |
EP3871079A4 (en) * | 2019-04-15 | 2022-06-22 | Hewlett-Packard Development Company, L.P. | Image transfer |
JP6671055B1 (en) * | 2019-09-03 | 2020-03-25 | パナソニックIpマネジメント株式会社 | Imaging device |
CN111158645B (en) * | 2019-12-10 | 2022-09-20 | 杭州中天微系统有限公司 | System and method for providing an integrated development environment |
US11392362B2 (en) * | 2020-07-31 | 2022-07-19 | Jpmorgan Chase Bank, N.A. | Cross platform configuration domain translation |
CN113407465B (en) * | 2021-06-16 | 2024-02-09 | 深圳市同泰怡信息技术有限公司 | Switch configuration method and device of baseboard management controller and computer equipment |
US11809850B2 (en) | 2021-08-25 | 2023-11-07 | Microsoft Technology Licensing, Llc | Generating and distributing customized embedded operating systems |
US11593223B1 (en) | 2021-09-02 | 2023-02-28 | Commvault Systems, Inc. | Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants |
TWI836515B (en) * | 2022-07-15 | 2024-03-21 | 吳俊彥 | Electric power integration system and method |
US20240303303A1 (en) * | 2023-03-07 | 2024-09-12 | Zebra Technologies Corporation | Method and System for Decommissioning Cloud-Connected Printers |
CN116991426A (en) * | 2023-09-26 | 2023-11-03 | 杭州实在智能科技有限公司 | Automatic editing method and system for general preprocessing command for packaging OEM version software |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7703090B2 (en) * | 2004-08-31 | 2010-04-20 | Microsoft Corporation | Patch un-installation |
Family Cites Families (174)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US516970A (en) * | 1894-03-20 | Churn | ||
US606035A (en) * | 1898-06-21 | Half to the g | ||
US686496A (en) * | 1901-02-26 | 1901-11-12 | Andrew J West | Combined cultivator, planter, and fertilizer-distributer. |
US3721946A (en) * | 1971-12-02 | 1973-03-20 | Gen Electric | High voltage bushing with removable connector and locking plate |
JPS5758292A (en) | 1980-09-25 | 1982-04-07 | Fanuc Ltd | File deleting method for bubble cassette memory |
US4418606A (en) * | 1983-04-15 | 1983-12-06 | Lee Richard J | Powder measuring device for cartridge reloader |
KR0144463B1 (en) | 1988-10-26 | 1998-07-15 | 오오가 노리오 | A magnetic disk apparatus |
US5515524A (en) | 1993-03-29 | 1996-05-07 | Trilogy Development Group | Method and apparatus for configuring systems |
US5842024A (en) | 1995-02-27 | 1998-11-24 | Ast Research, Inc. | Method of software installation |
US5794052A (en) | 1995-02-27 | 1998-08-11 | Ast Research, Inc. | Method of software installation and setup |
US5768566A (en) * | 1996-03-01 | 1998-06-16 | Microsoft Corporation | Method and facility for uninstalling a computer program package |
US5835777A (en) * | 1996-03-20 | 1998-11-10 | Hewlett-Packard Company | Method of automatically generating a software installation package |
US6151643A (en) | 1996-06-07 | 2000-11-21 | Networks Associates, Inc. | Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer |
US6367075B1 (en) | 1996-07-24 | 2002-04-02 | Marimba, Inc. | Method and apparatus for producing instructions describing the removal of updates to a computer system |
US5825651A (en) | 1996-09-03 | 1998-10-20 | Trilogy Development Group, Inc. | Method and apparatus for maintaining and configuring systems |
US6247128B1 (en) * | 1997-07-22 | 2001-06-12 | Compaq Computer Corporation | Computer manufacturing with smart configuration methods |
US5995757A (en) | 1997-08-29 | 1999-11-30 | Dell Usa, L.P. | Software installation and testing for a build-to order computer system |
US5991543A (en) * | 1997-08-29 | 1999-11-23 | Dell Usa, L.P. | Software installation and testing for a build-to-order computer system |
US6117187A (en) * | 1997-09-30 | 2000-09-12 | Hewlett-Packard Company | Automatic generation of a software installation package |
US6621505B1 (en) | 1997-09-30 | 2003-09-16 | Journee Software Corp. | Dynamic process-based enterprise computing system and method |
US6026439A (en) | 1997-10-28 | 2000-02-15 | International Business Machines Corporation | File transfers using playlists |
US6006035A (en) | 1997-12-31 | 1999-12-21 | Network Associates | Method and system for custom computer software installation |
US6182275B1 (en) | 1998-01-26 | 2001-01-30 | Dell Usa, L.P. | Generation of a compatible order for a computer system |
US6088694A (en) * | 1998-03-31 | 2000-07-11 | International Business Machines Corporation | Continuous availability and efficient backup for externally referenced objects |
US6615406B1 (en) * | 1998-04-08 | 2003-09-02 | Dell Usa, L.P. | Apparatus for use in the manufacture of a computer system |
US6327706B1 (en) | 1998-04-08 | 2001-12-04 | Dell Usa, L.P. | Method of installing software on and/or testing a computer system |
US6681266B2 (en) * | 1998-04-14 | 2004-01-20 | Dell Usa, L.P. | Late binding dynamic software configuration information |
US6915307B1 (en) | 1998-04-15 | 2005-07-05 | Inktomi Corporation | High performance object cache |
US6080207A (en) | 1998-06-04 | 2000-06-27 | Gateway 2000, Inc. | System and method of creating and delivering software |
US7062645B2 (en) * | 1998-06-04 | 2006-06-13 | Gateway Inc. | Build to order personal computer manufacturing fast boot method |
US6216175B1 (en) * | 1998-06-08 | 2001-04-10 | Microsoft Corporation | Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations |
US6131192A (en) * | 1998-06-18 | 2000-10-10 | Microsoft Corporation | Software installation |
US6564369B1 (en) * | 1998-08-20 | 2003-05-13 | Pearson Technical Software, Inc. | Conflict checking using configuration images |
AU5898099A (en) * | 1998-08-25 | 2000-03-14 | Accompany Inc. | On-line marketing system and method |
US6501491B1 (en) | 1998-09-21 | 2002-12-31 | Microsoft Corporation | Extensible user interface for viewing objects over a network |
US6418554B1 (en) | 1998-09-21 | 2002-07-09 | Microsoft Corporation | Software implementation installer mechanism |
US6523166B1 (en) * | 1998-09-21 | 2003-02-18 | Microsoft Corporation | Method and system for on-demand installation of software implementations |
US6247024B1 (en) * | 1998-09-25 | 2001-06-12 | International Business Machines Corporation | Method and system for performing deferred file removal in a file system |
US6301670B1 (en) * | 1998-10-06 | 2001-10-09 | Ricoh Corporation | Method and apparatus for erasing data when a problem is identified |
US6262726B1 (en) * | 1998-10-09 | 2001-07-17 | Dell U.S.A., L.P. | Factory installing desktop components for an active desktop |
US6209094B1 (en) * | 1998-10-14 | 2001-03-27 | Liquid Audio Inc. | Robust watermark method and apparatus for digital signals |
US6405362B1 (en) | 1998-11-13 | 2002-06-11 | Microsoft Corporation | Automatic software installation and cleanup |
JP2000194539A (en) | 1998-12-24 | 2000-07-14 | Nec Corp | Software installation system and method therefor |
US6347371B1 (en) | 1999-01-25 | 2002-02-12 | Dell Usa, L.P. | System and method for initiating operation of a computer system |
US6247126B1 (en) | 1999-01-25 | 2001-06-12 | Dell Usa, L.P. | Recoverable software installation process and apparatus for a computer system |
US6589223B1 (en) * | 1999-02-03 | 2003-07-08 | Biotime, Inc. | Method and compositions for use in perfusion applications |
US7143067B1 (en) | 1999-02-09 | 2006-11-28 | Lenovo (Singapore) Pte. Ltd. | System and method for installing personal computer software |
US6442754B1 (en) | 1999-03-29 | 2002-08-27 | International Business Machines Corporation | System, method, and program for checking dependencies of installed software components during installation or uninstallation of software |
KR20000077034A (en) * | 1999-04-22 | 2000-12-26 | 사따께 사또루 | Apparatus and method for evaluating quality of granular object |
US6823376B1 (en) * | 1999-04-26 | 2004-11-23 | International Business Machines Corporation | Method and system for capturing and storing system changes for application to multiple users and systems in a heterogeneous server environment |
US6550062B2 (en) * | 1999-04-30 | 2003-04-15 | Dell Usa, Lp | System and method for launching generic download processing in a computer build-to-order environment |
US6385766B1 (en) * | 1999-05-20 | 2002-05-07 | Dell Usa L.P. | Method and apparatus for windows-based installation for installing software on build-to-order computer systems |
CA2375701C (en) | 1999-06-03 | 2010-08-10 | Anchor Gaming | Method and device for implementing a downloadable software delivery system |
US6543047B1 (en) * | 1999-06-15 | 2003-04-01 | Dell Usa, L.P. | Method and apparatus for testing custom-configured software/hardware integration in a computer build-to-order manufacturing process |
US6477703B1 (en) | 1999-06-29 | 2002-11-05 | Hewlett-Packard Company | Software patch selection tool |
US6604238B1 (en) * | 1999-07-26 | 2003-08-05 | Hewlett-Packard Development Company, L.P. | Method and system for installing software |
US6687902B1 (en) * | 1999-08-05 | 2004-02-03 | International Business Machines Corporation | Method, system, and program for deleting user selected file sets of a program |
US6745239B1 (en) | 1999-08-19 | 2004-06-01 | Dell Products Lp | Method and system for migrating configuration settings into a computing system |
US6760708B1 (en) | 1999-08-19 | 2004-07-06 | Dell Products L.P. | Method and system for migrating stored data to a build-to-order computing system |
US6425078B1 (en) * | 1999-08-30 | 2002-07-23 | Dell Usa, L.P. | Method for factory-installation of files and directories with long filenames while maintaining proper reference to their short filename equivalents |
US6598223B1 (en) | 1999-10-06 | 2003-07-22 | Dell Usa, L.P. | Method and system for installing and testing build-to-order components in a defined configuration computer system |
WO2001031437A1 (en) | 1999-10-27 | 2001-05-03 | Fujitsu Limited | Program management method for storage medium-mounted computer, computer, and storage medium |
US6718373B1 (en) | 1999-11-30 | 2004-04-06 | Dell Usa L.P. | Method and system for installing files in a computing system |
US6490723B1 (en) | 1999-11-30 | 2002-12-03 | Dell Products L.P. | Method and system for installing files in a computing system |
US6550061B1 (en) | 1999-12-02 | 2003-04-15 | Dell Usa, L.P. | System and method for modifying configuration files in a secured operating system |
EP1238335A1 (en) | 1999-12-07 | 2002-09-11 | Data Foundation, Inc. | Scalable storage architecture |
US6526166B1 (en) * | 1999-12-29 | 2003-02-25 | Intel Corporation | Using a reference cube for capture of 3D geometry |
US6615405B1 (en) * | 2000-01-06 | 2003-09-02 | Power Quest Corporation | Method and system for distributing and maintaining software across a computer network |
US6711798B2 (en) | 2000-01-18 | 2004-03-30 | Dell Products L.P. | Method for manufacturing products according to customer orders |
US6454572B1 (en) * | 2000-02-25 | 2002-09-24 | Seagate Technology Llc | Surface mount connector |
JP2001243106A (en) | 2000-02-28 | 2001-09-07 | Ricoh Co Ltd | Record medium and its access control method |
US6772192B1 (en) | 2000-02-29 | 2004-08-03 | Hewlett-Packard Development Company, L.P. | Software download and distribution via image building and multicast |
US6760721B1 (en) | 2000-04-14 | 2004-07-06 | Realnetworks, Inc. | System and method of managing metadata data |
US6904592B1 (en) * | 2000-04-28 | 2005-06-07 | Gilbarco Inc. | Software download system for automatic retrieval of warranty and commission data |
US6691253B1 (en) | 2000-05-10 | 2004-02-10 | Dell Usa L.P. | System and method for sequencing and performing very high speed software downloads concurrent with system testing in an automated production environment |
US6874143B1 (en) * | 2000-06-21 | 2005-03-29 | Microsoft Corporation | Architectures for and methods of providing network-based software extensions |
US6681391B1 (en) * | 2000-06-21 | 2004-01-20 | Microsoft Corporation | Method and system for installing software on a computer system |
JP2002008115A (en) | 2000-06-23 | 2002-01-11 | Sony Corp | Information distribution system, terminal device, server device, recording medium, and information distribution method |
US6907604B1 (en) * | 2000-09-22 | 2005-06-14 | Dell Products L.P. | Instant integration model |
US6721946B1 (en) | 2000-09-28 | 2004-04-13 | Dell Products L.P. | Method and system for installing software on a computer |
US6918112B2 (en) * | 2000-11-29 | 2005-07-12 | Microsoft Corporation | System and method to facilitate installation of components across one or more computers |
US6996815B2 (en) * | 2000-11-29 | 2006-02-07 | Microsoft Corporation | Method and software tools for intelligent service pack installation |
JP2002236590A (en) * | 2000-12-08 | 2002-08-23 | Seiko Epson Corp | Installing method for software |
US20040139430A1 (en) * | 2000-12-20 | 2004-07-15 | Eatough David A. | Multivendor package management |
US20020083430A1 (en) | 2000-12-26 | 2002-06-27 | Tadao Kusuda | Uninstall control apparatus which controls uninstallation of device control software |
TW495698B (en) * | 2000-12-27 | 2002-07-21 | Acer Inc | Manufacture method for computer system |
US7260845B2 (en) * | 2001-01-09 | 2007-08-21 | Gabriel Kedma | Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems |
US6868496B2 (en) * | 2001-01-16 | 2005-03-15 | Gateway, Inc. | Host protected area (HPA) duplication process |
US6807665B2 (en) * | 2001-01-18 | 2004-10-19 | Hewlett-Packard Development Company, L. P. | Efficient data transfer during computing system manufacturing and installation |
US6961773B2 (en) | 2001-01-19 | 2005-11-01 | Esoft, Inc. | System and method for managing application service providers |
NL1017213C2 (en) * | 2001-01-29 | 2002-07-30 | Stork Screens Bv | Methods for manufacturing electrical conductors, and using conductors thus manufactured. |
US20020147972A1 (en) * | 2001-01-31 | 2002-10-10 | Olmeda Hector M. | System and method for configuring an application environment on a computer platform |
US6889232B2 (en) * | 2001-02-15 | 2005-05-03 | Microsoft Corporation | System and method for data migration |
US20020129351A1 (en) * | 2001-03-07 | 2002-09-12 | Nexusedge Technologies Pty. Ltd. | Software engine and method for software application loading |
US20030193994A1 (en) * | 2001-03-21 | 2003-10-16 | Patrick Stickler | Method of managing media components |
US6948166B2 (en) * | 2001-04-05 | 2005-09-20 | International Business Machines Corporation | System and method for automatically de-installing previously installed software based on user defined preferences |
US6595223B2 (en) * | 2001-04-12 | 2003-07-22 | Maytag Corporation | Deflector for rack |
JP2002318692A (en) * | 2001-04-19 | 2002-10-31 | Sony Corp | Installation support system, installation support device, installation support method, program for supporting installation and recording medium in which the same program is recorded |
FR2824646B1 (en) | 2001-05-09 | 2003-08-15 | Canal Plus Technologies | METHOD FOR SELECTING AN EXECUTABLE SOFTWARE IMAGE |
US20040025155A1 (en) * | 2001-05-18 | 2004-02-05 | Sedlack Derek J. | Method, computer program product, and system for configuring a software image for installation into a computer system |
US20030055927A1 (en) * | 2001-06-06 | 2003-03-20 | Claudius Fischer | Framework for a device and a computer system needing synchronization |
US20020188941A1 (en) | 2001-06-12 | 2002-12-12 | International Business Machines Corporation | Efficient installation of software packages |
US6993642B2 (en) * | 2001-07-24 | 2006-01-31 | Microsoft Corporation | Method and system for creating and employing an operating system having selected functionality |
US20030037326A1 (en) * | 2001-08-06 | 2003-02-20 | Ryan Burkhardt | Method and system for installing staged programs on a destination computer using a reference system image |
US6765595B2 (en) | 2001-08-16 | 2004-07-20 | International Business Machines Corporation | Dual mode data field |
US7143408B2 (en) | 2001-08-27 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Software installation for hardware devices |
US6925535B2 (en) * | 2001-08-29 | 2005-08-02 | Hewlett-Packard Development Company, L.P. | Program control flow conditioned on presence of requested data in cache memory |
US20030046678A1 (en) * | 2001-08-30 | 2003-03-06 | Robert Boxall | Computer hardware and software installation apparatus and method |
US7107588B2 (en) * | 2001-08-31 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | System and method for installing window installer service without rebooting |
US7275135B2 (en) | 2001-08-31 | 2007-09-25 | Intel Corporation | Hardware updated metadata for non-volatile mass storage cache |
US20030046372A1 (en) * | 2001-08-31 | 2003-03-06 | Traxler Jonathan M. | System, apparatus, and method to configure a server in the field |
US6944867B2 (en) * | 2001-10-04 | 2005-09-13 | Lenovo (Singapore) Pte. Ltd. | Method for providing a single preloaded software image with an ability to support multiple hardware configurations and multiple types of computer systems |
KR100450080B1 (en) * | 2001-11-13 | 2004-10-06 | (주)지에스텔레텍 | Portable storage medium based on Universal Serial Bus standard and Control Method therefor |
US20030135851A1 (en) | 2002-01-17 | 2003-07-17 | Laura Dickey | Method and system for concentration of applications during installation in target devices |
US7228326B2 (en) | 2002-01-18 | 2007-06-05 | Bea Systems, Inc. | Systems and methods for application deployment |
US6543166B1 (en) * | 2002-02-01 | 2003-04-08 | Griffin Group, Inc. | Sign decoration system with flexible holder |
US7509342B2 (en) | 2002-02-08 | 2009-03-24 | Sanyo Electric Co., Ltd. | File data storage management method, file data storage device, program executing processing for storing file data, and storage medium |
US20030158926A1 (en) * | 2002-02-20 | 2003-08-21 | Gateway, Inc. | Network master hard disk drive duplicator |
JP2003256210A (en) | 2002-02-27 | 2003-09-10 | Sourcenext Corp | Installer, external recording medium, computer, application install method and install program |
US20030163807A1 (en) * | 2002-02-27 | 2003-08-28 | International Business Machines Corporation | Weighted selection of target systems for distributed software installation |
US20030217359A1 (en) | 2002-03-11 | 2003-11-20 | Canon Kabushiki Kaisha | Image processing apparatus, method of controlling the same and program |
JP2003323371A (en) | 2002-05-02 | 2003-11-14 | Ntt Data Corp | System and method for detecting usage status of digital content |
US6938250B2 (en) * | 2002-06-12 | 2005-08-30 | Microsoft Corporation | Image-based software installation |
US7017144B2 (en) | 2002-06-17 | 2006-03-21 | Microsoft Corporation | Combined image views and method of creating images |
US7464176B2 (en) * | 2002-06-17 | 2008-12-09 | Microsoft Corporation | Multicast system and method for deploying multiple images simultaneously |
US6947954B2 (en) * | 2002-06-17 | 2005-09-20 | Microsoft Corporation | Image server store system and method using combined image views |
US7185335B2 (en) | 2002-09-19 | 2007-02-27 | International Business Machines Corporation | Programmatic application installation diagnosis and cleaning |
US20040088697A1 (en) * | 2002-10-31 | 2004-05-06 | Schwartz Jeffrey D. | Software loading system and method |
US7228542B2 (en) * | 2002-12-18 | 2007-06-05 | International Business Machines Corporation | System and method for dynamically creating a customized multi-product software installation plan as a textual, non-executable plan |
JP2004234481A (en) | 2003-01-31 | 2004-08-19 | Canon Inc | Installation method of software and storage medium |
US7174535B2 (en) * | 2003-03-05 | 2007-02-06 | Siemens Communications, Inc. | Build and install for software applications |
US7823077B2 (en) | 2003-03-24 | 2010-10-26 | Microsoft Corporation | System and method for user modification of metadata in a shell browser |
JP4082256B2 (en) | 2003-03-25 | 2008-04-30 | ブラザー工業株式会社 | Information processing apparatus and program |
US6914486B2 (en) | 2003-07-15 | 2005-07-05 | Texas Instruments Incorporated | System and method for improved bias matching |
US20050055688A1 (en) | 2003-09-08 | 2005-03-10 | Barajas Gaston M. | Integrated rapid install system for generic software images |
US20050125524A1 (en) * | 2003-12-08 | 2005-06-09 | Chandrasekhar Babu K. | Cache system in factory server for software dissemination |
US7363420B2 (en) | 2003-12-15 | 2008-04-22 | Nortel Networks Limited | Method and file structures for managing data on a flash disk |
US7921082B2 (en) | 2004-01-23 | 2011-04-05 | Lsi Corporation | File recovery under linux operating system |
US20050193389A1 (en) * | 2004-02-26 | 2005-09-01 | Murphy Robert J. | System and method for a user-configurable, removable media-based, multi-package installer |
US20050198628A1 (en) * | 2004-03-04 | 2005-09-08 | Graham Christoph J. | Creating a platform specific software image |
JP2005284827A (en) * | 2004-03-30 | 2005-10-13 | Fujitsu Ltd | Information processing apparatus |
US7765541B1 (en) * | 2004-05-26 | 2010-07-27 | Oracle America, Inc. | Minimization methodology |
US20050289513A1 (en) | 2004-06-17 | 2005-12-29 | International Business Machines Corporation | Matrix pattern match techniques for uninstalling multiple dependent components |
US20060069754A1 (en) | 2004-06-30 | 2006-03-30 | Keith Buck | Enablement of software-controlled services required by installed applications |
JP2006065790A (en) * | 2004-08-30 | 2006-03-09 | Fujitsu Ltd | Uninstallation processing program and uninstallation management program |
US20060053419A1 (en) * | 2004-09-09 | 2006-03-09 | International Business Machines Corporation | Method and system for modifying installation software |
US20060059481A1 (en) * | 2004-09-16 | 2006-03-16 | Rodney Smith | Presenting, delivering and installing electronic downloads with an installed list |
US7330967B1 (en) * | 2004-12-03 | 2008-02-12 | Symantec Operating Corporation | System and method for injecting drivers and setup information into pre-created images for image-based provisioning |
US10162618B2 (en) * | 2004-12-03 | 2018-12-25 | International Business Machines Corporation | Method and apparatus for creation of customized install packages for installation of software |
US20070180204A1 (en) | 2005-01-31 | 2007-08-02 | Wilson Christopher S | Method and system of erasing data pool residing over multiple data storage drives |
US20060200656A1 (en) * | 2005-03-03 | 2006-09-07 | Cardinell Charles S | Apparatus and method to capture data from an embedded device |
US7966495B2 (en) | 2005-03-21 | 2011-06-21 | Revinetix, Inc. | Conserving file system with backup and validation |
US7739682B1 (en) * | 2005-03-24 | 2010-06-15 | The Weather Channel, Inc. | Systems and methods for selectively blocking application installation |
US20060224902A1 (en) | 2005-03-30 | 2006-10-05 | Bolt Thomas B | Data management system for removable storage media |
US7849253B2 (en) | 2005-04-04 | 2010-12-07 | Standard Microsystems Corporation | Method for fast access to flash-memory media |
US20060224402A1 (en) * | 2005-04-04 | 2006-10-05 | Bellsouth Intellectual Property Corporation | Devices and methods for monitoring distributed services |
US8074214B2 (en) * | 2005-05-19 | 2011-12-06 | Oracle International Corporation | System for creating a customized software installation on demand |
US20060277183A1 (en) * | 2005-06-06 | 2006-12-07 | Tony Nichols | System and method for neutralizing locked pestware files |
US20070005874A1 (en) | 2005-07-01 | 2007-01-04 | Dan Dodge | File system storing transaction records in flash-like media |
US20070028231A1 (en) * | 2005-08-01 | 2007-02-01 | International Business Machines Corporation | System and method for start menu and application uninstall synchronization |
JP5395434B2 (en) * | 2005-09-09 | 2014-01-22 | セールスフォース ドット コム インコーポレイティッド | System and method for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment |
WO2007072309A1 (en) | 2005-12-22 | 2007-06-28 | Shapiro Alan J | Apparatus and method for selectively dispensing soft assets via subtractive installation |
US8074215B2 (en) * | 2006-04-14 | 2011-12-06 | Sap Ag | XML-based control and customization of application programs |
US7770165B2 (en) * | 2006-08-25 | 2010-08-03 | Microsoft Corporation | Providing firmware updates to portable media devices |
US8601467B2 (en) * | 2006-10-03 | 2013-12-03 | Salesforce.Com, Inc. | Methods and systems for upgrading and installing application packages to an application platform |
US10079912B2 (en) * | 2007-07-27 | 2018-09-18 | Blackberry Limited | Wireless communication system installation |
US20090144727A1 (en) * | 2007-12-04 | 2009-06-04 | Bea Systems, Inc. | Interpreted multiple product installation |
US10248398B2 (en) * | 2008-04-07 | 2019-04-02 | Blackberry Limited | Method for virtualizing software applications |
GB2459682B (en) * | 2008-04-30 | 2012-04-25 | Vmware Inc | A computer system and a method of deploying an application in a computer system |
US8407693B2 (en) * | 2008-06-09 | 2013-03-26 | International Business Machines Corporation | Managing package dependencies |
US8954954B2 (en) * | 2010-04-30 | 2015-02-10 | Blackberry Limited | Method and device for application installation to multiple memory components |
US8806471B2 (en) * | 2010-09-28 | 2014-08-12 | Red Hat, Inc. | Upgrade and downgrade in package update operations |
US20120096453A1 (en) * | 2010-10-14 | 2012-04-19 | Meilstrup Jon A | Software Package Management Mechanism |
US8930899B2 (en) * | 2012-08-18 | 2015-01-06 | International Business Machines Corporation | Artifact divider for large scale application builds |
-
2006
- 2006-06-30 US US11/428,369 patent/US20070150889A1/en not_active Abandoned
- 2006-06-30 US US11/428,376 patent/US8321859B2/en not_active Expired - Fee Related
- 2006-06-30 US US11/428,374 patent/US8286159B2/en not_active Expired - Fee Related
- 2006-06-30 US US11/428,359 patent/US7712094B2/en not_active Expired - Fee Related
- 2006-06-30 US US11/428,346 patent/US7398524B2/en not_active Expired - Fee Related
- 2006-06-30 US US11/428,352 patent/US20070150887A1/en not_active Abandoned
- 2006-12-17 US US11/611,886 patent/US7571176B2/en not_active Expired - Fee Related
- 2006-12-18 TW TW103100150A patent/TW201421364A/en unknown
- 2006-12-18 TW TW095147423A patent/TWI431528B/en not_active IP Right Cessation
-
2008
- 2008-01-29 US US12/022,118 patent/US8266615B2/en not_active Expired - Fee Related
-
2009
- 2009-08-03 US US12/534,839 patent/US7856451B2/en not_active Expired - Fee Related
-
2010
- 2010-12-20 US US12/973,898 patent/US8099437B2/en not_active Expired - Fee Related
-
2011
- 2011-12-14 US US13/325,820 patent/US8521781B2/en not_active Expired - Fee Related
-
2012
- 2012-09-11 US US13/610,517 patent/US9176971B2/en not_active Expired - Fee Related
-
2013
- 2013-08-22 US US13/973,453 patent/US8782089B2/en not_active Expired - Fee Related
-
2014
- 2014-07-14 US US14/331,017 patent/US9171005B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7703090B2 (en) * | 2004-08-31 | 2010-04-20 | Microsoft Corporation | Patch un-installation |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014159357A1 (en) * | 2013-03-14 | 2014-10-02 | Alan Joshua Shapiro | System and method for metadata modification |
US11288007B2 (en) * | 2019-05-16 | 2022-03-29 | Western Digital Technologies, Inc. | Virtual physical erase of a memory of a data storage device |
Also Published As
Publication number | Publication date |
---|---|
US8266615B2 (en) | 2012-09-11 |
US20070150889A1 (en) | 2007-06-28 |
US20130067460A1 (en) | 2013-03-14 |
US20070174367A1 (en) | 2007-07-26 |
US9176971B2 (en) | 2015-11-03 |
US7856451B2 (en) | 2010-12-21 |
US20080141242A1 (en) | 2008-06-12 |
US7398524B2 (en) | 2008-07-08 |
TW201421364A (en) | 2014-06-01 |
US20070150891A1 (en) | 2007-06-28 |
US8521781B2 (en) | 2013-08-27 |
US20070150886A1 (en) | 2007-06-28 |
US7712094B2 (en) | 2010-05-04 |
US20070150888A1 (en) | 2007-06-28 |
US20130339408A1 (en) | 2013-12-19 |
TW200809623A (en) | 2008-02-16 |
US20110125816A1 (en) | 2011-05-26 |
US8321859B2 (en) | 2012-11-27 |
US20070150890A1 (en) | 2007-06-28 |
US20070150887A1 (en) | 2007-06-28 |
US20090292747A1 (en) | 2009-11-26 |
US8099437B2 (en) | 2012-01-17 |
US8782089B2 (en) | 2014-07-15 |
US20140324798A1 (en) | 2014-10-30 |
US8286159B2 (en) | 2012-10-09 |
US9171005B2 (en) | 2015-10-27 |
TWI431528B (en) | 2014-03-21 |
US7571176B2 (en) | 2009-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9171005B2 (en) | System and method for selective file erasure using metadata modifcations | |
US9753934B2 (en) | Method and system for metadata modification | |
Garfinkel et al. | Remembrance of data passed: A study of disk sanitization practices | |
US8069317B2 (en) | Providing and utilizing high performance block storage metadata | |
US5557674A (en) | Absolute static lock of files and directories on magnetic disk storage media in single machine personal microcomputers | |
KR100186891B1 (en) | Recording medium for electronic publications including multiple format emulation | |
US7783854B2 (en) | System and method for expandable non-volatile storage devices | |
US20080282355A1 (en) | Document container data structure and methods thereof | |
US6898555B2 (en) | Method for indicating the integrity of use-information of a computer program | |
CN102968597A (en) | Disk data connection chain-based file crushing method | |
WO2007072309A1 (en) | Apparatus and method for selectively dispensing soft assets via subtractive installation | |
JP3936839B2 (en) | Data storage system | |
Krenhuber et al. | Forensic and anti-forensic on modern computer systems | |
Simson | Remembrance of data passed: A study of disk sanitization practices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20210827 |