[go: up one dir, main page]

WO2010016833A1 - Method and device for customizing software - Google Patents

Method and device for customizing software Download PDF

Info

Publication number
WO2010016833A1
WO2010016833A1 PCT/US2008/072229 US2008072229W WO2010016833A1 WO 2010016833 A1 WO2010016833 A1 WO 2010016833A1 US 2008072229 W US2008072229 W US 2008072229W WO 2010016833 A1 WO2010016833 A1 WO 2010016833A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
software
programs
module
flag
Prior art date
Application number
PCT/US2008/072229
Other languages
French (fr)
Inventor
David Galvin
Gerald Koenig
Jr. Frank La Fetra
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to GB1101293.7A priority Critical patent/GB2474607B/en
Priority to US13/054,501 priority patent/US9152439B2/en
Priority to PCT/US2008/072229 priority patent/WO2010016833A1/en
Priority to CN200880130648.3A priority patent/CN102112963B/en
Priority to DE112008003970T priority patent/DE112008003970T5/en
Priority to TW098125522A priority patent/TWI478059B/en
Publication of WO2010016833A1 publication Critical patent/WO2010016833A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable
    • G06F9/44547Fat binaries

Definitions

  • Fig. 1 is a block diagram of a computer system in accordance with an embodiment.
  • Fig. 2 is a block diagram of an embodiment of software that may be installed onto a computer system.
  • Fig. 3 is a block diagram of an embodiment of a nonvolatile memory that may be used within a computer system. Detailed Description
  • Programs are some times referred to as software.
  • software includes a plurality of programs that are stored in the computer for use by the end user. Many customers and retailers prefer customized programs to be installed by the manufacturer. Some conventional computer systems require different customized programs to be loaded on computers for the different retailers and markets. As described below, the computer system and methods described herein enable a single software package to be loaded on computers sent to different retailers and markets. The software then installs specific programs onto the computer that are customized for a particular retailer and/or market.
  • some computers contain memory, such as a nonvolatile memory.
  • flags in the memory are set to indicate the programs or type of programs that are required to be installed on a specific computer.
  • Generic software or a generic software package is then loaded into the computer.
  • the software reads the flags set in the memory to determine the specific software configuration and/or programs that are to be installed in the computer.
  • Modules or the like in the software are activated or inactivated per the flags.
  • the flags may indicate that the computer is to be sold to a certain retailer.
  • the software may activate modules that install programs that reflect offers or the like specific to the retailer. Accordingly, the programs installed on the computer are customized to the retailer.
  • FIG. 1 A block diagram of an embodiment of a computer system 10 is shown in Fig. 1. It is noted that the computer system 10 of Fig. 1 is and example of a simplified computer system and that other embodiments of computer systems may be used herein such as, without limitation, multiprocessor computers, servers, network attached servers, personal computers, digital phones, portable display devices, and the like.
  • the computer system 10 includes internal storage 16, a CPU 17, and nonvolatile memory 200.
  • the internal storage may be a hard disc drive, optical disk drive, volatile memory, non-volatile memory or the like, which may store computer programs and software 100 as shown in Fig. 2.
  • the CPU 17 may be virtually any central processing unit, microprocessor, controller, for use in a computer system 10.
  • the CPU 17 serves to execute the programs stored in the internal storage 16.
  • the CPU 17 may, in some embodiments, read and write to the nonvolatile memory 200.
  • the software 100 may be a software package including a plurality of different programs and/or modules.
  • the software 100 may includes an operating system and applications 106, which is referred to collectively as simply applications 106.
  • the applications may include browsers, video viewers, anti virus software, ad blocking programs, offers from the retailer, and other programs.
  • the software 100 may include a plurality of installation modules or modules 110, each of which is specific to a particular retailer and/or market.
  • the modules 110 serve to customize the software 100 as described in greater detail below.
  • the individual modules are identified as the first retailer 114, the second retailer 116, the third retailer 118, the first market 120, the second market 122, and the third market 124.
  • the computer in which the software 100 is loaded includes a nonvolatile memory 200 or nonvolatile storage.
  • the nonvolatile memory 200 may, as an example, include a BIOS (basic input/output system) code or other such firmware.
  • the nonvolatile storage may be a USB (universal serial bus) device.
  • the nonvolatile memory 200 has flags or other indicators loaded therein that serve to ultimately instruct the software 100 as to which modules to activate or programs to load.
  • the flags are set within the DMI portion of the BOIS and serve to instruct the software as to the modules to be installed.
  • the flags may be, or correspond to, addresses within the nonvolatile memory 200.
  • the flags may be set at the time the computer is manufactured.
  • the nonvolatile memory 200 may be manufactured with the flags set and then the entire memory 200 is installed into the computer.
  • the flags may be set subsequent to manufacture .
  • the software reads the flags 202 in order to determine which of the modules 110 are to be loaded or activated. For example, if the first flag 206 is set, the software 100 may install or activate the first retailer module 114. Likewise, if the second flag 208 is set, the second retailer module 116 may be installed. With regard to the market modules, the first market module 120 may be installed if the fourth flag 212 is set. Likewise, the second market module 122 may be installed if the fifth flag 214 is set.
  • certain programs are installed on the computer.
  • a retailer may order a plurality of computers from a manufacturer. The retailer may want the installed programs to be customized for the retailer. As an example, the retailer may want to sell the computer with certain programs installed, such as certain word processors or games. The installed programs may further cause screen backgrounds to display logos of the first retailer or information regarding upgrades and service provided by the first retailer.
  • the first retailer is identified during installation of the software 100 and the first retailer module 114 of software is installed or activated.
  • the modules 110 do not actually install, but instruct the software to install certain programs.
  • the first retailer module 114 may contain instructions for installing certain programs.
  • the first module 114 or other portions of the software may also contain instructions for deleting unused software or programs in the software 100 that were not installed.
  • the software 100 may install programs or the like depending on the intended customer market related to the sale of the computer.
  • the market may include seasonal promotions, and other such market criteria.
  • a retailer may want to sell computers to younger users.
  • the fourth flag 212 could be set, which causes the software 100, when operational, to activate the first market module 120.
  • the first market module 120 may cause the software 100 to install programs and the like directed toward younger users, such as programs related to firewalls or Internet monitoring programs.
  • the retailer may set the fifth flag 214.
  • the fifth flag 214 may cause the second market module 122 to activate and install programs directed toward a different market.
  • the fifth flag may cause programs meant for business computers to be installed.
  • the markets may be seasonal, regional, or based on other criteria.
  • one of the market flags may indicate that the computer is to be sold for the Christmas holiday.
  • programs associated with Christmas or winter may be loaded.
  • Another market flag may indicate that the computer is to be sold during back to school promotions.
  • a market module may cause programs directed to students to be installed.
  • a retailer flag and a marketing flag may both be set.
  • a retailer may want to sell computers in a specific market, such as to the business market.
  • the first flag 206 may be set to indicate that the first retailer is selling the computer.
  • the fourth flag 212 may also be set to indicate that the market is to business users.
  • the first flag 206 causes the first retailer module 114 to activate, which causes programs unique or customized for the first retailer to be installed. These programs may include logos, technical assistance contacts, and other information that is unique to the first retailer.
  • the fourth flag 212 may cause the first market module to install programs for business computers. These programs may include certain accounting software and the like. If the first retailer is selling a computer in the student market, the fifth flag 214 may be activated to cause the second market module 122 to install student related programs.
  • a retailer or manufacturer may write the software 100 that includes all the programs that are to be installed in a plurality of different computers. Modules 110 or the like within the software determine which programs are to be installed. Thus activation of a first module will cause a first plurality of programs to be installed.
  • the software 100 looks to or accesses nonvolatile memory 200 within the computer to determine which modules are to be activated during the software installation. More specifically, the software 100 may read the flags 202 as described above.
  • the manufacture receives orders from the retailer regarding the type of programs that are to be installed on specific computers. Based on the order from the retailer, the manufacturer installs nonvolatile memory 200 with the flags 202 set so as to activate the appropriate modules in the software 100. In other embodiments, the nonvolatile memory 200 is installed and the appropriate flags are programmed into the nonvolatile memory 200. In some embodiments, a data cable or the like is connected to the computer to program the nonvolatile memory 200.
  • the software 100 is loaded into the computer. During initialization or installation of the software 100, the software 100 reads the flags in the nonvolatile memory 200 to determine which modules 110 are to be activated so that the correct programs are installed. It is noted that when the software 100 or programs are loaded in the computer, they are not necessarily installed. Installed software or programs as used herein refers to software or programs that may be readily executed by the computer. The software 100 runs as described above to install the correct programs. In some embodiments, programs that are not installed are deleted.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A method of configuring software on a computer is disclosed herein. The software comprises at least one module and the computer comprises a nonvolatile storage having at least one address. An embodiment of the method comprises loading a flag into the address; reading the flag using the software; and activating the module in the software depending on the state of the flag, wherein activating the module causes at least one program to be installed on the computer.

Description

METHOD AND DEVICE FOR CUSTOMIZING SOFTWARE
Background
Many computer manufacturers load programs onto their computers prior to shipping the computers. Some manufacturers provide programs that are customized for a particular market or a particular retailer. Providing these customized programs requires that different programs be loaded onto each computer that is to be shipped to a different market or retailer, which is time consuming and expensive. For example, a first retailer may provide a specific type of antivirus software and a second retailer may provide a second antivirus software on the same computer. At present the two identical computers need to have different programs installed, which is time consuming.
Brief Description of the Drawings
Fig. 1 is a block diagram of a computer system in accordance with an embodiment.
Fig. 2 is a block diagram of an embodiment of software that may be installed onto a computer system.
Fig. 3 is a block diagram of an embodiment of a nonvolatile memory that may be used within a computer system. Detailed Description
Manufacturers may load or install programs on computers prior to shipping the computers. Programs are some times referred to as software. However, in order to avoid confusion, software, as used herein, includes a plurality of programs that are stored in the computer for use by the end user. Many customers and retailers prefer customized programs to be installed by the manufacturer. Some conventional computer systems require different customized programs to be loaded on computers for the different retailers and markets. As described below, the computer system and methods described herein enable a single software package to be loaded on computers sent to different retailers and markets. The software then installs specific programs onto the computer that are customized for a particular retailer and/or market.
In summary, some computers contain memory, such as a nonvolatile memory. During manufacture, flags in the memory are set to indicate the programs or type of programs that are required to be installed on a specific computer. Generic software or a generic software package is then loaded into the computer. The software reads the flags set in the memory to determine the specific software configuration and/or programs that are to be installed in the computer. Modules or the like in the software are activated or inactivated per the flags. For example, the flags may indicate that the computer is to be sold to a certain retailer. The software may activate modules that install programs that reflect offers or the like specific to the retailer. Accordingly, the programs installed on the computer are customized to the retailer.
A further description of the technology of the invention will now be described in greater detail. A block diagram of an embodiment of a computer system 10 is shown in Fig. 1. It is noted that the computer system 10 of Fig. 1 is and example of a simplified computer system and that other embodiments of computer systems may be used herein such as, without limitation, multiprocessor computers, servers, network attached servers, personal computers, digital phones, portable display devices, and the like.
The computer system 10 includes internal storage 16, a CPU 17, and nonvolatile memory 200. The internal storage may be a hard disc drive, optical disk drive, volatile memory, non-volatile memory or the like, which may store computer programs and software 100 as shown in Fig. 2. The CPU 17 may be virtually any central processing unit, microprocessor, controller, for use in a computer system 10. The CPU 17 serves to execute the programs stored in the internal storage 16. In addition, the CPU 17 may, in some embodiments, read and write to the nonvolatile memory 200.
A block diagram of an embodiment of software 100 is shown in Fig. 2. The software 100 may be a software package including a plurality of different programs and/or modules. The software 100 may includes an operating system and applications 106, which is referred to collectively as simply applications 106. The applications may include browsers, video viewers, anti virus software, ad blocking programs, offers from the retailer, and other programs. In addition to the applications 106, the software 100 may include a plurality of installation modules or modules 110, each of which is specific to a particular retailer and/or market. The modules 110 serve to customize the software 100 as described in greater detail below. The individual modules are identified as the first retailer 114, the second retailer 116, the third retailer 118, the first market 120, the second market 122, and the third market 124. The retailers reflect different modules in the software related to specific retailers. Likewise, different markets correspond to different market modules that can be loaded into the software. As described in greater detail below, these modules load specific programs into the computer when they are activated. With additional reference to Fig. 3, the computer in which the software 100 is loaded includes a nonvolatile memory 200 or nonvolatile storage. The nonvolatile memory 200 may, as an example, include a BIOS (basic input/output system) code or other such firmware. In other embodiments, the nonvolatile storage may be a USB (universal serial bus) device. The nonvolatile memory 200 has flags or other indicators loaded therein that serve to ultimately instruct the software 100 as to which modules to activate or programs to load. In some embodiments, the flags are set within the DMI portion of the BOIS and serve to instruct the software as to the modules to be installed. The flags may be, or correspond to, addresses within the nonvolatile memory 200. In an embodiment of the nonvolatile memory 200 of Fig. 3, there are six flags stored therein, which are referred to individually as the first flag 206, the second flag 208, the third flag 210, the fourth flag 212, the fifth flag 214, and the sixth flag 216. The flags may be set at the time the computer is manufactured. For example, the nonvolatile memory 200 may be manufactured with the flags set and then the entire memory 200 is installed into the computer. In other embodiments, the flags may be set subsequent to manufacture .
During installation of the software 100, the software reads the flags 202 in order to determine which of the modules 110 are to be loaded or activated. For example, if the first flag 206 is set, the software 100 may install or activate the first retailer module 114. Likewise, if the second flag 208 is set, the second retailer module 116 may be installed. With regard to the market modules, the first market module 120 may be installed if the fourth flag 212 is set. Likewise, the second market module 122 may be installed if the fifth flag 214 is set. When a module is installed or activated, certain programs are installed on the computer. In practice, a retailer may order a plurality of computers from a manufacturer. The retailer may want the installed programs to be customized for the retailer. As an example, the retailer may want to sell the computer with certain programs installed, such as certain word processors or games. The installed programs may further cause screen backgrounds to display logos of the first retailer or information regarding upgrades and service provided by the first retailer.
By setting the first flag 206, the first retailer is identified during installation of the software 100 and the first retailer module 114 of software is installed or activated. In some embodiments, the modules 110 do not actually install, but instruct the software to install certain programs. Thus, the first retailer module 114 may contain instructions for installing certain programs. The first module 114 or other portions of the software may also contain instructions for deleting unused software or programs in the software 100 that were not installed.
With regard to the market modules, the software 100 may install programs or the like depending on the intended customer market related to the sale of the computer. The market may include seasonal promotions, and other such market criteria. In one example, a retailer may want to sell computers to younger users. In this market, the fourth flag 212 could be set, which causes the software 100, when operational, to activate the first market module 120. The first market module 120 may cause the software 100 to install programs and the like directed toward younger users, such as programs related to firewalls or Internet monitoring programs.
If the retailer wants to sell computers to a different market, it may set the fifth flag 214. The fifth flag 214 may cause the second market module 122 to activate and install programs directed toward a different market. For example, the fifth flag may cause programs meant for business computers to be installed.
In some embodiments, the markets may be seasonal, regional, or based on other criteria. For example, one of the market flags may indicate that the computer is to be sold for the Christmas holiday. In such an embodiment, programs associated with Christmas or winter may be loaded. Another market flag may indicate that the computer is to be sold during back to school promotions. A market module may cause programs directed to students to be installed. In more elaborate embodiments, a retailer flag and a marketing flag may both be set. A retailer may want to sell computers in a specific market, such as to the business market. In such an embodiment, the first flag 206 may be set to indicate that the first retailer is selling the computer. The fourth flag 212 may also be set to indicate that the market is to business users. The first flag 206 causes the first retailer module 114 to activate, which causes programs unique or customized for the first retailer to be installed. These programs may include logos, technical assistance contacts, and other information that is unique to the first retailer. The fourth flag 212 may cause the first market module to install programs for business computers. These programs may include certain accounting software and the like. If the first retailer is selling a computer in the student market, the fifth flag 214 may be activated to cause the second market module 122 to install student related programs.
Having described the software 100 and the nonvolatile memory 200, the assembly of a computer using the software 100 will now be described.
A retailer or manufacturer may write the software 100 that includes all the programs that are to be installed in a plurality of different computers. Modules 110 or the like within the software determine which programs are to be installed. Thus activation of a first module will cause a first plurality of programs to be installed. The software 100 looks to or accesses nonvolatile memory 200 within the computer to determine which modules are to be activated during the software installation. More specifically, the software 100 may read the flags 202 as described above. The manufacture receives orders from the retailer regarding the type of programs that are to be installed on specific computers. Based on the order from the retailer, the manufacturer installs nonvolatile memory 200 with the flags 202 set so as to activate the appropriate modules in the software 100. In other embodiments, the nonvolatile memory 200 is installed and the appropriate flags are programmed into the nonvolatile memory 200. In some embodiments, a data cable or the like is connected to the computer to program the nonvolatile memory 200.
The software 100 is loaded into the computer. During initialization or installation of the software 100, the software 100 reads the flags in the nonvolatile memory 200 to determine which modules 110 are to be activated so that the correct programs are installed. It is noted that when the software 100 or programs are loaded in the computer, they are not necessarily installed. Installed software or programs as used herein refers to software or programs that may be readily executed by the computer. The software 100 runs as described above to install the correct programs. In some embodiments, programs that are not installed are deleted.
The foregoing description, for purposes of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.

Claims

What is claimed is:
1. A method of configuring software on a computer, said software comprising at least one module and said computer comprising a nonvolatile storage having at least one address, said method comprising: loading a flag into said at least one address; reading said flag using said software; and activating said module in said software depending on the state of said flag, wherein activating said module causes at least one program to be installed on said computer.
2. The method of claim 1, wherein said nonvolatile storage is BIOS.
3. The method of claim 1, wherein said module is specific to a retailer of said computer.
4. The method of claim 1, wherein said module is specific to a market of said computer.
5. The method of claim 1, wherein said software comprises a plurality of programs, and wherein programs identified by said activated module are installed into said computer .
6. The method of claim 1, wherein programs not installed in said computer are deleted.
7. The method of claim 1 and further comprising deleting portions of said software that are not installed.
8. A computer comprising a nonvolatile memory, software comprising a plurality of modules, and a computer readable medium, said computer readable medium having instructions for: reading a flag stored in said nonvolatile memory; activating said module in said software depending on the state of said flag, wherein activating said module causes at least one program to be installed on said computer .
9. The computer of claim 8, wherein said nonvolatile storage is BIOS.
10. The computer of claim 8, wherein said module is specific to a retailer of said computer.
11. The computer of claim 8, wherein said module is specific to a market of said computer.
12. The computer of claim 8, wherein said software comprises a plurality of programs, and wherein programs identified by said activated module are installed into said computer .
13. The computer of claim 8, wherein said instructions further comprise deleting programs that are not installed in said computer.
14. The computer of claim 8, wherein said instructions further comprise deleting portions of said software that are not installed in said computer.
15. A method of manufacturing a computer, said method comprising : installing a nonvolatile memory in said computer, said nonvolatile memory having at least one address wherein a flag is stored in said address; installing software in said computer, wherein said software comprises a plurality of modules and programs, and wherein said modules determine the programs that are to be installed on said computer; reading said address; activating a module based on the status of said flag; installing programs per said module.
16. The method of claim 14, wherein said reading comprises using said software to read said address.
17. The method of claim 14, wherein said nonvolatile memory is BIOS.
18. The method of claim 14 and further comprising deleting programs not installed on said computer.
19. The method of claim 14, wherein said module is associated with programs that are specific to a retailer of said computer.
20. The method of claim 14, wherein said module is associated with programs that are specific to a market of said computer.
PCT/US2008/072229 2008-08-05 2008-08-05 Method and device for customizing software WO2010016833A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
GB1101293.7A GB2474607B (en) 2008-08-05 2008-08-05 Method and device for customizing software
US13/054,501 US9152439B2 (en) 2008-08-05 2008-08-05 Method and device for customizing software
PCT/US2008/072229 WO2010016833A1 (en) 2008-08-05 2008-08-05 Method and device for customizing software
CN200880130648.3A CN102112963B (en) 2008-08-05 2008-08-05 Method and apparatus for customizing software
DE112008003970T DE112008003970T5 (en) 2008-08-05 2008-08-05 Method and device for custom software installation
TW098125522A TWI478059B (en) 2008-08-05 2009-07-29 Method of configuring software, and the related computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2008/072229 WO2010016833A1 (en) 2008-08-05 2008-08-05 Method and device for customizing software

Publications (1)

Publication Number Publication Date
WO2010016833A1 true WO2010016833A1 (en) 2010-02-11

Family

ID=41663897

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/072229 WO2010016833A1 (en) 2008-08-05 2008-08-05 Method and device for customizing software

Country Status (6)

Country Link
US (1) US9152439B2 (en)
CN (1) CN102112963B (en)
DE (1) DE112008003970T5 (en)
GB (1) GB2474607B (en)
TW (1) TWI478059B (en)
WO (1) WO2010016833A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2472817A1 (en) 2010-12-30 2012-07-04 Kaspersky Lab Zao System and method for optimization of execution of security tasks in local network

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014026435A (en) * 2012-07-26 2014-02-06 Disco Abrasive Syst Ltd Processing device
TWI685787B (en) * 2018-03-13 2020-02-21 神雲科技股份有限公司 Computer apparatus and automatically selecting customized program method thereof
US11710125B1 (en) * 2018-03-19 2023-07-25 Worldpay, Llc Systems and methods for automated validation for proprietary security implementations
CN108549555A (en) * 2018-04-10 2018-09-18 Tcl通力电子(惠州)有限公司 Processing method, embedded system device and the storage medium of customized software
CN109409995A (en) * 2018-10-15 2019-03-01 郑州云海信息技术有限公司 A kind of method, apparatus, equipment and the storage medium of hard disk customized development
CN111158771B (en) * 2019-12-30 2021-08-17 联想(北京)有限公司 Processing method and device and computer equipment
US12190091B2 (en) * 2022-01-19 2025-01-07 Calamp Corp. Technologies for over-the-air updates for telematics systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007072310A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J System and method for software delivery
US20070150717A1 (en) * 2003-07-18 2007-06-28 Mitac Technology Corp. Selectable booting method by bios with multi-partition in the disk on a single computer platform
US20070245342A1 (en) * 2006-01-04 2007-10-18 Samsung Electronics Co., Ltd. Apparatus and method for installing software
US20070277029A1 (en) * 1999-03-18 2007-11-29 Rao Anil V System and Method for Installing System Manufacturer Provided Software

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247128B1 (en) * 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US6177860B1 (en) 1997-11-17 2001-01-23 International Business Machines Corporation Method and economical direct connected apparatus for deploying and tracking computers
US6778096B1 (en) 1997-11-17 2004-08-17 International Business Machines Corporation Method and apparatus for deploying and tracking computers
US5991544A (en) * 1997-12-09 1999-11-23 Nortel Networks Corporation Process and apparatus for managing a software load image
US6006035A (en) * 1997-12-31 1999-12-21 Network Associates Method and system for custom computer software installation
JPH11259284A (en) 1998-03-12 1999-09-24 Fujitsu Ltd Online program update system and computer-readable recording medium recording program update program
US6324619B1 (en) * 1998-03-27 2001-11-27 Sony Corporation Of Japan Process and system for managing run-time adaptation for general purpose distributed adaptive applications
US6775829B1 (en) * 1998-06-04 2004-08-10 Gateway, Inc. Method for configuring software for a build to order system
US6836794B1 (en) * 1998-09-21 2004-12-28 Microsoft Corporation Method and system for assigning and publishing applications
US6378128B1 (en) * 1998-10-08 2002-04-23 Microsoft Corporation System and method for dynamically modifying an install-set
US6631521B1 (en) * 1999-03-29 2003-10-07 International Business Machines Corporation System, method, and program for performing program specific operations during the uninstallation of a computer program from a computer system
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
US7016944B1 (en) * 1999-09-30 2006-03-21 Apple Computer, Inc. System and method for passive detection and context sensitive notification of upgrade availability for computer information
GB2357600A (en) 1999-12-23 2001-06-27 Ibm Hardware dependent software installation
US6871344B2 (en) * 2000-04-24 2005-03-22 Microsoft Corporation Configurations for binding software assemblies to application programs
US6615287B1 (en) 2000-05-23 2003-09-02 International Business Machines Corporation Means for flexible keyboard auto-ID implementation
EP1195676A3 (en) * 2000-10-03 2007-03-28 Microsoft Corporation Architecture for customizable applications
JP2002108482A (en) 2000-10-04 2002-04-10 Morisawa:Kk Method for managing software license
US6671749B2 (en) * 2001-03-07 2003-12-30 Hewlett-Packard Development Company, L.P. Peripheral driver installation method and system
US20040015960A1 (en) 2001-03-16 2004-01-22 Sanjay Wanchoo Method for loading and executing an application in an embedded environment
US7243346B1 (en) * 2001-05-21 2007-07-10 Microsoft Corporation Customized library management system
US20020188941A1 (en) * 2001-06-12 2002-12-12 International Business Machines Corporation Efficient installation of software packages
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
US20030125815A1 (en) * 2001-12-31 2003-07-03 Ghanime George Hanna E-installation system and method for use in installation of power-plant equipment
US7228326B2 (en) * 2002-01-18 2007-06-05 Bea Systems, Inc. Systems and methods for application deployment
US7146609B2 (en) * 2002-05-17 2006-12-05 Sun Microsystems, Inc. Method, system and article of manufacture for a firmware image
CN1208719C (en) 2002-09-27 2005-06-29 联想(北京)有限公司 Application software automatic installing and automatic restoring method
US20040088697A1 (en) * 2002-10-31 2004-05-06 Schwartz Jeffrey D. Software loading system and method
US7228541B2 (en) * 2003-01-17 2007-06-05 National Instruments Corporation Creation of application system installer
DE10320827A1 (en) * 2003-05-08 2004-12-09 Siemens Ag Software customization procedures
US7334226B2 (en) * 2003-10-30 2008-02-19 International Business Machines Corporation Autonomic auto-configuration using prior installation configuration relationships
US7418701B2 (en) * 2004-03-12 2008-08-26 Fuji Xerox Co., Ltd. Network device and setup method thereof
US8156489B2 (en) * 2004-05-21 2012-04-10 Computer Associates Think, Inc. Distributed installation configuration system and method
US7636795B2 (en) 2004-06-30 2009-12-22 Intel Corporation Configurable feature selection mechanism
US7975266B2 (en) * 2004-07-30 2011-07-05 Sap Aktiengesellschaft Remote installation of computer resources
GB0426736D0 (en) * 2004-12-06 2005-01-12 Omnifone Ltd MyFone
TW200713037A (en) 2005-09-06 2007-04-01 Benq Corp System and method for updating firmware
US8677348B1 (en) * 2005-10-17 2014-03-18 Cisco Technology, Inc. Method and apparatus for determining least risk install order of software patches
US20070150887A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J Apparatus and method for selectively dispensing soft assets
US7836439B2 (en) * 2006-02-03 2010-11-16 Research In Motion Limited System and method for extending a component-based application platform with custom services
US20070234345A1 (en) * 2006-02-22 2007-10-04 Microsoft Corporation Integrated multi-server installation
US8312449B2 (en) * 2006-10-31 2012-11-13 International Business Machines Corporation Viral installation of operating systems in a network
CN100489780C (en) 2006-11-09 2009-05-20 华为技术有限公司 Software installation method and apparatus thereof
JP2008139916A (en) * 2006-11-30 2008-06-19 Canon Inc Information processing apparatus, control method for information processing apparatus, and control program for information processing apparatus
US8239855B2 (en) * 2008-03-27 2012-08-07 Oracle International Corporation Component-based software installation
US20090282398A1 (en) * 2008-05-08 2009-11-12 Microsoft Corporation On-the-fly addition of products to an existing installation
CN101576863B (en) * 2009-06-02 2011-05-11 中兴通讯股份有限公司 Self-start method and device for mobile terminal and mobile terminal comprising the device
US20150074659A1 (en) * 2013-09-06 2015-03-12 Vmware, Inc. Methods and Apparatus to Perform Web-Based Installations and/or Upgrade Architectures for Enterprise Software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070277029A1 (en) * 1999-03-18 2007-11-29 Rao Anil V System and Method for Installing System Manufacturer Provided Software
US20070150717A1 (en) * 2003-07-18 2007-06-28 Mitac Technology Corp. Selectable booting method by bios with multi-partition in the disk on a single computer platform
WO2007072310A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J System and method for software delivery
US20070245342A1 (en) * 2006-01-04 2007-10-18 Samsung Electronics Co., Ltd. Apparatus and method for installing software

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2472817A1 (en) 2010-12-30 2012-07-04 Kaspersky Lab Zao System and method for optimization of execution of security tasks in local network

Also Published As

Publication number Publication date
GB2474607A (en) 2011-04-20
DE112008003970T5 (en) 2011-05-26
US9152439B2 (en) 2015-10-06
CN102112963B (en) 2017-06-23
GB2474607B (en) 2013-03-13
CN102112963A (en) 2011-06-29
US20110126189A1 (en) 2011-05-26
TW201011650A (en) 2010-03-16
TWI478059B (en) 2015-03-21
GB201101293D0 (en) 2011-03-09

Similar Documents

Publication Publication Date Title
US9152439B2 (en) Method and device for customizing software
KR101157433B1 (en) Delivery of a message to a user of a portable data storage device as a condition of its use
US7711945B2 (en) Universal computer product hardware configuration initialization handling method and system
US6560702B1 (en) Method and apparatus for execution of an application during computer pre-boot operation
KR101533901B1 (en) Networked recovery system
CN102129382B (en) Computer system and method for selectively installing an operating system from a plurality of operating systems
US7519803B2 (en) Build-to-order embedded operating system partition
US20170228228A1 (en) Remote launch of deploy utility
US20090217374A1 (en) License Scheme for Enabling Advanced Features for Information Handling Systems
US20140337004A1 (en) Digital signage management and content delivery system and method thereof
US20180322076A1 (en) Method to trigger nvdimm save from remote management interface
US8898659B2 (en) Method and apparatus to customize and configure multiple operating systems on a server
US8661237B2 (en) System and method for booting a plurality of servers from a shared boot image stored on a USB boot image sharer
US6473655B1 (en) Data processing system and method for creating a virtual partition within an existing partition in a hard disk drive
US8370612B2 (en) Computer system with built-in hidden two operating devices
US9189351B2 (en) Method of obtaining instruction for triggering function
JP2004021990A (en) Firmware selector of computer including processor
US20070219919A1 (en) Process of accessing licensed digital content on MediaDirect enabled systems in a multiple operating system environment
US8086834B2 (en) System and method for populating a dedicated system service repository for an information handling system
US8386761B2 (en) System for registering and initiating pre-boot environment for enabling partitions
US7958345B2 (en) Method for adjusting setup default value of BIOS and main board thereof
US8230209B1 (en) Method and apparatus for automatically providing a user the opportunity to boot from an alternate storage device where a valid operating system resides
US20150149144A1 (en) Simulating non-volatile memory
US7519804B2 (en) Split read only memory architecture for storage option read only memories
US20050131835A1 (en) System for pre-trusting of applications for firewall implementations

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880130648.3

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08797199

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13054501

Country of ref document: US

ENP Entry into the national phase

Ref document number: 1101293

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20080805

WWE Wipo information: entry into national phase

Ref document number: 1101293.7

Country of ref document: GB

RET De translation (de og part 6b)

Ref document number: 112008003970

Country of ref document: DE

Date of ref document: 20110526

Kind code of ref document: P

122 Ep: pct application non-entry in european phase

Ref document number: 08797199

Country of ref document: EP

Kind code of ref document: A1