NL2009157B1 - System and method for linking pre-installed software to a user account on an online store. - Google Patents

System and method for linking pre-installed software to a user account on an online store.

Info

Publication number
NL2009157B1
NL2009157B1 NL2009157A NL2009157A NL2009157B1 NL 2009157 B1 NL2009157 B1 NL 2009157B1 NL 2009157 A NL2009157 A NL 2009157A NL 2009157 A NL2009157 A NL 2009157A NL 2009157 B1 NL2009157 B1 NL 2009157B1
Authority
NL
Grant status
Grant
Patent type
Prior art keywords
application
installed
user
server
associated
Prior art date
Application number
NL2009157A
Other languages
Dutch (nl)
Other versions
NL2009157A (en )
Inventor
R Pardehpoosh Pedraum
M Federighi Graig
I Feldman Daniel
T Quirk Gregory
R Matthew Jack
LEE KANG Jackie
Ciudad Jean-Pierre
E Gromek Monika
K Burkholder Thomas
Emil Pu Daniel
Gharabally Sam
Marshall Verosub Ellis
Sub Hwang Yoon
Original Assignee
Apple Inc
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
Grant date

Links

Abstract

Disclosed herein are systems, methods, and non-transitory computer-readable storage media for associating an application for installation on a computer with a user account on an online store. A system configured to practice the method presents an application available for download, receives from a client device a software adoption request including an identifier associated with a user account and a proof of entitlement associated with a software package or the user account, verifies the proof of entitlement by comparing the proof of entitlement to a database, and if the proof of entitlement is verified, adopts the software package as part of the user account.

Description

SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE

CROSS REFERENCE TO RELATED APPLICATIONS CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation-in-part of US Pat App. [0001] This application is a continuation-in-part of US Pat App. No. No. 13/181,424, filed on July 12, 2011, entitled, SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE; 13 / 181.424, filed on July 12, 2011, Entitled, SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE; this application is also a continuation-in-part of US Pat App. this application is ook a continuation-in-part of US Pat App. No. No. 13/248,942, filed on September 29, 2011, entitled, SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE; 13 / 248.942, filed on September 29, 2011, Entitled, SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE; and this application also claims priority from US provisional patent application no. 61/596,928, filed on February 9, 2012, entitled, SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE; and this usefull application claims priority from US Provisional Patent Application No. 61 / 596.928, filed on February 9, 2012, Entitled, SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE.; all of which are hereby incorporated by reference herein in their entireties. all of Which are hereby incorporated by reference hereinbefore in Their entireties.

BACKGROUND 1. Technical Field [0002] The present disclosure relates generally to the distribution of digital products and more specifically to techniques for linking software applications to a user account on an online store. BACKGROUND 1. Technical Field [0002] The present disclosure relates gene rally to the distribution of digital products and More specifically to techniques for linking software applications to a user account on an online store. 2. Introduction [0003] Manufacturers of electronic devices commonly offer customers a variety of available options to personalize and customize an electronic device prior to purchase. 2. Introduction [0003] Manufacturers of electronic devices communicating only offer customers a variety of available options to personalize and customize an electronic device prior to purchase. For instance, a personal computing device such as a computer can be customized by selecting the processor, memory, hard drive, or accessories. For instance, a personal computing device zoals a computer can be customized by selecting the processor, memory, hard drive, or accessories. Manufacturers also cooperate with various software vendors to offer software applications or programs that can be purchased along with the computer and pre-installed before the customer takes delivery of the computer. Manufacturers usefull cooperate with various software vendors to offer software applications or programs That Can Be Purchased alongwith the computer and pre-installed before the customer takes delivery of the computer. Some software applications, which typically are created by the manufacturer but can also include third-party applications, can be pre-installed on the computing device free of charge either manually or as part of a default factory image, for example. Some software applications, Which Typically are created by the manufacturer but can usefull include third-party applications, can be pre-installed on the computing device free of charge either manually or as part of a factory default image, for example. Therefore, the hardware components and the pre-installed software can be personalized by a customer to ensure that the purchased product meets the customer's needs. Therefore, the hardware components and the pre-installed software can be personalized by a customer to ensure That the Purchased product meets the customer's needs.

[0004] After the customer receives the electronic device, the customer may sometime in the future desire to reinstall or update the pre-installed software. [0004] After the customer these receives the electronic device, the customer May sometime in the future desire to reinstall or update the pre-installed software. For example, a software provider may have released an updated version of the software pre-installed on the electronic device. For example, a software provider May have released an updated version of the software pre-installed on the electronic device. This is commonly known as a software update. This is comm only known as a software update. To obtain the software update, the customer visits a physical or online store of the software provider and purchases or acquires the updated version of the software. To Obtain the software update, the customer visits a physical or online store of the software provider and Purchases or acquires the updated version of the software. However, this process is time consuming and sometimes confusing. However, this process is time consuming and sometimes confusing. Similarly, when a purchaser reformats the storage of the electronic device, the purchaser must typically reinstall the software. Similarly, When a purchaser reformats the storage of the electronic device, the purchaser must Typically reinstall the software. During reinstallation, the purchaser may be prompted for various compact discs (CDs) or other media containing the pre-installed software. During reinstallation, the purchaser May be Prompted for various compact discs (CDs) or other media containing the pre-installed software. However, the purchaser may have misplaced the CDs, thus making the reinstallation procedure quite cumbersome. However, the purchaser May have misplaced the CDs, osmanthus making the reinstallation process quite cumbersome.

SUMMARY SUMMARY

[0005] Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. [0005] Additional features and advantages of the disclosure will be set forth in the description Which follows, and in part will be obvious from the description, or can be learned by practice of the principles hereinbefore disclosed. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. The features and advantages of the disclosure can be Realized and obtained by Means of the instruments and combinations Particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims, or can be learned by the practice of the principles set forth herein. These and other features of the disclosure will Become more fully apparent from the following description and appended claims, or can be learned by the practice of the principles set forth hereinbefore.

[0006] Disclosed are systems, methods, and non-transitory computer-readable storage media for associating an application (ie, software package), a pre-installed application or a separately purchased application with a user account. [0006] Disclosed are systems, methods, and non-transitory computer-readable storage media for associating an application (ie, software package), a pre-installed application or a separately Purchased application with a user account. The user account can be associated or stored on an online store. The user account can be associated or stored on an online store. This process can be called adoption. This process can be called adoption. Adoption can provide the user account with certain privileges, such as downloading, re-downloading, and updating of applications. Adoption can providence the user account with privileges certainement, zoals downloading, re-downloading, and updating of applications. In other examples, adoption can configure the user account to permit other privileges with respect to the adopted application, such as gifting adopted applications or selling adopted applications. In other examples, adoption can configure the user account to permit other privileges with respect to the application is adopted, zoals gifting or selling applications is adopted is adopted applications. In one common scenario, a new computer includes certain preinstalled software. In one common scenario, a new computer certainement includes preinstalled software. A user can run and use the pre-installed software on the new computer. A user can run and use the pre-installed software on the new computer.

However, in order to receive and/or be eligible for updates, backups, and/or other software-related content or services, the user can 'adopt' the pre-installed software. However, in order to receive and / or be Eligible for updates, backup, and / or other software-related content or services, the user can 'adopt' the pre-installed software. By adopting the pre-installed software, the pre-installed software is associated with a particular user account, such as an online electronic store account. By Adopting the pre-installed software, the pre-installed software is associated with a particular user account, zoals an online electronic store account. Then the online electronic store can handle updates, backups, restores, in-application purchases, and so forth. Then the online electronic store can handle updates, backups, restores, in-application Purchases, and so forth. However, a user can opt to use the pre-installed software without 'adopting' the pre-installed software with full functionality except for features relying on a user account or access to the online electronic store account. However, a user can opt to use the pre-installed software without 'Adopting' the pre-installed software with full functionality except for features Relying on a user account or access to the online electronic store account. When a user adopts pre-installed software, the online electronic store can modify the account, a database, and/or the software itself so that the pre-installed software is ineligible for adoption by another user. When a user Adopts pre-installed software, the online electronic store can modify the account, a database, and / or the software itself so That the pre-installed software is ineligible for adoption by another user. In another common scenario, a software package or application that has been purchased, gifted, or otherwise acquired by a user is installed on a user's computing device. In another common scenario, a software package or application has That leg Purchased, gifted, or otherwise acquired by a user is installed on a user's computing device. The computing device may transmit a software adoption request to a server for adoption of the software package or application with a user account. The computing device software adoption May transmit a request to a server for adoption of the software package or application with a user account. The software adoption request can include an indication of the software package and an identifier associated with the user account. The software adoption request can include an indication of the software package and an identifier associated with the user account. In some examples, a proof of entitlement is also included in the adoption request as proof to the authenticity of the software package. In some examples, a proof of entitlement is ook included in the adoption request proof as to the authenticity of the software package. The proof of entitlement can be a value derivable only from possession of the software package. The proof of entitlement can be a value derivable only from possession of the software package. For example, the proof of entitlement can be associated with or derived from a serial number of the software package. For example, the proof of entitlement can be associated with or derived from a serial number of the software package. The proof of entitlement can also be a value derivable from the software package and metadata associated with the electronic device. The proof of entitlement can be usefull a value derivable from the software package and metadata associated with the electronic device. For example, metadata associated with the electronic device can be a value derivable from hardware associated with the electronic device. For example, metadata associated with the electronic device can be a value derivable from hardware associated with the electronic device. Updates, backups, and/or other software related content or services can be available to the user once the application has adopted. Updates, backups, and / or other software related content or services can be available to the user once the application has adopted.

[0007] A system configured to practice the method presents an application available for download, receives a request to download the application to a computing device, and determines that the application is a pre-installed application. [0007] A system configured to practice the method presents an application available for download, these receives a request to download the application to a computing device, and the Determines That application is a pre-installed application. Then the system presents an authorization prompt configured to request user authorization to link the application with a user account, receives the user authorization, and, in response to receiving the user authorization, generates a unique hardware identifier or retrieves a proof of entitlement associated with the computing device. Then the system presents an authorization prompt configured to request user authorization to link the application with a user account, these receives the user authorization, and, in response to receiving the user authorization, gene rates a unique hardware identifier or retrieves a proof of entitlement associated with the computing device. The system determines that the application is linkable based upon the unique hardware identifier or proof of entitlement, and links the adoptable application with the user account when the adoptable application is linkable. The system Determines That the application is linkable based upon the unique hardware identifier or proof of entitlement, and left the adoptable application with the user account When the adoptable application is linkable. The system can present the application available for download by receiving a request for an updates page, and, in response to receiving the request, collecting a stub receipt associated with the application. The system can present the application available for download by receiving a request for an update page, and, in response to receiving the request, collecting a receipt stub associated with the application. The stub receipt can include a version number and a name associated with the application. The receipt stub can include a version number and a name associated with the application. Then the system determines, based upon the version number and the name, that an update of the application is available on a server for download, and presents the name of the application. Then the system Determines, based upon the version number and the name, that an update of the application is available on a server for download, and presents the name of the application.

[0008] Alternatively, the system can present the application available for download by receiving a request for a purchases page, receiving a manifest associated with the computing device, and presenting a list of pre-installed applications based on the manifest. [0008] alternatively, the system can present the application available for download by receiving a request for a page Purchases, receiving a manifest associated with the computing device, and presenting a list or pre-installed applications based on the manifest. The manifest can include a list of pre-installed applications available for download from a server where the list of pre-installed applications includes the application. The manifest can include a list of pre-installed applications available for download from a server where the list of pre-installed applications includes the application. The system can determine that the application has an update available on a server by searching an applications database and comparing the version number of the application stored on the computing device with the version number of the application stored on the applications database. The system can determinant That the application has an update available on a server by searching an applications database and comparing the version number of the application stored on the computing device with the version number of the application stored on the database applications. Based on a comparison of the version numbers, a determination can be made as to whether an update to the application exists on the applications database. Based on a comparison of the version numbers, a determination can be made as to Whether an update to the application exists on the database applications. The system can determine that the application is a pre-installed application by determining that the application is associated with a stub receipt. The system can determinant That the application is a pre-installed application by That-determining the application is associated with a receipt stub. The system can determine that the application is a pre-installed application by receiving a manifest associated with the computing device, the manifest including a list of pre-installed applications, and determining that the application is included within the list of pre-installed applications. The system can determinant That the application is a pre-installed application by receiving a manifest associated with the computing device, the manifesto-including a list of pre-installed applications, and-determining That the application is included within the list of pre-installed applications. The system can determine that the pre-installed application is linkable by transmitting the unique hardware identifier or proof of purchase to a server, and determining whether the pre-installed application has been linked with another user account. The system can determinant That the pre-installed application is linkable by transmitting the unique hardware identifier or proof of purchase to a server, and-determining Whether the pre-installed application has bone linked with another user account. In yet other examples, the system links the pre-installed application with the user account by associating the pre-installed application with the user account, and updating a uniqueness table to include the unique hardware identifier or proof of purchase. In yet other examples, the system links the pre-installed application with the user account by associating the pre-installed application with the user account, and updating a uniqueness table to include the unique hardware identifier or proof of purchase. The uniqueness table can include another unique hardware identifier or proof of purchase that is associated with another electronic device having another pre-installed application, and the another preinstalled application can be linked with another user account. The uniqueness table can include another unique hardware identifier or proof of purchase that's associated with another electronic device having another preinstalled application, and the another preinstalled application can be linked with another user account.

[0009] In another variation, the system receives a request to link a pre-installed application with a user account on an online store, the online store configured to transmit applications associated with the user account to one or more computing devices associated with the user account. [0009] In another variation, the system these receives a request to link a pre-installed application with a user account on an online store, the online store configured to transmit applications associated with the user account to one or more computing devices associated with the user account. Then the system generates a unique hardware identifier or proof of purchase associated with a computing device, and determines that the pre-installed application is linkable based upon the unique hardware identifier or proof of purchase. Then the system generating a unique hardware identifier rates proof of purchase or associated with a computing device, and Determines That the pre-installed application is linkable based upon the unique hardware identifier or a proof of purchase. The system links the pre-installed application with the user account when the pre-installed application is linkable. The system links the pre-installed application with the user account When the pre-installed application is linkable. The unique hardware identifier can be based upon one or more hardware components of the electronic device, such as a MAC address, universal device identifier (UDID), a logic board serial number, or an Ethernet hardware address. The unique hardware identifier can be based upon one or more hardware components of the electronic device, zoals a MAC address, universal device identifier (UDID), a logic board serial number, or an Ethernet hardware address. In other examples a proof of purchase can be used. In other examples a proof-of-purchase can be used. The proof of purchase can be based on hardware components of the electronic device, metadata associated with the gifting, purchasing, or acquisition of the application. The proof of purchase can be based on hardware components of the electronic device, metadata associated with the gifting, purchasing, or acquisition of the application. Determining that the pre-installed application is linkable can include transmitting the unique hardware identifier or proof of purchase to a server, and determining whether the preinstalled application or proof of purchase has been linked with another user account. Determining That the preinstalled application is linkable can include transmitting the unique hardware identifier or proof of purchase to a server, and-determining Whether the preinstalled application or proof of purchase has bone linked with another user account. The system can determine that the pre-installed application is linkable by determining that an original configuration of the computing device includes the pre-installed application. The system can determinant That the pre-installed application is linkable by-determining That an original configuration of the computing device includes the pre-installed application. Linking the pre-installed application with the user account can include associating the pre-installed application with the user account, updating a uniqueness table to include the unique hardware identifier or proof of purchase, the uniqueness table including another unique hardware identifier or proof of purchase that is associated with another electronic device having another pre-installed application, the another pre-installed application having been linked with another user account. Linking the pre-installed application with the user account can include associating the pre-installed application with the user account, updating a uniqueness table to include the unique hardware identifier or proof of purchase, the uniqueness table-including another unique hardware identifier or proof of purchase That is associated with another electronic device having another pre-installed application, the another pre-installed application having leg-linked with another user account. In yet another example, linking the pre-installed application with the user account further includes removing metadata associated with the pre-installed application from a manifest, the manifest being configured to list pre-installed applications that have yet to be linked with the user account. In yet another example, linking the pre-installed application with the user account Further includes removing metadata associated with the pre-installed application from a manifesto, the manifesto being configured to list pre-installed applications thathave yet to be linked with the user account . The system can download the pre-installed application to the computing device. The system can download the pre-installed application to the computing device.

BRIEF DESCRIPTION OF THE DRAWINGS BRIEF DESCRIPTION OF THE DRAWINGS

[0010] In order to describe the manner in which the above-recited and other advantages and features of the disclosure can be obtained, a more particular description of the principles briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. [0010] In order to describe the mannerville in Which the above-recited and other advantages and features of the disclosure can be obtained, a more particular description of the principles Briefly described above will be rendered by reference to specific embodiments thereof Which are illustrated in the appended drawings. Understanding that these drawings depict only exemplary embodiments of the disclosure and are not therefore to be considered to be limiting of its scope, the principles herein are described and explained with additional specificity and detail through the use of the accompanying drawings in which: [0011] FIG. Understanding That thesis drawings depict only exemplary embodiments of the disclosure and are not Therefore to be Considered to be limiting of its scope, the principles hereinbefore are described and Explained with additional specificity and detail through the use of the Accompanying drawings in which: [0011] FIG. 1 illustrates an exemplary system embodiment; 1 illustrates an exemplary system of Embodiment; [0012] FIG. [0012] FIG. 2 illustrates an exemplary application distribution system; 2 illustrates an exemplary application distribution system; [0013] FIG. [0013] FIG. 3 illustrates an exemplary client-server system; 3 illustrates an exemplary client-server system; [0014] FIG. [0014] FIG. 4 illustrates an exemplary method for processing an updates page request; 4 illustrates an exemplary method for processing an update page request; [0015] FIG. [0015] FIG. 5 illustrates an example of an HTML page associated with an updates page request; 5 illustrates an example of an HTML page associated with an updates page request; [0016] FIG. [0016] FIG. 6 illustrates an example of an HTML page requesting user authorization to adopt pre-installed applications; 6 illustrates an example of an HTML page Requesting user authorization to adopt pre-installed applications; [0017] FIG. [0017] FIG. 7 illustrates another example of an HTML page requesting user authorization to adopt pre-installed applications; 7 illustrates another example of an HTML page Requesting user authorization to adopt pre-installed applications; [0018] FIG. [0018] FIG. 8 illustrates an exemplary method for processing a purchases page request; 8 illustrates an exemplary method for processing a page request Purchases; [0019] FIG. [0019] FIG. 9 illustrates an example of an HTML page associated with a purchases page request when the user is not signed in; 9 illustrates an example of an HTML page associated with a page request Purchases When the user is not signed in; [0020] FIG. [0020] FIG. 10 illustrates another example of an HTML page associated with a purchases page request when the user is signed in; 10 illustrates another example of an HTML page associated with a page request Purchases When the user is signed in; [0021] FIG. [0021] FIG. 11 illustrates another example of an HTML page associated with a purchases page request that includes an authorization prompt; 11 illustrates another example of an HTML page associated with a page Purchases That request includes an authorization prompt; [0022] FIG. [0022] FIG. 12 illustrates an exemplary method for linking a pre-installed application to a user account; 12 illustrates an exemplary method for linking a pre-installed application to a user account; [0023] FIG. [0023] FIG. 13 illustrates an example of an adoption warning; 13 illustrates an example of an adoption warning; [0024] FIG. [0024] FIG. 14 illustrates another example of an adoption warning; 14 illustrates another example of an adoption warning; and [0025] FIG. and [0025] FIG. 15 illustrates an exemplary process for recovery mode on an electronic device. 15 illustrates an exemplary process for recovery mode on an electronic device.

DETAILED DESCRIPTION DETAILED DESCRIPTION

[0026] Various embodiments of the disclosure are discussed in detail below. [0026] Various embodiments of the disclosure are Discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. While specific implementations are Discussed, It Should Be Understood thatthis is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure. A person skilled in the relevant art will Recognize That Other components and configurations May be used without parting from the spirit and scope of the disclosure.

[0027] The present disclosure addresses the need in the art for associating pre-installed software on an electronic device to a user account on a distribution center or online store. [0027] The present disclosure addresses the need in the art for associating pre-installed software on an electronic device to a user account on a distribution center or online store. The present disclosure also addresses the need in the art for associating other types of software besides pre-installed software with a user account. The present disclosure usefull addresses the need in the art for associating other types of software besides pre-installed software with a user account. For example, purchased software, software received as a gift, software distributed for free or a nominal charge from a software manufacturer, or software acquired using other methods can be associated with a user account on an online store or shop. For example, Purchased software, software received as a gift, software distributed for free or a nominal charge from a software manufacturer, or software acquired using other methods can be associated with a user account on an online store or shop. This process can be termed “adoption” of software by the user account in the online store. This process can be termed "adoption" of software by the user account in the online store. By associating software with a user account on an online store, software updates and reinstallations can be downloaded from an online store, thus proving an easier, more convenient way of managing software on an electronic device. By associating software with a user account on an online store, software updates and reinstallations can be downloaded from an online store, osmanthus proving an easier, more convenient way of managing software on an electronic device. Furthermore, other computing devices associated with the user account can also receive software updates and reinstallations from the online store. Further More, other computing devices associated with the user account can ook receive software updates and reinstallations from the online store. The following description in FIGs. The following description of FIGs. 1 through 15 is applicable to pre-installed applications, software packages, and applications acquired through other means (such as gift, purchased, or otherwise distributed or acquired). 1 through 15 is applicable to pre-installed applications, software packages, and applications acquired through other Means (zoals gift, Purchased, or otherwise distributed or acquired). As such, the term "pre-installed application" as used herein can be used interchangeably with gifted application, purchased application, distributed application, acquired application, and others. As Such, the term "pre-installed application" as used hereinbefore can be used interchangeably with gifted application, Purchased application, distributed application, acquired application, and others. In other words, a "pre-installed application" can be any application where the user has a right of ownership. In otherwords, a "pre-installed application" can be any application where the user has a right of ownership. Similarly, the "unique hardware identifier" can be any unique identifier configured to provide proof of entitlement or ownership to an application installed on a computing device. Similarly, the "unique hardware identifier" can be any unique identifier configured to providence proof of ownership or entitlement to an application installed on a computing device. For example, the proof of entitlement can be a value that is unique for every copy of the application that is created. For example, the proof of entitlement can be a value that's unique for every copy of the application that's created. The proof of entitlement can also be a redemption code for redeeming an application. The proof of entitlement can be usefull a redemption code for redeeming an application. In other examples, the proof of entitlement can be a combination of a unique and non-unique values, such as combining a redemption code (which may not be unique) with a unique identifier associated with the user account (which is unique). In other examples, the proof of entitlement can be a combination of a unique and non-unique values, zoals combining a redemption code (Which May not be unique) with a unique identifier associated with the user account (All which is unique). A brief introductory description of a basic general purpose system or computing device, which can be employed to practice the concepts is illustrated in FIG. A brief introductory description of a basic general purpose system or computing device, Which can be employed to practice the concepts are illustrated in FIG. 1. A more detailed description of how the pre-installed software is associated with a user account will follow, including several variations as the various embodiments are set forth. 1. A more detailed description of how the pre-installed software is associated with a user account will follow, several at-including variations as the various embodiments are set forth. The disclosure now turns to FIG. The disclosure now turns to FIG. 1. 1.

[0028] With reference to FIG. [0028] With reference to FIG. 1, an exemplary system 100 includes a general-purpose computing device 100, including a processing unit (CPU or processor) 120 and a system bus 110 that couples various system components including the system memory 130 such as read only memory (ROM) 140 and random access memory (RAM) 150 to the processor 120. The system 100 can include a cache 122 of high speed memory connected directly with, in close proximity to, or integrated as part of the processor 120. The system 100 copies data from the memory 130 and/or the storage device 160 to the cache 122 for quick access by the processor 120. In this way, the cache provides a performance boost that avoids processor 120 delays while waiting for data. 1, an exemplary system 100 includes a general-purpose computing device 100,-including a processing unit (CPU or processor) 120 and a system bus 110 That couples various system components-including the system memory 130 zoals read only memory (ROM) 140 and random access memory (RAM) 150 to the processor 120. The system 100 can include a cache 122 of high speed memory connected directly with, in close proximity to, or integrated as part of the processor 120. The system 100 copies data from the memory 130 and / or the storage device 160 to the cache 122 for quick access by the processor 120. In this way, the cache Provides a performance boost That Avoids processor 120 delays while waiting for data. These and other modules can control or be configured to control the processor 120 to perform various actions. These and other modules can control or be configured to control the processor 120 to perform various actions. Other system memory 130 may be available for use as well. Other system memory 130 May be available for use as well. The memory 130 can include multiple different types of memory with different performance characteristics. The memory 130 can include multiple different types of memory with different performance characteristics. It can be appreciated that the disclosure may operate on a computing device 100 with more than one processor 120 or on a group or cluster of computing devices networked together to provide greater processing capability. It can be appreciated That the disclosure May operate on a computing device 100 with more than one processor 120 or on a group or cluster of computing devices networked together to providence greater processing capability. The processor 120 can include any general purpose processor and a hardware module or software module, such as module 1 162, module 2 164, and module 3 166 stored in storage device 160, configured to control the processor 120 as well as a special-purpose processor where software instructions are incorporated into the actual processor design. The processor 120 can include any general purpose processor and a hardware module or software module, zoals module 1162, module 2 164, and module 3 166 stored in storage device 160, configured to control the processor 120 as well as a special-purpose processor where software instructions are incorporated into the actual processor design. The processor 120 may essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache, etc. A multi-core processor may be symmetric or asymmetric. The processor 120 May Essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache, etc. A multi-core processor May be symmetric or asymmetric.

[0029] The system bus 110 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. [0029] The system bus 110 May be any or several at or types of bus structures-including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. A basic input/output (BIOS) stored in ROM 140 or the like, may provide the basic routine that helps to transfer information between elements within the computing device 100, such as during start-up. A basic input / output (BIOS) stored in ROM 140 or the like, May providence the basic routine that helps to transfer information between elements within the computing device 100, zoals during start-up. The computing device 100 further includes storage devices 160 such as a hard disk drive, a magnetic disk drive, an optical disk drive, tape drive or the like. The computing device 100 includes storage devices 160 Further Such as a hard disk drive, a magnetic disk drive, an optical disk drive, tape drive or the like. The storage device 160 can include software modules 162, 164, 166 for controlling the processor 120. Other hardware or software modules are contemplated. The storage device 160 can include software modules 162, 164, 166 for controlling the processor 120. Other hardware or software modules are contemplated. The storage device 160 is connected to the system bus 110 by a drive interface. The storage device 160 is connected to the system bus 110 by a drive interface. The drives and the associated computer readable storage media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the computing device 100. In one aspect, a hardware module that performs a particular function includes the software component stored in a non-transitory computer-readable medium in connection with the necessary hardware components, such as the processor 120, bus 110, display 170, and so forth, to carry out the function. The drives and the associated computer readable storage media providence nonvolatile storage of computer readable instructions, data structures, program modules and other data for the computing device 100. In one aspect, a hardware module That performs a particular function includes the software component stored in a non-transitory computer-readable medium in connection with The Necessary hardware components, Such as the processor 120, bus 110, display 170, and so forth, to carry out the function. The basic components are known to those of skill in the art and appropriate variations are contemplated depending on the type of device, such as whether the device 100 is a small, handheld computing device, a desktop computer, or a computer server. The basic components are known to the person of skill in the art and appropriateness variations are contemplated depending on the type of device, zoals Whether the device 100 is a small, handheld computing device, a desktop computer, or a computer server.

[0030] Although the exemplary embodiment described herein employs the hard disk 160, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, digital versatile disks, cartridges, random access memories (RAMs) 150, read only memory (ROM) 140, a cable or wireless signal containing a bit stream and the like, may also be used in the exemplary operating environment. [0030] Although the exemplary Embodiment described hereinbefore employs the hard disk 160, it Should be appreciated by the person skilled in the art That Other types of computer readable media which Can store data That Are accessible by a computer, Such as magnetic cassettes, flash memory cards, digital versatile disks, cartridges, random access memories (RAMs) 150, read only memory (ROM) 140, a cable or wireless signal containing a bit stream and the like, ook May be used in the exemplary operating environment. Non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se. Non-transitory computer-readable storage media Expressly exclude media zoals energy, carrier signals, electromagnetic waves, and signals per se.

[0031] To enable user interaction with the computing device 100, an input device 190 represents any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth. [0031] To enable user interaction with the computing device 100, an input device 190 represents any number of input mechanisms, Such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth. An output device 170 can also be one or more of a number of output mechanisms known to those of skill in the art. An output device 170 can be usefull one or more of a number of output mechanisms known to the person of skill in the art. In some instances, multimodal systems enable a user to provide multiple types of input to communicate with the computing device 100. The communications interface 180 generally governs and manages the user input and system output. In some instances, multimodal systems enable a user to providence multiple types of input to communicate with the computing device 100. The communications interface 180 gene rally Governs riding schools and the user input and system output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed. There is no restriction on operating on any particular hardware arrangement and Therefore the basic features here may easily be Substituted for improved hardware or firmware arrangements as They are developed.

[0032] For clarity of explanation, the illustrative system embodiment is presented as including individual functional blocks including functional blocks labeled as a "processor" or processor 120. The functions these blocks represent may be provided through the use of either shared or dedicated hardware, including, but not limited to, hardware capable of executing software and hardware, such as a processor 120, that is purpose-built to operate as an equivalent to software executing on a general purpose processor. [0032] For clarity of explanation, the illustrative system is presented as Embodiment-including individual functional blocks-including functional blocks labeled as a "processor" or processor 120. The functions thesis blocks represent May be provided through the use of either shared or dedicated hardware, -including, but not limited to, hardware capable of executing software and hardware, Such as a processor 120, that is purpose-built to operate as an equivalent to software executing on a general purpose processor. For example the functions of one or more processors presented in FIG. For example the functions of one or more processors presented in FIG. 1 may be provided by a single shared processor or multiple processors. 1 May be provided by a single shared processor or multiple processors. (Use of the term "processor" should not be construed to refer exclusively to hardware capable of executing software.) Illustrative embodiments may include microprocessor and/or digital signal processor (DSP) hardware, read-only memory (ROM) 140 for storing software performing the operations discussed below, and random access memory (RAM) 150 for storing results. (Use of the term "processor" should not be construed to refer Exclusively to hardware capable of executing software.) Illustrative embodiments May include microprocessor and / or digital signal processor (DSP) hardware, read-only memory (ROM) 140 for software malfunction performing the operations Discussed below, and random access memory (RAM) 150 for failure results. Very large scale integration (VLSI) hardware embodiments, as well as custom VLSI circuitry in combination with a general purpose DSP circuit, may also be provided. Very large scale integration (VLSI) hardware embodiments, as well as custom VLSI circuitry in combination with a general purpose DSP circuit, May usefull be provided.

[0033] The logical operations of the various embodiments are implemented as: (1) a sequence of computer implemented steps, operations, or procedures running on a programmable circuit within a general use computer, (2) a sequence of computer implemented steps, operations, or procedures running on a specific-use programmable circuit; [0033] The logical operations of the various embodiments are Implemented as: (1) a sequence of computer-implemented steps, operations, or procedures running on a programmable circuit within a general use computer, (2) a sequence of computer-implemented steps, operations , or procedures running on a specific-use programmable circuit; and/or (3) interconnected machine modules or program engines within the programmable circuits. and / or (3) interconnected machine modules or program engines within the programmable circuits. The system 100 shown in FIG. The system 100 shown in FIG. 1 can practice all or part of the recited methods, can be a part of the recited systems, and/or can operate according to instructions in the recited non-transitory computer-readable storage media. 1 can practice all or part of the recited methods, can be a part of the recited systems, and / or can operate According to instructions in the recited non-transitory computer-readable storage media. Such logical operations can be implemented as modules configured to control the processor 120 to perform particular functions according to the programming of the module. Such logical operations can be Implemented as modules configured to control the processor 120 to perform particular functions accordion thing to the programming of the module. For example, FIG. For example, FIG. 1 illustrates three modules Modi 162, Mod2 164 and Mod3 166 which are modules configured to control the processor 120. These modules may be stored on the storage device 160 and loaded into RAM 150 or memory 130 at runtime or may be stored as would be known in the art in other computer-readable memory locations. 1 illustrates three modules modes 162, Mod2 164 and Mod3 166 Which are modules configured to control the processor 120. These modules May be stored on the storage device 160 and loaded into RAM 150 or memory 130 at runtime or May be stored as would be known in the art in other computer-readable memory locations.

[0034] Having disclosed some components of a computing system, the disclosure now returns to a discussion of techniques for associating (which is analogous to linking or adopting) pre-installed software on a computing device such as a personal computer, laptop, game console, smart phone, mobile phone, or tablet PC to a user account in an online application distribution store or market. [0034] Having disclosed some components of a computing system, the disclosure now returns to a discussion of techniques for associating (All which is analogous to linking or Adopting) pre-installed software on a computing device zoals a personal computer, laptop, game console , smart phone, mobile phone, or tablet PC to a user account in an online application distribution store or market. The approaches set forth herein can improve the efficiency and convenience of upgrading or reinstalling pre-installed software onto a computing device by linking the pre-installed software to a user account on an online distribution site such as an online store or distribution center. The approaches set forth hereinbefore can Improve the efficiency and convenience of upgrading or reinstalling software pre-installed onto a computing device by linking the pre-installed software to a user account on an online distribution site zoals an online store or distribution center. The online distribution site transmits the pre-installed software associated with a user account to one or more computing devices that are linked to the user account. The online distribution site transmits the pre-installed software associated with a user account to one or more computing devices That are linked to the user account. The pre-installed software and updates to the preinstalled software can both be transmitted to the one or more computing devices. The preinstalled software and updates to the preinstalled software can both be Transmitted to the one or more computing devices. In some examples, the distribution site can specify a limit to the number of computing devices associated with a given user account that can receive software associated with the given user account. In some examples, the distribution site can Specify a limit to the number of computing devices associated with a user account've given That can receive software associated with the user account've given. In other examples, the pre-installed software is part of a standard 'image' that is generated once and replicated to each of a group of devices. In other examples, the pre-installed software is part of a standard 'image' that is generated once and replicated to each of a group of devices. For example, a standard device 'image' can include an operating system, drivers, programs, settings, and so forth. For example, a standard device 'image' can include an operating system, drivers, programs, settings, and so forth. Thus, each imaged device has an identical software configuration, including the pre-installed software, and after the end-user (or other entity) sets up the device, the pre-installed software can be adopted and associated with a user account in an online store or marketplace. Thus, each imaged device has an identical software configuration, zoals the pre-installed software, and after the end-user (or other entity) sets up the device, the pre-installed software can be is adopted and associated with a user account in an online store or marketplace.

[0035] FIG. [0035] FIG. 2 illustrates an exemplary application distribution system. 2 illustrates an exemplary application distribution system. In this example, distribution system 200 includes distribution center 210, applications database 220, configurations server 230, the Internet 250 or other network, computing device 260, computing device 270 and portable device 280. Together, distribution center 210, applications database 220, and configurations server 230 can represent different independent components of the server side 240 of a client-server model. In this example, distribution system 200 includes distribution center 210, 220 applications database, server configurations 230, the Internet 250 or other network, computing device 260, computing device 270 and portable device 280. Together, distribution center 210, database applications 220, and configurations server 230 can represent different independent components of the server side 240 of a client-server model. Similarly, computing device 260, computing device 270, and portable device 280 can represent different independent components on the client side 290 of the client-server model. Similarly, computing device 260, computing device 270, and portable device 280 can represent different independent components on the client side 290 of the client-server model. Thus, the broad overview of distribution system 200 includes server side 240 communicating with client side 290 via the Internet 250. As an example, the server side 240 can be represented to the user as an online store for the sale and distribution of applications or multiple cloud servers. Thus, the broad overview of distribution system 200 includes server side 240 communicating with client side 290 via the Internet 250. As an example, the server side 240 can be represented to the user as an online store for the sale and distribution of applications or multiple cloud servers. A device from client side 290 can communicate with the online store using an application management computer program stored on the device. A device from client side 290 can communicate with the online store using an application management computer program stored on the device. In other examples, the Internet 250 can be replaced with other communication networks such as computer networks, telephone networks, Ethernet, local area networks, wired networks, wireless networks, and others. In other examples, the Internet 250 can be Replaced with other communication networks zoals computer networks, telephone networks, Ethernet, local area networks, wired networks, wireless networks, and others.

[0036] Computing device 260 can include applications 261. Applications 261 can include applications that were pre-installed on computing device 260, provided as part of a package, or for which some kind of installation media was provided. [0036] Computing device 260 can include applications 261. Applications 261 can include applications That Were pre-installed on computing device 260, provided as part of a package, or for some Which child or installation media was provided. In one common scenario, the owner of computing device 260 purchased the computing device 260 from the manufacturer with these applications already installed. In one common scenario, the owner or computing device 260 Purchased the computing device 260 from the manufacturer thesis with applications already installed. Applications 261 can also include applications (or software packages) that were acquired by computing device 260 through other means such as applications that were gifted, purchased, or freely distributed, to name a few. Applications 261 can include usefull applications (or software packages) That Were acquired by computing device 260 through other applications zoals Means That Were gifted, Purchased, or freely distributed, to name a few. Applications 261 can also include applications that were purchased from distribution center 210 by a user of computing device 260. To purchase desired applications from distribution center 210, a user logs into user account 291, which contains metadata associated with applications that the user has already purchased and metadata associated with payment information for making payments to distribution center 210 in exchange for desired applications. Applications 261 can include applications ook That Were Purchased from distribution center 210 by a user or computing device 260. To purchase Desired applications from distribution center 210, a user logs into user account 291, Which contains metadata associated with applications That the user has already Purchased and metadata associated with payment information for making payments to distribution center 210 in exchange for Desired applications. Once logged in, the user may select a desired application to purchase. Once logged in, the user May select a Desired application to purchase. When the user agrees to pay the purchase price of the application, the user's payment information is used to complete the transaction. When the user Agrees to pay the purchase price of the application, the user's payment information is used to complete the transaction. Once the transaction is completed, the desired application is associated with user account 291, thus allowing the user to download the desired application and also updates of the desired application. Once the transaction is completed, the Desired application is associated with user account 291, osmanthus-allowing the user to download the application and usefull Desired Desired updates of the application. Applications associated with user account 291 can also be updated or re-downloaded onto other devices that are associated with user account 291. Applications associated with user account 291, Can also be updated or re-downloaded onto other devices That Are associated with user account 291.

[0037] In some examples, the user can have the option to not associate the application with the user account at this point in time. [0037] In some examples, the user can have the option to not associate the application with the user account at this point in time. For example, a user who receives an application as a gift may not have a user account or wish to associate the application with his user account. For example, a user who these receives an application as a gift May not have a user account or wish to associate the application with his user account. In the first scenario, computing device 260 can allow the user to install the application without requiring the user set up a user account. In the first scenario, computing device 260 can allow the user to install the application without requiring the user set up a user account. If the user wishes to receive updates or install the application on other electronic devices he owns, then the user can elect a user account and link (ie, adopt) the application with his user account. If the user wishes to receive updates or install the application on other electronic devices he owns, then the user can elect a user account and link (ie, adopt) the application with his user account. In this example, computing device 260, computing device 270, and portable device 280 are all associated with user account 291 and thus, are configured to receive updates and re-downloads of all applications that have been associated with user account 291. Moreover, portable device 280 can communicate with computing device 270 to transfer digital data and applications between the two devices. In this example, computing device 260, computing device 270, and portable device 280 are all associated with user account 291 and osmanthus, are configured to receive updates and re-downloads of all applications thathave leg associated with user account 291. Moreover, portable device 280 can communicate with computing device 270 to transfer digital data and applications between the two devices. In one example, computing device 270 may be configured to be a central repository containing all applications associated with user account 291 and transfer selected applications to portable device 280. In this specification, the term "application" refers to a copy of a software program or application provided by a software provider. In one example, computing device 270 May be configured to be a central repository containing all applications associated with user account 291, and transfer selected applications to portable device 280. In this specification, the term "application" Refers to a copy of a software program or application provided by a software provider. In other examples, other digital products besides software applications and software programs (such as system software, enterprise software, multimedia files, video files, audio files, and image files) that were initially pre-installed on a computing device, such as software applications where the user has a right of ownership, can also be associated with user account 291 and distributed/re-distributed by distribution center 210. In other examples, other digital products besides software applications and software programs (zoals system software, enterprise software, multimedia files, video files, audio files, and image files) That Were Initially pre-installed on a computing device, zoals software applications where the user has a right of ownership, Can also be associated with user account 291 and distributed / re-distributed by distribution center 210.

[0038] Distribution center 210, which is coupled to applications database 220, is configured to sell, deliver, and maintain applications from applications database 220. Applications database 220 can be configured to store some or all of the applications available for distribution from server side 240. The applications can be sold, updated, and delivered (ie, transmitted) to a device in client side 290 through the Internet 250. As such, distribution center 210 represents an online store for applications. [0038] Distribution Center 210-which is coupled to database applications 220 is configured to sell, deliver, and maintain applications from database applications 220. Applications database 220 can be configured to store some or all of the applications available for distribution from server side 240. The applications can be sold, updated, and delivered (ie, transmitted) to a device on the client side 290 through the Internet 250. As Such, distribution center 210 represents an online store for applications. For example, applications database 220 can receive a request from distribution center 210 for an application and in response to the request, transmits the requested application to distribution center 210, which subsequently transmits the application to the requesting device. For example, database applications 220 can receive a request from distribution center 210 for an application and in response to the request, transmits the requested application to distribution center 210, How many followers Subsequently transmits the application to the Requesting device. The applications requested may be applications available for purchase or applications previously associated with a user account (ie, separately acquired or pre-installed applications that have been adopted). The applications requested May be available for purchase applications or applications previously associated with a user account (ie, acquired separately or pre-installed applications have been That is adopted). In other examples, applications database 220 can directly transmit the requested application to the requesting device. In other examples, applications database 220 can directly transmit the requested application to the Requesting device. In yet other examples, applications database 220 can reside on the client side 290 where the server side 240 can grant access to particular applications of applications database 220 based on applications associated with the user account. In yet other examples, applications database 220 can reside on the client side 290 where the server side 240 can grant access to particular applications or database applications 220 based on applications associated with the user account.

[0039] A device of client side 290 can transmit a software adoption request to link (ie, associate or adopt) a pre-installed application or otherwise acquired but not adopted application on the device with a user account. [0039] A device or client side 290 can transmit a request-to-software adoption link (ie, associate or adopt) a pre-installed application or otherwise acquired is adopted but not application on the device with a user account. Linking an application allows the user to associate the application with a user account, thus allowing the user to download the application to other devices also associated with the same user account. Linking an application Allows the user to associate the application with a user account, osmanthus-allowing the user to download the application to other devices ook associated with the same user account. This process can be called “linking”, “adopting”, or “associating” an application. This process can be called "linking," "Adopting", or "associating" an application. For example, computing device 260 can request to link an application from applications 261 with user account 291. The request can be transmitted along with a unique identifier associated with the application or computing device 260 (eg, unique hardware identifier) to distribution center 210 via the Internet 250 to determine whether the application can be associated with user account 291. A unique hardware identifier is a unique identifier based upon hardware of the device that is used to distinguish a particular device from all other devices. For example, computing device 260 can request to link an application from 261 applications with user account 291. The request can be TRANSMITTED alongwith a unique identifier associated with the application or computing device 260 (eg, a unique hardware identifier) ​​to distribution center via 210 the Internet 250 to determining whether the application can be associated with user account 291. a unique hardware identifier is a unique identifier based upon the hardware or device that's used to distinguish a particular device from all other devices. For example, a manufacturer can ensure that each device manufactured includes a unique hardware identifier that is unique and thus different than the unique hardware identifier of any other device. For example, a manufacturer can ensure That Manufactured each device includes a unique hardware identifier that's unique and different than the osmanthus unique hardware identifier or any other device. As an example, a unique hardware identifier can be based upon the logic board serial number and/or the Ethernet hardware address of the device. Ash an example, a unique hardware identifier can be based upon the logic board serial number and / or the Ethernet hardware address of the device. In one example, these two values can be concatenated and hashed to generate the unique hardware identifier. In one example, thesis two values ​​can be concatenated and hashed to generate the unique hardware identifier. In other examples, other metadata specific to the device may be concatenated, hashed, or otherwise combined using a variety of data manipulation algorithms the form the unique hardware identifier. In other examples, other metadata specific to the device May be concatenated, hashed, or otherwise combined using a variety of data manipulation algorithms the form the unique hardware identifier. In yet other examples, the unique identifier used to determine whether the application can be associated with user account 291 can be based on any other proof of purchase or entitlement that can serve as evidence that the application (ie, software package) associated with the unique identifier was legally acquired from the software manufacturer. In yet other examples, the unique identifier used to determining Whether the application can be associated with user account 291 can be based on any other proof of purchase or entitlement That can serve as evidence That the application (ie, software package) associated with the unique identifier was legally acquired from the software manufacturer. In one instance, the unique identifier can be derived from metadata or attributes associated with the application. In one instance, the unique identifier can be derived from metadata or attributes associated with the application. In another instance, the unique identifier can be derived from metadata associated with the application, the client device, the user account, other client devices that are associated with the user account, or a combination of one or more of the above. In another instance, the unique identifier can be derived from metadata associated with the application, the client device, the user accounts and other client devices That are associated with the user account, or a combination of one or more of the above.

[0040] In one embodiment, the distribution center 210 receives the unique identifier, and processes or analyzes the unique identifier to determine whether the application can be associated with a user account. [0040] In one embodiment, the aforementioned the distribution center 210 Receives the unique identifier, and processes or Analyzes the unique identifier to determining Whether the application can be associated with a user account. In certain scenarios, the application cannot be associated with a user account. In certainement scenarios, the application can not be associated with a user account. For example, an application of a device may not be associated with a user account if the application has previously been associated with another user account. For example, an application of a device May not be associated with a user account if the application has previously leg associated with another user account. As another example, an application may not be able to be associated with a user account if the application is not an authorized copy. As another example, an application May not be printable to be associated with a user account if the application is not an authorized copy. This may occur when a user manually copies an application that was originally installed on one device onto another device. This May Occur When a user manually copies an application tat was originally installed on one device onto another device. As yet another example, the association process can require that a user be logged into the user's account on an electronic device for an application to be linked to a user account. Ash yet another example, the association process can require That a user be logged into the user's account on an electronic device for an application to be linked to a user account.

[0041] In another embodiment, the distribution center 210 receives a unique identifier and processes or analyzes the unique identifier to determine whether the application can be associated with a user account. [0041] In another embodiment, the aforementioned the distribution center 210 these receives a unique identifier and processes or Analyzes the unique identifier to determining Whether the application can be associated with a user account. As an example, processing the unique identifier can include verifying the unique identifier by comparing the unique identifier to a database. Ash an example, processing the unique identifier can include verifying the unique identifier by comparing the unique identifier to a database. The database can have a plurality of entries each storing a unique identifier associated with an authorized copy of the application. The database can have a Plurality of entries each failure a unique identifier associated with an authorized copy of the application. The result of the comparison can be used to determine an adoption status of the application, such as whether the application is a valid copy, the application is an invalid copy, or whether the application has already been associated with a user account. The result of the comparison can be used to determining an adoption status of the application, zoals Whether the application is a valid copy, the application is an invalid copy, or Whether the application has already leg associated with a user account. As another example, processing the unique identifier can include inputting the unique identifier into a hash table to determine the adoption status of the application. Axis another example, processing the unique identifier can include inputting the unique identifier into a hash table to determining the status of the adoption application. In yet another example, the unique identifier can be received as an input to a verification engine, which determines whether this installation of the application is valid and not yet adopted. In yet another example, the unique identifier can be received as an input to a verification engine, Which Determines Whether this installation of the application is valid and not yet adopted. In yet other examples, other data processing techniques can be applied to the unique identifier to determine whether the application can be associated with a user account. In yet other examples, other data processing techniques can be applied to the unique identifier to determining Whether the application can be associated with a user account. The application can be recently acquired by the user. The application can be recently acquired by the user. In other words, the application can have been acquired by the user after purchase and receipt of the electronic device from distribution or manufacturing. In otherwords, the application can have been acquired by the user after purchase and receipt of the electronic device from distribution or manufacturing. Alternatively, the application can be acquired when the electronic device was purchased. Alternatively, the application can be acquired When the electronic device was Purchased. Once the adoption status has been determined by the distribution center 210, a confirmation according to the adoption status can be transmitted to the electronic device. Once the adoption status has leg Determined by the distribution center 210, a confirmation accordion thing to the adoption status can be TRANSMITTED to the electronic device. The confirmation can be transmitted to inform the electronic device the status of the adoption process. The confirmation can be TRANSMITTED to inform the electronic device the status of the adoption process. Based on the confirmation, the electronic device can request download of the software package or an update of the software package. Based on the confirmation, the electronic device can request download of the software package or an update of the software package. In other examples, distribution server 210 can automatically begin the process of downloading the software package or an update of the software package to the electronic device according to the adoption status. In other examples, distribution server 210 can automatically start the process of downloading the software package or an update of the software package to the electronic an apparatus according to the adoption status.

[0042] Server side 240 may incorporate a number of servers and tables to determine whether the link request should be authorized. [0042] Server side 240 May Incorporate a number of servers and tables to determining Whether the link request shouldering be authorized. For example, distribution center 210 includes uniqueness server 211 which is configured to process the unique identifier to determine the validity or legitimacy of a link request. For example, distribution center 210 includes uniqueness server 211-which is configured to process the unique identifier to determining the validity or legitimacy of a link request. Uniqueness server 211 can include a uniqueness table configured to maintain a database or table of electronic devices that have had one or more pre-installed applications linked with a user account. Uniqueness server 211 can include a uniqueness table configured to maintain a database or table or electronic devices thathave had one or more pre-installed applications linked with a user account. As an example, the uniqueness table can be configured to store the unique hardware identifier of devices that have already linked their pre-installed applications with a user account (ie, devices that have already adopted the pre-installed applications associated with the device). As an example, the uniqueness table can be configured to store the unique hardware identifier or devices thathave already linked Their pre-installed applications with a user account (ie, devices thathave already is adopted the pre-installed applications associated with the device). The uniqueness table can also be configured to store metadata associated with applications that have been associated with a user account. The uniqueness ook table can be configured to store metadata associated with applications thathave leg associated with a user account. When a device adopts (ie links) some or all of its applications with a user account, the device's unique hardware identifier or the unique identifiers of the adopted applications are stored within the uniqueness table. When a device Adopts (ie left) some or all of its applications with a user account, the device's unique hardware identifier or the unique identifiers of the applications is adopted are stored within the table uniqueness. This prevents future requests to link applications that have already been adopted. This Prevents future requests to link applications thathave leg already adopted. For example, performing a query on whether a unique identifier is in the uniqueness table determines if the device associated with the unique hardware identifier has already linked its pre-installed applications with a user account. For example, performing a query on Whether a unique identifier is unique in the table, and effects Determines if the device associated with the unique hardware identifier has already linked its pre-installed applications with a user account. Similarly, the query can also determine if the application associated with the unique identifier has already been linked with a user account. Similarly, the query can usefull determining if the application associated with the unique identifier has already leg-linked with a user account. An another example, the uniqueness table can be configured to store the unique hardware identifier of an electronic device along with metadata associated with one or more pre-installed applications of the electronic device that has been previously adopted (ie, linked with a user account). An another example, the uniqueness table can be configured to store the unique hardware identifier of an electronic device along with metadata associated with one or more pre-installed applications of the electronic device That has leg previously is adopted (ie, linked with a user account) . In other words, the uniqueness table is configured as a one-to-many mapping between a unique hardware identifier of a device and one or more pieces of metadata associated with pre-installed applications of the device that have been selectively adopted. In otherwords, the uniqueness table is configured as a one-to-many mapping between a unique hardware identifier of a device and one or more pieces of metadata associated with pre-installed applications of the device have been That Selectively adopted. Querying the uniqueness table for a unique hardware identifier can return nothing if the unique hardware identifier does not exist in the uniqueness table and can return metadata associated with pre-installed applications that have been selectively adopted if the unique hardware identifier does exist in the uniqueness table. Querying the uniqueness table for a unique hardware identifier can return nothing if the unique hardware identifier does not exist in the uniqueness table and can return metadata associated with pre-installed applications thathave leg Selectively is adopted if the unique hardware identifier does exist in the unique native table . This can result in the ability to selectively adopt a pre-installed application on a device with a first user account and another pre-installed application on the device with a second user account. This can result in the ability to selectively adopt a pre-installed application on a device with a first user account and another pre-installed application on the device with a second user account. In yet other examples, the uniqueness table can be configured to maintain a database or table of applications that have been linked to a user account. In yet other examples, the uniqueness table can be configured to maintain a database or table of applications thathave leg linked to a user account. Applications that have already been linked can have a unique identifier stored in the uniqueness table, thereby maintaining an up to date database of applications that have been adopted. Applications thathave already linked bone can have a unique identifier stored in the table uniqueness, Thereby Maintaining an up to date database of applications thathave leg adopted.

[0043] In an example, configurations server 230 can verify the validity of the link request by checking the original configuration of the electronic device to verify or determine that a specific application was pre-installed on the electronic device when the device left the manufacturer. [0043] In an example, configurations server 230 can verify, the validity of the link request by checking the original configuration of the electronic device to verify, or determining That a specific application was pre-installed on the electronic device When the device left the manufacturer. The configurations server can also verify or identify applications that the user has a right of ownership, regardless of whether the application has been installed on the user device or associated with the user account. The server configurations can ook verifydata or identify applications That the user has a right of ownership, regard less of Whether the application has been installed on the user or device associated with the user account. Thus, applications that the user has a right of ownership but has not associated or installed can also be identified. Thus, applications That the user has a right of ownership but has not associated or installed ook can be identified. Configurations server 230 includes a database that stores the original configuration of electronic devices created by the manufacturer. Configurations 230 server includes a database That stores the original configuration of electronic devices created by the manufacturer. The original configuration can include the version of the operating system and the version of the applications, if any, that were delivered with the electronic device. The original configuration can include the version of the operating system and the version of the applications, if any, that were delivered with the electronic device. For instance, a user ordering an electronic device through an online store can configure the device with one or more applications at time of purchase. For instance, a user ordering an electronic device through an online store can configure the device with one or more applications at time of purchase. The applications are installed on the electronic device by manufacturing based on the configuration at time of purchase. The applications are installed on the electronic device by manufacturing based on the configuration at time of purchase. Manufacturing communicates the configuration of the electronic device to the configurations server 230 for subsequent look up. Manufacturing Communicates the configuration of the electronic device to the server configurations for 230 Subsequent look up. When configurations server 230 receives a look up request containing a unique hardware identifier from an electronic device, configurations server 230 performs a search or query on the database and returns the version of the operating system installed on the device and/or a list containing the version of applications that were installed on the electronic device. When configurations server 230 Receives a look up request containing a unique hardware identifier from an electronic device, configurations server 230 performs a search or query on the database and returns the version of the operating system installed on the device and / or a list containing the version That were or applications installed on the electronic device. Configurations server 230 can compare the list of installed applications with the application the user is attempting to associate with the user account to determine whether the application the user is attempting to associate is an authorized install or has been previously associated with another user account. Configurations server 230 can compare the list of installed applications with the application the user is attempting to associate with the user account to determining Whether the application the user is attempting to associate is an authorized installing or leg has previously associated with another user account. Alternatively, configurations server 230 can pass the list of pre-installed applications to distribution center 210 to determine whether the link request should be granted. Alternatively, server configurations 230 can pass the list of pre-installed applications to distribution center 210 to determining Whether the link request shouldering be Granted. This check can prevent users from attempting to circumvent distribution system 200 by copying pre-installed applications from one device to another. This check can preventinfo users from attempting to circumvent distribution system 200 by copying pre-installed applications from one device to another.

[0044] Once one or more elements of server side 240 validate the link request, the preinstalled application is associated with the user account (ie, application adoption). [0044] Once one or more elements of server side 240 validate the link request, the preinstalled application is associated with the user account (ie, adoption application). Moreover, uniqueness server 211 or configurations server 230 can be updated to take into account the application adoption. Moreover, uniqueness server 211 or 230 server configurations can be updated to take into account the adoption application. For example, a new entry can be added into the uniqueness table of uniqueness server 211 since some or all of the pre-installed applications associated with the electronic device have been adopted. For example, a new entry can be added into the table, and effects a unique, or unique, and effects server 211 since some or all of the pre-installed applications associated with the electronic device have been adopted. In some examples, distribution center 210 can transmit an update of the pre-installed application to computing device 260 after the preinstalled application is associated with the user account. In some examples, distribution center 210 can transmit an update of the preinstalled application to computing device 260 after the preinstalled application is associated with the user account. In other examples, distribution center 210 can transmit the pre-installed application to other devices associated with the user account, such as computing device 270, even though computing device 270 was not originally configured with the pre-installed application. In other examples, distribution center 210 can transmit the pre-installed application to other devices associated with the user account, zoals computing device 270, eventhough computing device 270 was not originally configured with the pre-installed application. Through similar requests for application adoption, pre-installed applications of computing device 270 stored in applications 271 and pre-installed applications of portable device 280 stored in applications 281 can be associated with user account 291 and ultimately distributed to computing device 260, computing device 270, and/or portable device 280. Through similar requests for application adoption, pre-installed applications or computing device 270 stored in the applications 271 and pre-installed applications or portable device 280 stored in the applications 281 can be associated with user account 291 and Ultimately distributed to computing device 260, computing device 270 , and / or portable device 280.

[0045] FIG. [0045] FIG. 3 illustrates an exemplary client-server system. 3 illustrates an exemplary client-server system. Client-server system 300 includes client device 350 and server 360. Server 360 can be configured to respond to requests from client device 350 and can include one or more elements from server side 240 of FIG. Client-server system 300 includes client device 350 and server 360. Server 360 can be configured to respond to requests from client device 350 and can include one or more elements from server side 240 or FIG. 2. Client device 350 can associate applications (either pre-installed or otherwise acquired) with a user account by submitting page requests to server 360. Client device 350 can also associate other applications with a user account by submitting the same or similar page requests to server 360 as in the scenario of pre-installed applications. 2. Client device 350 can associate applications (either pre-installed or otherwise acquired) with a user account by submit ting page requests to server 360. Client device 350 can ook associate other applications with a user account by submit ting the same or similar page requests to server 360 as in the scenario, or pre-installed applications.

[0046] One type of page request is an updates page request 301. Updates page request 301 can be a request transmitted to server 360 to perform a query for available application updates. [0046] One type of page request is an update request page 301. Updates page request 301 can be a Transmitted request to server 360 to perform a query for available application updates. In response to updates page request 301, server 360 can return HyperText Markup Language ("HTML") page 303 configured to inform the user of applications stored in client device 350 that have an update available. In response to updates page request 301, server 360 can return Hypertext Markup Language ( "HTML") page 303 configured to inform the user or applications stored in client device 350 thathave an update available. In some examples, server 360 can return metadata to client device 350, which in turn generates the HTML page to present to the user. In some examples, server 360 can return metadata to client device 350, Which in turn generating links the HTML page to present to the user. Updates page request 301 can include a digital receipt for each application stored in client device 350. The receipt contains metadata related to the application for documenting a purchase or ownership of the software. Updates page request 301 can include a digital receipt for each application stored in the client device 350. The receipt contains metadata related to the application for documenting a purchase or ownership of the software. One type of receipt is a real receipt, which are associated with purchased applications or applications that have been adopted. One type of receipt is a real receipt, Which are associated with Purchased applications or applications thathave leg adopted. The real receipt can include a description of the application, the version number of the application, when the application was purchased, information relating to who purchased the application, information relating to the device that the application was initially installed on, and others. The real receipt can include a description of the application, the version number of the application, When the application was Purchased, information Relating to who purchased the application, information Relating to the device That the application was installed on Initially, and others. In other words, the real receipt is a proof of purchase that is unique to the purchaser and/or the electronic device that the application was purchased on. In otherwords, the real receipt is a proof of purchase that's unique to the purchaser and / or the electronic device That the application was Purchased on. Another type of receipt is a stub receipt. Another type is a stub or receipt receipt. Stub receipts contain a subset of the information in real receipts and are part of application when the application has not been adopted with a user account. Stub receipts contain a subset of the information in real receipts and are part of application When the application has not leg is adopted with a user account. In one example, a stub receipt uniquely identifies this copy of the application from other copies. In one example, a receipt stub uniquely Identifies this copy of the application from other copies. This can allow the server to determine whether this particular copy of the application (which may be gifted to the user or otherwise acquired by the user) can be adopted by the user. This can allow the server to determining Whether this particular copy of the application (Which May be gifted to the user or otherwise acquired by the user) can be is adopted by the user. In another example, stub receipts are generated by the manufacturer as receipts to be associated with pre-installed applications. In another example, stub receipts are generated by the manufacturer as receipts to be associated with pre-installed applications. In order to expedite and simplify the installation of applications by the manufacturer, the stub receipts can include a minimal amount of information which is less than in real receipts. In order to expedite and simplify the installation of applications by the manufacturer, the stub receipts can include a minimal amount of information-which is less than in real receipts. For example, the stub receipts can include an application identifier that identifies the application to the server and also a version number that identifies the version of the application. For example, the stub receipts can include an application identifier That Identifies the application to the server and a version number ook That Identifies the version of the application. The application identifier can be a name associated with the application. The application identifier can be a name associated with the application. The stub receipt may not include information specific to the purchaser such as when the application was purchased and information relating to who purchased the application or what device the pre-installed application was installed on. The receipt stub May not include information specific to the purchaser zoals When the application was Purchased and information Relating to who purchased the application or what the device pre-installed application was installed on. In other words, the stub receipt may not contain user accounts, user account information, or information relating to the client device, computing device, or other device. In otherwords, the receipt stub May not contain user accounts, user account information, or information Relating to the client device, computing device, or other device. The application identifier can be a name associated with the pre-installed application. The application identifier can be a name associated with the pre-installed application. In some examples, stub receipts are generated by the manufacturer when the applications are being pre-installed on the device or the device is being prepared for delivery. In some examples, stub receipts are generated by the manufacturer When the applications are being pre-installed on the device or the device is being prepared for delivery. In other examples, the stub receipts can be generated by server 260 and subsequently transmitted to client device 350 to be associated with a pre-installed application. In other examples, the stub receipts can be generated by server 260 and Subsequently TRANSMITTED to client device 350 to be associated with a pre-installed application. Server 360 can generate the stub receipts in response to a request by client device 350 or periodically scheduled communications between server 360 and client device 350. Once a pre-installed application is adopted, the stub receipt can be replaced with a real receipt. Server 360 can generate the stub receipts in response to a request by client device 350 or Periodically scheduled communications between server 360 and client device 350. Once a pre-installed application is is adopted, the receipt stub can be Replaced with a real receipt. In another example, the stub receipt is generated as a receipt to be associated with a purchased, gifted, or otherwise acquired application that was not associated with a client device when the application was acquired. In another example, the stub receipt is generated as a receipt to be associated with a Purchased, gifted, or otherwise acquired application tat was not associated with a client device When the application was acquired. This stub receipt can be generated by the manufacturer, application distributor, online store, or other. This stub receipt can be generated by the manufacturer, distributor application, online store, or other. In some cases, the stub receipts can be batch processed and assigned to applications for distribution. In some cases, the stub receipts can be batch processed and assigned to applications for distribution. The stub receipts are saved on the server and used to authenticate adoption requests. The stub receipts are saved on the server and used to authenticate adoption requests. As in the previous example, the stub receipt can be replaced with a real receipt during the application adoption process. As in the previous example, the stub receipt can be Replaced with a real during the application receipt adoption process. The real receipt can be generated by client device 350, server 360, or other element in client-server system 300. The real receipt can be generated by client device 350, server 360, or other element in client-server system 300.

[0047] In this example, updates page request 301 includes stub receipt A 311 associated with pre-installed application 310, stub receipt B 321 associated with pre-installed application 320, and real receipt 331 associated with application 330. Application 330 was purchased from server 360 after the purchase of client device 350 and thus includes a real receipt. [0047] In this example, updates page request 301 includes stub receipt A 311 associated with pre-installed application 310, stub receipt B 321 associated with pre-installed application 320, and real receipt 331 associated with application 330. Application 330 was Purchased from server 360 after the purchase or client device 350 includes a real receipt and osmanthus. In response to updates page request 301, server 360 generates HTML 303 that informs the user if pre-installed application 310, pre-installed application 320, or application 330 have an update available that can be downloaded from server 360. An available update associated with a pre-installed application that has not been adopted (ie, linked or associated with a user account) cannot be downloaded until the pre-installed application has been adopted to the user account. In response to updates page request 301, server 360 gene rates HTML 303 That INFORMS the user if pre-installed application 310, pre-installed application 320, or application 330 have an update available That can be downloaded from server 360. An available update associated with a pre-installed application has not That leg is adopted (ie, linked or associated with a user account) can not be downloaded until the pre-installed application has leg is adopted to the user account. Once the available update is downloaded and installed on client device 350, the stub receipt can be replaced with a real receipt that includes other metadata such as when the application was purchased (ie, date that the available update was installed), the user that purchased it, and the electronic device that the application was initially installed on. Once the available update is downloaded and installed on client device 350, the stub receipt can be Replaced with a real receipt That includes other metadata zoals When the application was Purchased (ie, date That the available update was installed), the user That Purchased it, and the electronic device That the application was installed on Initially.

[0048] Another type of page request is purchases page request 302. Purchases page request 302 can be transmitted to server 360 to request a list of applications that have been purchased by the user of client device 350. In response to the request, Server 360 can return HTML page 303 configured to inform the user of applications that have been purchased by the user of client device 350 and optionally the applications that have been installed in client device 350. Purchased applications not stored in client device 350 can be downloaded and installed. [0048] Another type of page request is Purchases page request 302. Purchases page request 302 can be Transmitted to server 360 to request a list of applications thathave leg Purchased by the user or client device 350. In response to the request, server 360 can return HTML page 303 configured to inform the user or applications thathave leg Purchased by the user or client device 350 and optionally the applications thathave been installed in client device 350. Purchased applications not stored in the client device 350 can be downloaded and installed. HTML page 303 can also include applications that are available for adoption (ie, linking or associating with a user account). HTML page 303 can include applications usefull That Are available for adoption (ie, linking or associating with a user account). Applications on the client device that have not been associated with a user account can be selected for adoption through updates page request 301 or alternatively purchases page request 302. The unadopted applications can transmit receipts or other forms of proof of entitlement in a request to install the application or a desired application on the client device. Applications on the client device thathave leg not associated with a user account can be selected for adoption through updates page request 301 or alternatively request Purchases page 302. The unadopted applications can transmit receipts or other forms of proof of entitlement to a request to install the application or a Desired application on the client device.

[0049] Purchases page request 302 can include manifest 340. Manifest 340 can be configured to store information associated with pre-installed applications or applications otherwise acquired. [0049] Purchases page request 302 can include manifest 340. Manifest 340 can be configured to store information associated with pre-installed applications or applications otherwise acquired. This information can be used by server 360 to inform the user of applications that are available for adoption. This information can be used by server 360 to inform the user or applications That are available for adoption. Manifest 340 includes a list, table, or other data structure configured to store the version number of applications in client device 350. The version number of the application can be found in a stub receipt or other metadata associated with the application. Manifest 340 includes a list, table, or other data structure configured to store the version number of applications in client device 350. The version number of the application can be found in a receipt stub or other metadata associated with the application. In one example, manifest 340 is generated the first time client device 350 starts up. In one example, manifest 340 is generated the first time client device 350 starts up. For example, the manifest can be generated during the first boot of a client device by utilizing a spotlight (ie, search) function on the client device to search the computer for stub receipts, which are subsequently used to generate the manifest. For example, the manifest can be generated during the first boot of a client device by Utilizing a spotlight (ie, search) function on the client device to search the computer for stub receipts, How many followers Subsequently are used to generate the manifest. The manifest can be stored in a configurations server to be accessed during linking of an application with a user account or during recovery mode of the electronic device as will be discussed below. The manifesto can be stored in a server configurations to be accessed during or linking an application with a user account or during recovery mode of the electronic device as will be Discussed below.

[0050] In this example, client device 350 is queried to locate stub receipt 311 and stub receipt 321, which are subsequently used to generate manifest 340. During reformat or recovery of client device 350, both pre-installed and otherwise acquired applications can be deleted from the client device 350. Applications that have been linked with a user account can be re-downloaded to client device 350. However, pre-installed applications that have not been linked with a user account risk being lost completely. [0050] In this example, client device 350 is queried to locate stub receipt 311 and stub receipt 321, Which are Thereupon used to generate manifest 340. During reformat or recovery, or client device 350, both pre-installed and otherwise acquired applications can be deleted from the client device 350. Applications That have been linked with a user account can be re-downloaded to client device 350. However, pre-installed applications thathave bone not linked with a user account risk being lost completely. Manifest 340 serves as a mechanism to prevent loss of applications that have not been adopted as will be described in further detail below. Manifest 340 functioning as the mechanism to preventinfo loss or applications thathave not bone shaft is adopted will be described in Further detail below. An application available for adoption cannot be downloaded until the pre-installed application has been linked or associated with the user account. An application available for adoption can not be downloaded until the pre-installed application has leg-linked or associated with the user account. Once the available update is downloaded and installed on client device 350, manifest 340 can be edited to remove the stub receipt associated with the presently adopted application. Once the available update is downloaded and installed on client device 350, manifest 340 can be edited to remove the stub receipt associated with the application presently is adopted. Furthermore, the installed application contains a real receipt. Further More, the installed application contains a real receipt. In some examples, the generation of updates page request 301 and purchases page request 302 along with the processing and retrieval of HTML page 303 are managed and handled by an application management program (not shown) installed in client device 350. The application management program can be proprietary to the manufacturer and be configured to specifically communicate with servers belonging to the manufacturer. In some examples, the generation or updates page request 301 and 302 Purchases page request alongwith the processing and retrieval of HTML page 303 are managed and handled by an application management program (not shown) installed in the client device 350. The application management program can be proprietary to the manufacturer and be configured to communicate with servers Specifically belonging to the manufacturer.

[0051] Client-Server system 300 can also adopt applications that are acquired by client device 350 but not associated with a user account (e g., gifted, purchased but not linked to a user account, or distributed to the client device through other means). [0051] Client-Server System 300 can ook adopt applications That Are acquired by client device 350 but not associated with a user account (e g., Gifted, Purchased but not linked to a user account, or distributed to the client device through other means). As an example, an acquired application can be linked with a user account through an updates page request, purchases page request, or other page request. As an example, an acquired application can be linked with a user account through an updates page request, Purchases page request, or other page request. The request can include a stub receipt or metadata associated with or derived from the stub receipt. The request can include a receipt stub or metadata associated with or derived from the receipt stub. As another example, manifest 340 can be updated when unadopted applications (ie, applications not yet linked with a user account) are acquired by client device 350. As another example, manifest 340 can be updated When unadopted applications (ie, applications not yet linked with a user account) are acquired by client device 350.

[0052] FIG. [0052] FIG. 4 illustrates an exemplary method for processing an updates page request. 4 illustrates an exemplary method for processing an update request page. Method 400, which illustrates actions performed by a client and a server, can be configured to manage the communications between the client and the server during an updates page request. Method 400, Which illustrates actions ormed by a client and a server can be configured to manage the communications between the client and the server during an update page request. The actions performed by the server can be executed by a distribution program stored on the distribution center or other component located on the server side while the actions performed by the client can be executed by an applications management program stored on an electronic device of the client. The actions ormed by the server can be executed by a distribution program stored on the distribution center or other component located on the server side while the actions ormed by the client can be executed by an application management program stored on an electronic device of the client. Method 400 can begin with a user selecting an updates tab link in a graphics user interface supplied by a client device. Method 400 can start with a user selecting an updates tab link to a graphic user interface oversupplied by a client device. An exemplary updates tab link can be link 451 in FIG. An exemplary Updates tab link can be link 451 in FIG. 5. Once the client has received a user request for the updates page (401), the client queries or searches the client device for receipts or other forms of proof of entitlement associated with applications installed in the client device (403). 5. Once the client has received a user request for the page updates (401), the client queries or searches the client device for receipts or other forms of proof of entitlement associated with applications installed in the client device (403). In other examples, the query can begin automatically without user interaction. In other examples, the query can start automatically without user interaction. For example, the server can initiate the query by communicating with the client at a predetermined time interval or point in time. For example, the server can initiate the query by communicating with the client at a predetermined time interval or point in time. The search may be performed using functionality associated with the operating system of the client device or alternatively an application or routine stored on the client device. The search May be ormed using functionality associated with the operating system of the client device or alternatively an application or routine stored on the client device. The receipts that are found or a copy of the receipts are transmitted to the server (405). The receipts That are found or a copy of the receipts are TRANSMITTED to the server (405). The receipts can be transferred across any communication network such as Ethernet, internet, local area networks, and others. The receipts can be Transferred across any communication network zoals Ethernet, Internet, local area networks, and others. The server receives the receipts and processes them to determine if the applications associated with the receipts have updates (407). The server Receives the receipts and processes them to determining if the applications associated with the receipts have updates (407). This can include accessing an applications database such as applications database 220 in FIG. This can include ACCESSING an applications database zoals applications database 220 in FIG. 2 and comparing the version number of the receipt with the version number of the application stored in the applications database. 2 and comparing the version number of the receipt with the version number of the application stored in the applications database. This can also include verifying that the application is eligible for adoption by determining that the application installed on the client device is configured for distribution by the server. This can include verifying ook That the application is Eligible for adoption by That-determining the application installed on the client device is configured for distribution by the server. In some embodiments, the server can also verify that the application has not been previously adopted at this point in time, which can include the steps of retrieving a unique identifier (from the server or the client) that uniquely identifies the copy of the installed application and verifying that the unique identifier has not been associated with any user account. In some embodiments, the server can usefull verifydata That the application has not bone previously is adopted at this point in time, which Can include the steps of retrieving a unique identifier (from the server or the client) That uniquely Identifies the copy of the installed application That and verifying the unique identifier hasnt leg associated with any user account. A list of applications with updates can be used in generating an HTML page (408) or manipulating some other user interface, such as a desktop application or a smartphone app. A list of applications with updates can be used in generating an HTML page (408) or manipulating some other user interface, Such as a desktop application or a smartphone app. The HTML page can include information related to applications with available updates. The HTML page can include information related to applications with available updates. This information can include the original purchase date of the application, a description of the application, and a description of the changes or modification in the updated application. This information can include the original purchase date of the application, a description of the application, and a description of the changes or modification in the updated application. An HTML is only one example of the notification that can be sent to the client to notify the client that one or more applications have updates or are available for adoption. An HTML is only one example of the notification That can be sent to the client to notify the client That One or more applications have updates or are available for adoption. The server can then transmit the HTML page to the client (409). The server can then transmit the HTML page to the client (409). In some examples, the server can transmit the HTML page over the same channel that the client transmitted the receipts. In some examples, the server can transmit the HTML page on the same channel the client That TRANSMITTED the receipts. The server can alternately transmit sufficient information to the client to update a locally installed client application, rather than pre-packaging and transmitting an HTML page to the client. The server can transmit Alternately sufficient is information to the client to update a locally installed client application, rather than pre-packaging and transmitting an HTML page to the client.

[0053] FIG. [0053] FIG. 5 illustrates an example of an HTML page associated with an updates page request for a pre-installed application that has been adopted or associated with a user's account in an on-line store or marketplace. 5 illustrates an example of an HTML page associated with an updates page request for a pre-installed application has That leg is adopted or associated with a user's account in an on-line store or marketplace. HTML page 450 includes an updates link 451 that can be selected by a user to request the updates page. HTML page 450 includes an update link 451 That can be selected by a user to request the updates page. Updates link 451 can be located on a menu bar with other links such as "featured," "top charts," "categories," and "purchases" to provide a convenient and quick method for the user to access different features of the application management program. Updates link 451 can be located on a menu bar with other left zoals "featured," "top charts," "Categories," and "Purchases" to providence a convenient and quick method for the user to access different features of the application management program. In some examples, the icon representing updates link 451 can include a number specifying the number of applications stored in the client device that have an available update. In some examples, the icon representing updates link 451 can include a number Specifying the number of applications stored in the client device thathave an available update. The number in the icon can be generated prior to the user selecting updates tab link 451 through periodic communication between the server and the client device. The number in the icon can be generated prior to the user selecting Updates tab link 451 through periodic communication between the server and the client device.

[0054] For example, the client device can periodically communicate with the server and retrieve the most up to date version number of stored applications that have an update available. [0054] For example, the client device can Periodically communicate with the server and retrieve the most up to date version number or stored applications thathave an update available. In this example, updates link 451 has been selected and one application that includes an available update is presented within HTML page 450. The one application is presented with an application description 457 describing the application. In this example, updates link 451 has selected leg and one application That includes an available update is presented within HTML page 450. The one application is presented with an application description 457-describing the application. Application description 457 can include the name of the application, the author of the application, the version number of the application, the release date of the application, or other information associated with the application. Application description 457 can include the name of the application, the author of the application, the version number of the application, the release date of the application, or other information associated with the application. Application description 457 can further include icon 455 that provides an identity to the application and synopsis 459 of the changes that were implemented in this updated version of the application. Application description 457 can include Further icon 455 That Provides an identity to the application and synopsis 459 of the changes That Were Implemented in this updated version of the application. This can provide information to the user so that the use can make an informed decision on whether he or she wishes to upgrade. This can providence information to the user so the use That can make an informed decision on Whether he or she wishes to upgrade. HTML page 450 also includes selectable link 461 that can be selected by the user if he or she wishes to receive the application update. HTML page 450 ook includes selectable link 461 That can be selected by the user if he or she wishes to receive the application update. The number of available updates is displayed at headline 453. Headline 453 is configured to provide another convenient location where the use can quickly determine the number of updates that are available. The number of available updates is displayed at 453. Headline Headline 453 is configured to providence another convenient location where the use can quickly determining the number of updates That are available. In some example, HTML page 450 can also include a selectable link next to headline 453 for updating all applications that have an update available. In some example, HTML page 450 ook can include a selectable link next to headline 453 for updating all applications thathave an update available.

[0055] Returning to FIG. [0055] Returning to FIG. 4, the client receives the transmitted HTML page and presents the HTML page to the user (411). 4, the client TRANSMITTED these receives the HTML page and presents the HTML page to the user (411). As discussed in FIG. As Discussed in FIG. 5, the HTML page presents a graphical user interface that lists the applications with available updates, a description of the applications, and one or more links selectable by the user to authorize the update of the application. 5, the HTML page presents a graphical user interface That lists the applications with updates available, a description of the applications, and one or more links selectable by the user to Authorize the update of the application. The client can receive user authorization to update an application (413). The client can receive user authorization to update an application (413). If user authorization has been received, the client can determine if the application requires adoption before the application can be updated (415). If user authorization has leg received, the client can determining if the application requires adoption before the application can be updated (415). This can include checking the receipt of the application installed on the client to determine whether the receipt is a stub receipt. This can include checking the receipt of the application installed on the client to determining Whether the receipt is a receipt stub. If the receipt is a stub receipt, then the application associated with the stub receipt is a pre-installed application that potentially has not yet been adopted to a user account. If the receipt is a receipt stub, then the application associated with the stub receipt is a pre-installed application has not yet Potentially That leg is adopted to a user account. Therefore, user authorization is required and the client can present a HTML page to the user requesting user authorization to adopt or associate the application to the user account (417). Therefore, user authorization is required and the client can present a HTML page to the user Requesting user authorization to adopt or associate the application to the user account (417). User authorization can involve the transmission of personal information across the communication network. User authorization involvement can the transmission of personal information across the communication network. For privacy reasons, the HTML page informs the user that personal information will be sent during the authorization process and requests permission to transmit this personal information across the communication network. Reasons for privacy, the HTML page the user INFORMS That personal information will be presented during the authorization process and requests permission to transmit this personal information across the communication network.

[0056] FIG. [0056] FIG. 6 illustrates an example of an HTML page requesting user authorization to adopt applications, which may have been bundled and/or pre-installed with the purchase of a computing device. 6 illustrates an example of an HTML page Requesting user authorization to adopt applications, Which May have been bundled and / or pre-installed with the purchase of a computing device. HTML page 470 is an updates page that presents four applications with available updates to the user. HTML page 470 is an update page That presents four applications with available updates to the user. As such, the icon of updates link 471 incorporates the number "4." Such shaft, the icon or link 471 Incorporates updates the number "4." In this example, the user has selected to update all of the applications via "update all" link 475. However in other examples, the user can also select to update a single application by selecting one of update links 476, 477, 478, or 479. The applications with available updates include pre-installed applications 472 and purchased application 473. In some examples, there is no differentiation in presentation of pre-installed applications and purchased applications at this stage. In this example, the user has selected to update all of the applications on "update all" link 475. However in other examples, the user can select usefull to update a single application by selecting one or update links 476, 477, 478, or 479. The applications with available updates include pre-installed applications and 472 Purchased application 473. in some examples, there is no differentiation in presentation or pre-installed applications and Purchased applications at this stage. However once the user selects to update an application that was pre-installed or otherwise not linked with a user account, HTML page 470 can present prompt 480 to the user. However once the user selects to update an application tat was pre-installed or otherwise not linked with a user account, HTML page 470 can present prompt 480 to the user. Prompt 480 is described in more detail in FIG. Prompt 480 is described in more detail in FIG. 7. 7.

[0057] FIG. [0057] FIG. 7 illustrates another example of an HTML page requesting user authorization to adopt applications. 7 illustrates another example of an HTML page Requesting user authorization to adopt applications. Prompt 480, also known as an authorization prompt, is presented to the user when the user selects to update an application that was pre-installed on the computer and possibly has not been associated with a user account or simply an acquired application that has not been associated with a user account. Prompt 480, also known as an authorization prompt is presented to the user When the user selects to update an application tat was pre-installed on the computer and possibly hasnt leg associated with a user account or simply an acquired application That hasnt leg associated with a user account. In this example, prompt 480 includes icon 481, login 482, password 483, password assistance 484, description 485, help link 486, account creation 487, cancel 488, and sign in 489. Description 485 provides textual information to inform the user that the applications pre-installed (ie, bundled) on this electronic device are going to be associated with a user account if the user desires to update the applications. In this example, prompt 480 includes icon 481, log 482, 483 password, password assistance 484, 485 description, help link 486, account creation 487, 488 cancel, and sign in 489 485 Description Provides textual information to inform the user That the applications pre-installed (ie, bundled) on this electronic device are going to be associated with a user account if the user desires to update the applications. Description 485 can also inform the user that to adopt the applications, a unique hardware identifier associated with the electronic device will be sent to the server to determine if the application adoption should be authorized. Description 485 can inform the user ook That to adopt the applications, a unique hardware identifier associated with the electronic device will be sent to the server to determining if the application adoption shouldering be authorized. Icon 481 can be used to brand the application update function of the application management program. Icon 481 can be used to fire the application update function of the application management program. Login 482 and password 483 can specify the user account that the user would like the pre-installed application to be associated with. Login 482 and 483 can password Specify the user account That the user would like the pre-installed application to be associated with. Password assistance 484 can be selected by a user that requires assistance with the password. Password assistance 484 can be selected by a user That requires assistance with the password. Once the desired user account has been entered and the correct password has been entered, the user can begin the adoption process by selecting sign in 489. If the user does not have a user account or the user wishes to associate the pre-installed applications with a new account, the user can select account creation 487. If the user wishes to cancel and not update the application(s), the user can select cancel 488. If the user instead desires a more detailed description on any elements described above, the user can select help link 486. In other examples where the HTML page is requesting user authorization to associate applications not pre-installed on the electronic device but instead separately acquired by the electronic device, description 485 can be altered to convey an appropriate message to the user. Once the user account has Desired ENTERED leg and the right leg has ENTERED password, the user can start the adoption process by selecting sign in 489. If the user does not have a user account or the user wishes to associate the pre-installed applications with a new account, the user can select account creation 487. If the user wishes to cancel and not update the application (s), the user can select cancel 488. If the user desires instead a more detailed description on any elements described above, the user can select help link 486. In other examples where the HTML page is Requesting user authorization to associate applications not pre-installed on the electronic device but instead separately acquired by the electronic device, description 485 can be altered to convey an appropriateness to the message user. For example, description 485 can state "To receive future updates, applications 'X', 'Y', and 'Z' will be assigned to this apple ID. A unique identifier stored on your computer must be sent to Apple to verify eligibility." For example, description 485 can state "To receive future updates, applications 'X', 'Y' and 'Z' will be assigned to this Apple ID. A unique identifier stored on your computer must be sent to Apple to verify, eligibility. " [0058] Returning to FIG. [0058] Returning to FIG. 4, the client can receive user authorization to adopt the application (419). 4, the client can receive user authorization to adopt the application (419). This user authorization can be received by the user entering a user account and password into a prompt presented by the client as described in FIG. This user authorization can be received by the user entering a user account and password into a prompt presented by the client as described in FIG. 7. Once the user authorization has been received by the client, the client can continue to the adoption of the application (421). 7. Once the user has authorization leg received by the client, the client can continuously to the adoption of the application (421). An exemplary process of adopting an application to a user account is described below in FIG. An exemplary process of Adopting an application to a user account is described below in FIG. 12. In some examples, all pre-installed applications must be associated with a user account at the same time. 12. In some examples, all pre-installed applications must be associated with a user account at the same time. Thus, a user cannot selectively link one preinstalled application associated with an electronic device with one user account and selectively link another pre-installed application associated with the electronic device with another user account. Thus, a user can not Selectively link one preinstalled application associated with an electronic device with one user account and Selectively link another preinstalled application associated with the electronic device with another user account. Adopting all pre-installed applications on an electronic device simultaneously can simplify computation overhead in managing the adoption process since the unique hardware identifier associated with an electronic device may be sufficient to notify the server that pre-installed applications have been adopted. Adopting all pre-installed applications on an electronic device can simultaneously simplify computation overhead in managing the adoption process since the unique hardware identifier associated with an electronic device May be sufficient is to notify the server That pre-installed applications have been adopted. In other examples, preinstalled applications on the electronic device can be selectively associated with multiple accounts. In other examples, preinstalled applications on the electronic device can be Selectively associated with multiple accounts. Thus, a first pre-installed application can be associated with a first electronic device while a second pre-installed application can be associated with a second electronic device. Thus, a first pre-installed application can be associated with a first electronic device while a second pre-installed application can be associated with a second electronic device. Management of the pre-installed applications on the server however can require storing the unique hardware identifier of the electronic devices plus the pre-installed applications that have been adopted. Management of the pre-installed applications on the server However the failure can require unique hardware identifier of the electronic devices, plus the pre-installed applications thathave leg adopted. These examples are also applicable to applications that are acquired separately from the purchase of the electronic device. These examples are applicable to applications ook That are acquired separately from the purchase of the electronic device. For example, a bundle of applications gifted and installed on an electronic device can be associated with a user account either individually or as a group. For example, a bundle of applications gifted and installed on an electronic device can be associated with a user account either individually or as a group.

[0059] FIG. [0059] FIG. 8 illustrates an exemplary method for processing a purchases page request. 8 illustrates an exemplary method for processing a page request Purchases. Method 500, which illustrates actions performed by a client and a server, can be configured to manage the communications between the client and the server during a purchases page request. Method 500, Which illustrates actions ormed by a client and a server can be configured to manage the communications between the client and the server during a request Purchases page. The actions performed by the server can be executed by a distribution program stored on the distribution center or other component located on the server side while the actions performed by the client can be executed by an applications management program stored on an electronic device of the client side. The actions ormed by the server can be executed by a distribution program stored on the distribution center or other component located on the server side while the actions ormed by the client can be executed by an application management program stored on an electronic device or the client side . In some examples, the distribution program stored on distribution center and the applications management program stored on the electronic device can be configured to also perform method 400 of FIG. In some examples, the distribution program stored on distribution centers and the application management program stored on the electronic device can be configured to perform usefull method 400 of FIG. 4 during an updates page request. 4 during an update page request. Method 500 can begin with a user selecting a purchase tab link in a graphics user interface supplied by a client device. Method 500 can start with a user selecting a purchase tab link to a graphic user interface oversupplied by a client device. An exemplary purchases tab link can be link 551 in FIG. An exemplary Purchases tab link can be link 551 in FIG. 9. Upon the client receiving a user request for purchases page (501), the client can perform a search or query for application information. 9. Upon the client receiving a user request for Purchases page (501), the client can perform a search query, or for application information. In this exemplary method, the application information can include a manifest and/or receipts (503). In this exemplary method, the application information can include a manifest and / or receipts (503). In other examples, the application information can include an application or software package that has not been associated with a user account where the user account has a right of ownership to the software package. In other examples, the application information can include an application or software package That hasnt leg associated with a user account where the user account has a right of ownership to the software package. The right of ownership can be a proof of entitlement such as a digital receipt. The right of ownership can be a proof of entitlement zoals a digital receipt. In some examples, the manifest can be similar or substantially similar to manifest 340 of FIG. In some examples, the manifest can be similar or 'Substantially similar to manifest 340 or FIG. 3. The search or query can be performed by one or more programs or functions available on the client. 3. The search or query can be ormed by one or more programs or functions available on the client. The application information, which may include the manifest, receipts (real and stub), user account information, and others (such as a proof of entitlement or right of ownership to an application not yet adopted), can be transmitted to the server (505), in some instances, as a software adoption request. The application information, Which May include the manifesto, receipts (real and stub), user account information, and others (zoals a proof of entitlement or right of ownership to an application not yet adopted), can be TRANSMITTED to the server (505 ), in some instances, as a software adoption request. The application information is transmitted to server 505 for the purpose of generating a purchases page that informs the user of applications that have been installed, applications available for installation, and applications that can be adopted. The application information is Transmitted to server 505 for the purpose of generating a page Purchases That INFORMS the user or applications thathave been installed, applications available for installation, and applications That can be adopted. The application information that is transmitted can depend on whether the user has signed in on the client. The application information that's TRANSMITTED can depend on Whether the user has signed in on the client. For example, the user account information is accessible and can be transmitted as part of the application information if the user is signed in on the client. For example, the user account information is accessible and can be TRANSMITTED as part of the application information if the user is signed in on the client. As discussed above, the user account information can include information relating to applications associated with the user account. Ash Discussed above, the user account information can include information Relating to applications associated with the user account. Similarly, receipts can contain information relating to applications associated with the electronic device that the client is running on. Similarly, receipts can contain information Relating to applications associated with the electronic device That the client is running on. The manifest can include information of applications that were originally pre-installed on the electronic device or information of applications that the user has a right of ownership but has not installed on the user device or associated with the user account. The manifest can include information or applications That were originally pre-installed on the electronic device or information or applications That the user has a right of ownership but has not installed on the user or device associated with the user account. These are only exemplary types of application information as other types of application information can also be transmitted to the server for generating a purchases page. These are only exemplary types of application information as other types of application information can be usefull TRANSMITTED to the server for generating a Purchases page.

[0060] The server receives the transmitted application information (ie, manifest, receipts, user account, and other user account information) and generates one or more lists of applications based upon the received information (507). [0060] The server TRANSMITTED these receives the application information (ie, manifests, receipts, user accounts and other user account information) and gene rates one or more lists or applications based upon the received information (507). The applications lists and the process used to generate the applications lists can vary depending upon the information received. The applications lists and the process used to generate lists the applications can vary depending upon the information received. A first applications list can include applications that are installed on the electronic device of the client. A first list applications can include applications That are installed on the electronic device of the client. A second applications list can include applications that are associated with the user account and can be installed on the electronic device of the client. A second list applications can include applications That are associated with the user account and can be installed on the electronic device of the client. A third applications list can include applications that can possibly be linked with a user account. A third list applications can include applications That can possibly be linked with a user account. The applications in the third list can include applications that were pre-installed on the electronic device of the client and/or applications that the client has a right of ownership but has not adopted or installed. The applications in the third list can include applications That Were pre-installed on the electronic device of the client and / or applications That the client has a right of ownership but has not installed or is adopted. Other application lists can also be generated such as purchased or otherwise acquired applications that have not been associated with a user account. Other application lists Can also be generated zoals Purchased or otherwise acquired applications thathave leg not associated with a user account. Depending upon the application information received by the server, one or more of the application lists described above can be generated. Depending upon the application information received by the server, one or more of the application lists described above can be generated. In some examples, the generation of the applications lists can involve accessing an applications database such as applications database 220 in FIG. In some examples, the generation of the lists can involvement applications ACCESSING an applications database zoals applications database 220 in FIG. 2. The server can generate an HTML page based upon the generated applications lists (508). 2. The server can generate an HTML page based upon the applications generated lists (508). The generation of the HTML page can include accessing an applications database to receive metadata associated with applications in the applications lists. The generation of the HTML page can include acces sing an applications database to receive metadata associated with applications in the applications lists. For example, the metadata can include the name of the application, a description of the application, a version number of the application, a purchase data of the application, an image associated with the application, and others. For example, the metadata can include the name of the application, a description of the application, a version number of the application, a purchase data of the application, an image associated with the application, and others. Once the HTML page is generated, the server transmits the HTML page to the client (509). Once the HTML page is generated, the server transmits the HTML page to the client (509). The client subsequently presents the HTML page to the user (511). Subsequently the client presents the HTML page to the user (511). Depending upon whether the user has signed in on the client, different information is presented to the user. Depending upon Whether the user has signed in on the client, different information is presented to the user.

[0061] FIG. [0061] FIG. 9 illustrates an example of an HTML page associated with a purchases page request when the user is not signed in. 9 illustrates an example of an HTML page associated with a page request Purchases When the user is not signed in. In this example, HTML page 550 presents the user with a list of applications 557 that are available for adoption. In this example, HTML page 550 presents the user with a list of applications 557 That are available for adoption. Of the three applications available for adoption, the applications "iMovie" and "GarageBand" have an update available as illustrated by text 558 and 559, respectively. Of the three applications available for adoption, the applications "iMovie" and "GarageBand" have an update available as illustrated by text 558 and 559, respectively. HTML page 550 includes purchases link 551. In some examples, purchases link 551 can function the same or substantially the same as updates link 451 of FIG. HTML page 550 includes Purchases link 551. In some examples, Purchases link 551 can operate the same or 'Substantially the same as updates link 451 of FIG. 5. HTML page 550 further includes headline 553 that informs the user of the number of applications that are available for adoption. 5. HTML page 550 Further headline includes 553 INFORMS That the user of the number of applications That are available for adoption. Description 555 provides the user an explanation of the adoption process in hopes of assisting the user in determining whether or not he wishes to adopt the application. Description 555 Provides the user an explanation of the adoption process in hopes of assisting the user in Determining Whether or not he wishes to adopt the application. HTML page 550 also includes instructions 552 to inform the user that the user must sign in to his user account to receive information about the purchases that are associated with his user account. HTML page 550 includes instructions ook 552 to inform the user That the user must sign in to his user account to receive information about the Purchases That are associated with his user account. In this example, HTML page 550 includes one accept link 554 that when selected by the user, initiates the adoption process. In this example, HTML page 550 includes one acceptable link 554 That When selected by the user, Initiates the adoption process. In other examples, HTML page 550 can include an accept link for each application available for adoption, thus allowing the user to elect to accept a single application available for adoption, multiple applications available for adoption, or all applications available for adoption. In other examples, HTML page 550 can include an acceptable link for each application available for adoption, osmanthus-allowing the user to elect to accept a single application available for adoption, multiple applications available for adoption, or all applications available for adoption. The user can select accept link 554 through a touch screen, a mouse click, a keyboard, or other user input devices. The user can select Accept link 554 through a touch screen, a mouse click, a keyboard, or other user input devices.

[0062] FIG. [0062] FIG. 10 illustrates another example of an HTML page associated with a purchases page request when the user is signed in. 10 illustrates another example of an HTML page associated with a page request Purchases When the user is signed in. HTML page 560 presents two application lists to the user. HTML page 560 presents two application lists to the user. In this example, the presentation of application list 562 includes applications that are available for adoption while the presentation of application list 564 includes applications that have been previously purchased. In this example, the presentation or application list includes 562 applications are available for adoption That while the presentation or application list 564 includes applications thathave leg previously Purchased. The two application lists are presented in independent and separate portions of HTML page 560. The presentation of application list 564 includes metadata associated with the previously-purchased applications such as the name of the application, an image associated with the application, the software vendor, the purchase date, and status 566. Status 566 can be configured to display the present state of the purchased application. The two application lists are presented in independent and separate portions or HTML page 560. The presentation or application list 564 includes metadata associated with the previously-Purchased applications zoals the name of the application, an image associated with the application, the software vendor, the purchase date, and status 566. status 566 can be configured to display the present state of the Purchased application. For example, status 566 can be in an "installed state" when the application is presently installed in the electronic device of the client. For example, state 566 can be in an "installed state" when the application is presently installed in the electronic device of the client. Status 566 can be configured to display the text "INSTALLED" when in this state. Status 566 can be configured to display the text "INSTALLED" when in this state. In this example, the four purchased applications are all installed in the electronic device of the client. In this example, the four Purchased applications are all installed in the electronic device of the client. As another example, status 566 can be in an "install state" when the application is purchased but not installed in the electronic device of the client. As another example, status 566 can be in an "install state" when the application is Purchased but not installed in the electronic device of the client. For example, the application may have not been downloaded to this device yet or the application may have been selectively deleted from the device. For example, the application May have not been downloaded to this device yet or the application May Selectively have been deleted from the device. Status 566 can be configured to display the text "INSTALL" when in this state. Status 566 can be configured to display the text "INSTALL" when in this state. Moreover, status 566 can include a user-selectable link when in the "install state." Moreover, state 566 can include a user-selectable link when in the "install state." Selecting the user-selectable link results in the application being downloaded to the electronic device and installed. Selecting the user-selectable link results in the application being downloaded to the electronic device and installed.

[0063] Returning to FIG. [0063] Returning to FIG. 8, the client can receive user input as a request to adopt an application (513). 8, the client can receive user input as a request to adopt an application (513). In some examples, the user input can be selecting accept link 554 of FIG. In some examples, the user input can be accepted selecting link 554 of FIG. 9. The client can request user authorization to link the application to a user account (515). 9. The client user can request authorization to link the application to a user account (515). An example of an HTML page containing an authorization prompt for requesting user authorization to link the application to a user account is illustrated in FIG. An example of an HTML page containing an authorization Requesting prompt for user authorization to link the application to a user account is illustrated in FIG. 11. 11.

[0064] FIG. [0064] FIG. 11 illustrates another example of an HTML page associated with a purchases page request that includes an authorization prompt. 11 illustrates another example of an HTML page associated with a page Purchases That request includes an authorization prompt. HTML page 570 can include authorization prompt 575 when the user selects to accept the adoption of pre-installed applications. HTML page 570 can include authorization prompt 575 When the user selects to accept the adoption of pre-installed applications. Authorization prompt 575 can be included as part of a transmitted HTML page from the server and presented to the user after the user selects to accept the adoption of the pre-installed applications. Authorization prompt 575 can be included as part of a Transmitted HTML page from the server and presented to the user after the user selects to accept the adoption of the pre-installed applications. In some examples, authorization prompt 575 can be the same or substantially similar as authorization prompt 480 of FIG. In some examples, authorization prompt 575 can be the same or similar as' Substantially authorization prompt 480 of FIG. 7. 7.

[0065] Returning to FIG. [0065] Returning to FIG. 8, the client can receive user authorization to link the application to a user account. 8, the client can receive user authorization to link the application to a user account. The user account is the user account that is entered during user authorization. The user account is the user account that's ENTERED during user authorization. For example, the user can enter a username and password of the user account that the application is to be associated to. For example, the user can enter a username and password of the user account That the application is to be associated to. After user authorization is received by the client, the client can continue to the adoption of the application (519). After user authorization is received by the client, the client can continuously to the adoption of the application (519). An exemplary process of adopting an application to a user account is described below in FIG. An exemplary process of Adopting an application to a user account is described below in FIG. 12. In some examples, all preinstalled applications must be associated with a user account at the same time. 12. In some examples, all preinstalled applications must be associated with a user account at the same time. Thus, a user cannot selectively link one pre-installed application associated with an electronic device with one user account and selectively link another pre-installed application associated with the electronic device with another user account. Thus, a user can not Selectively link one pre-installed application associated with an electronic device with one user account and Selectively link another pre-installed application associated with the electronic device with another user account. Adopting all pre-installed applications on an electronic device simultaneously can simplify computational overhead in managing the adoption process since the unique hardware identifier associated with an electronic device can be sufficient to notify the server that pre-installed applications have been adopted. Adopting all pre-installed applications on an electronic device can simultaneously simplify computational overhead in managing the adoption process since the unique hardware identifier associated with an electronic device can be sufficient is to notify the server That pre-installed applications have been adopted. In other examples where pre-installed applications on the electronic device can be selectively associated with multiple accounts, management of the pre-installed applications on the server can require storing the pre-installed applications that have been adopted in addition to the unique hardware identifier of the electronic devices. In other examples where pre-installed applications on the electronic device can be Selectively associated with multiple accounts, management of the pre-installed applications on the server can require fault the pre-installed applications thathave leg is adopted in Addition to the unique hardware identifier or the electronic devices.

[0066] FIG. [0066] FIG. 12 illustrates an exemplary method for linking a pre-installed application to a user account. 12 illustrates an exemplary method for linking a pre-installed application to a user account. Method 600, which illustrates a communications protocol performed between a client and a server, can be configured to manage the process of linking a pre-installed application to a user account. Method 600, Which illustrates a communications protocol ormed between a client and a server can be configured to manage the process of linking a pre-installed application to a user account. The actions performed by the server can be executed by a program on the distribution center or other component on the server side while the actions performed by the client can be executed by an applications management program stored on an electronic device of the client. The actions ormed by the server can be executed by a program on the distribution center or other component on the server side while the actions ormed by the client can be executed by an application management program stored on an electronic device of the client. The applications management program can be configured to install, delete, maintain, or otherwise manage software applications stored on the client. The application management program can be configured to install, delete, maintain, or otherwise manage software applications stored on the client. In some examples, the distribution program stored on the distribution center and the applications management program stored on the electronic device can be configured to also perform method 400 of FIG. In some examples, the distribution program stored on the distribution center and the application management program stored on the electronic device can be configured to perform usefull method 400 of FIG. 4 and/or method 500 of FIG. 4 and / or method 500 of FIG. 5. In some examples, method 600 can be performed after "continue to application adoption" (421) of FIG. 5. In some examples, method 600 can be ormed after "continuous application to adoption" (421) or FIG. 4 or "continue to application adoption" (519) of FIG. 4 or "continuous application to adoption" (519) or FIG. 8. 8.

[0067] Method 600 can generate a unique hardware identifier (620). [0067] Method 600 can generate a unique hardware identifier (620). The unique hardware identifier can serve as a digital receipt of valid ownership or entitlement of the application. The unique hardware identifier can serve as a digital receipt of valid ownership or entitlement of the application. The unique hardware identifier can be generated from combining one or more identifiers specific to the electronic device. The unique hardware identifier can be generated from combining one or more identifiers specific to the electronic device. For instance, the unique hardware identifier can be based upon one or more identifiers associated with the hardware components of the electronic device. For instance, the unique hardware identifier can be based upon one or more identifiers associated with the hardware components of the electronic device. Since the identifiers of the hardware components are unique, no two unique hardware identifiers are the same. Since the identifiers of the hardware components are unique, no two unique hardware identifiers are the same. As an example, the unique hardware identifier can be generated by combining the logic board serial number of the device with the Ethernet hardware address of the device. Ash an example, the unique hardware identifier can be generated by combining the logic board serial number of the device with the Ethernet hardware address of the device. The logic board serial number and the Ethernet hardware address can be combined using concatenation, hashing, an encoding scheme, or other data manipulation algorithm. The logic board serial number and the Ethernet hardware address can be combined using concatenation, hashing, an encoding scheme, or other data manipulation algorithm. The unique hardware identifier can be transmitted from the client to the server as part of a request to associate a pre-installed application with a user account (630). The unique hardware identifier can be TRANSMITTED from the client to the server as part of a request to associate a pre-installed application with a user account (630). In other examples where the pre-installed applications can be selectively adopted, metadata associated with the pre-installed application is also transmitted from the client to the server. In other examples where the pre-installed applications can be Selectively is adopted, metadata associated with the pre-installed application is ook Transmitted from the client to the server. The metadata provides details to the server allowing the server to identify the selected preinstalled application which the user is attempting to adopt into the user account. The metadata biedt details to the server-allowing the server to identify the selected application preinstalled How many followers the user is attempting to adopt into the user account. After the server receives the unique hardware identifier and optionally the metadata, the server can verify the proof of entitlement by determining if the pre-installed application has already been linked with a user account (640). After the server Receives the unique hardware identifier and optionally the meta data, the server can verify, the proof of entitlement by-determining if the pre-installed application has already Leg linked with a user account (640). The server can determine whether the application has already been linked by checking the uniqueness table for the unique hardware identifier. The server can determining Whether the application has already leg linked by checking the uniqueness table for the unique hardware identifier. Since the uniqueness table stores entries containing the unique hardware identifier of electronic devices that have already adopted pre-installed applications, a unique hardware identifier that is not found in the table signifies that the electronic device has not yet associated any of its pre-installed applications. Since the uniqueness table stores entries containing the unique hardware identifier or electronic devices thathave already is adopted pre-installed applications, a unique hardware identifier that's not found in the table signifies That the electronic device has not yet associated any of its pre-installed applications . If method 600 allows for selective adoption of pre-installed applications, then the determination can include querying the uniqueness table for an entry associated with the unique hardware identifier. If method 600 Allows for selective adoption or pre-installed applications, then the determination can include querying the uniqueness table for an entry associated with the unique hardware identifier. If the unique hardware identifier is found, the determination can evaluate the entry with the metadata of the pre-installed application to determine if the selected pre-installed application has previously been adopted. If the unique hardware identifier is found, the determination can Evaluate the entry with the meta data of the pre-installed application to determining if the selected pre-installed application has previously leg adopted.

[0068] If it is determined from searching (ie, querying) the uniqueness table that the application has previously been adopted, then an error is transmitted back to the client (641). [0068] If it is Determined from searching (ie, querying) the uniqueness table That the application has previously leg is adopted, then an error is Transmitted back to the client (641). The client receives the error and presents a warning to the user that the application has already been adopted (642). The Client Receives the error and presents a warning to the user the application has already That leg is adopted (642). FIG. FIG. 13 illustrates an example of an adoption warning. 13 illustrates an example of an adoption warning. Warning 700 notifies the user that the one or more applications that the user wishes to associate with his user account cannot be assigned because the pre-installed applications were already assigned to a different user account. Warning 700 notifies the user That the one or more applications That the user wishes to associate with his user account can not be assigned Because The pre-installed applications were already assigned to a different user account. On the other hand, if it is determined from searching the uniqueness table that the application has not been previously adopted, then the server can perform a sanity check to determine whether the pre-installed application is part of the original or default configuration of the electronic device (650). On the other hand, if it is Determined from searching the uniqueness table That the application has not bone previously is adopted, then the server can perform a sanity check to determining Whether the pre-installed application is part of the original or default configuration of the electronic device (650). In other words, the server determines whether the electronic device was configured and delivered from the manufacturer with the pre-installed application installed. In otherwords, the server Determines Whether the electronic device was configured and delivered from the manufacturer with the pre-installed application installed. This sanity check prevents a user from copying a pre-installed application originally installed on one electronic device to another electronic device and attempting to associate the unlawful copy to a user account. This sanity check Prevents a user from copying a pre-installed application originally installed on one electronic device to another electronic device and attempting to associate the unlawful copy to a user account. The server can query a configurations server with the unique hardware identifier to receive the original configuration of the electronic device associated with the unique hardware identifier. The server can query a server configurations with the unique hardware identifier to receive the original configuration of the electronic device associated with the unique hardware identifier. The original configuration can be examined to determine a list of pre-installed applications. The original configuration can be Examined to determining a list of pre-installed applications. This list of pre-installed applications can be compared with the application the user is attempting to adopt to determine whether that application is available for adoption. This list or pre-installed applications can be Compared with the application the user is attempting to adopt to determining Whether That application is available for adoption. In other examples, a copy of the database used to query for original configurations can be stored in the distribution center thus allowing the evaluation of the unique hardware identifier to be performed completely in the distribution center. In other examples, a copy of the database used to query for original configurations can be stored in the distribution center osmanthus-allowing the evaluation of the unique hardware identifier to be completely ormed in the distribution center. This can reduce network traffic to the configurations server. This can reduce network traffic to the server configurations.

[0069] If it is determined that the application the user wishes to adopt is not part of the original configuration of the electronic device, an error message can be transmitted to the client (651). [0069] If it is Determined That the application the user wishes to adopt is not part of the original configuration of the electronic device, an error message can be Transmitted to the client (651). Once the client receives the error message, the client can present a warning to the user that the electronic device is not eligible for adoption (642). Once the client these receives the error message, the client can present a warning to the user That the electronic device is not Eligible for adoption (642). FIG. FIG. 14 illustrates another example of an adoption warning. 14 illustrates another example of an adoption warning. Warning 750 notifies the user that the application cannot be assigned to the user account because the electronic device (herein named "Mac") is not eligible for associating the pre-installed applications with a user account. Warning 750 notifies the user That the application can not be assigned to the user account Because The electronic device (hereinbefore named "Mac") is not Eligible for associating the pre-installed applications with a user account. In other examples, warning 750 can include drawings or other sentences provided for the purpose of informing the user that the electronic device was not originally configured with the preinstalled applications. In other examples, warning 750 can include drawings or other sentences provided for the purpose of informing the user That the electronic device was not originally configured with the preinstalled applications. On the other hand, if it is determined that the application the user wishes to adopt is part of the original configuration of the electronic device, then additional sanity checks, if any, can be performed. On the other hand, if it is Determined That the application the user wishes to adopt is part of the original configuration of the electronic device, then additional sanity checks, if any, can be ormed. Once the server has verified that the pre-installed application can be linked to a user account, the server can update the uniqueness table and the user account stored on the server (660) to indicate that the pre-installed applications of the electronic device have been adopted (and thus cannot be adopted by another user account). Once the server has verified That the pre-installed application can be linked to a user account, the server can update the uniqueness table and the user account stored on the server (660) to indicate That the pre-installed applications of the electronic device have leg is adopted (and osmanthus can not be is adopted by another user account). As discussed above, a pre-installed application that has been adopted is a preinstalled application of the electronic device that is now associated with the user account and therefore, updates and re-downloads associated with the application can be downloaded to an electronic device associated with the user account. Ash Discussed above, a preinstalled application That has leg is adopted is a preinstalled application of the electronic device that's now associated with the user account and Therefore, updates and re-downloads associated with the application can be downloaded to an electronic device associated with the user account. The server can transmit an approval message to the client to inform the client that the request is approved (670). The server can transmit an approval message to the client to inform the client That the request is approved (670). The approval message informs or notifies the client the pre-installed application is now associated with the user account on the server because the linking request has been evaluated and found to be a genuine request. The approval message INFORMS or notifies the client the pre-installed application is now associated with the user account on the server Because the linking request has Evaluated leg and found to be a genuine request. The client receives the approval message and links the pre-installed application with the user account stored on the client (680). The client these receives the approval message and left the pre-installed application with the user account stored on the client (680). In some examples, the client can also update the manifest stored on the electronic device by removing metadata associated with the pre-installed application that has been linked with the user account from the manifest. In some examples, the client can update the manifest ook stored on the electronic device by removing metadata associated with the pre-installed application That leg has linked with the user account from the manifest. Removing metadata associated with the pre-installed application can simplify the adoption process by minimizing checks that are performed to determine whether an application is adoptable. Removing metadata associated with the pre-installed application can simplify the adoption process by Minimizing checks That Are ormed to determining Whether an application is adoptable. The client can then transmit requests to the distribution center or other components of the server to download the application (690). The client can then transmit requests to the distribution center or other components of the server to download the application (690).

[0070] Method 600 can also be configured for adoption of a post-installed application (ie, an application installed by the user). [0070] Method 600 can be configured usefull for adoption of a post-installed application (ie, an application installed by the user). Post-installed applications include gifted, purchased, redeemed, or otherwise acquired applications that have been installed on the user's device after the device has left the manufacturer or after the device has been purchased by the user. Post-installed applications include gifted, Purchased, redeemed, or otherwise acquired applications thathave been installed on the user's device after the device has left the manufacturer or after the device has bone Purchased by the user. For example, method 600 can generate a unique identifier associated with an application instead of generating the unique hardware identifier (620). For example, method 600 can generate a unique identifier associated with an application instead of generating the unique hardware identifier (620). The unique identifier can be metadata associated with the application that is used to show proof of entitlement or proof of purchase of the application. The unique identifier can be metadata associated with the application that's used to show proof of entitlement or proof of purchase of the application. The unique identifier can be stored in metadata of the application and subsequently retrieved by the client device. The unique identifier can be stored in the metadata of the application and Subsequently Retrieved by the client device. Alternatively, the unique identifier can be generated based on metadata of the application. Alternatively, the unique identifier can be generated based on metadata of the application. For example, the unique identifier can be derived from a unique or non-unique receipt of the application, metadata related to the receiving the application such as the date and/or location that the application was acquired, a unique identifier associated with the client device, and/or other metadata associated with either the application or the client device. For example, the unique identifier can be derived from a unique or non-unique receipt of the application, metadata related to the present receiving the application zoals the date and / or location That the application was acquired, a unique identifier associated with the client device , and / or other metadata associated with either the application or the client device.

[0071] In some examples, the communication protocol can depend on whether the unique identifier is associated with a pre-installed application (ie, an application installed by the manufacturer) or a post-installed application (ie, an application installed by the user). [0071] In some examples, the communication protocol can depend on Whether the unique identifier is associated with a pre-installed application (ie, an application installed by the manufacturer) or a post-installed application (ie, an application installed by the user ). For instance, the communication protocol can skip confirming that the application is part of the original configuration of the electronic device (650) when the unique identifier received from the client is associated with an application that was post-installed and therefore, not part of the original configuration of the electronic device. For instance, the communication protocol can skip Confirming That the application is part of the original configuration of the electronic device (650) When the unique identifier received from the client is associated with an application tat was post-installed and Therefore, not part of the original configuration of the electronic device. Instead, the server can verify the proof of entitlement or ownership of the application by comparing the unique identifier with a database of valid unique identifiers. Instead, the server can verify, the proof of entitlement or ownership of the application by comparing the unique identifier with a database of valid unique identifiers. This can allow the server to distinguish and differentiate between valid and invalid copies of the application. This can allow the server to distinguish between valid and invalid Differentiate and copies of the application. Once the proof of entitlement is verified, the application is adopted as part of the user account. Once the proof of entitlement is verified, the application is is adopted as part of the user account. To determine whether an application is pre-installed or post-installed, the server can analyze a flag or other metadata associated with the unique identifier. To determining Whether an application is pre-installed or post-installed, the server can analyze a flag or other metadata associated with the unique identifier.

[0072] In yet other examples, the communication protocol can depend on whether the unique identifier received from the client is based on metadata associated with the client electronic device. [0072] In yet other examples, the communication protocol can depend on Whether the unique identifier received from the client is based on metadata associated with the client electronic device. For instance, the database or table accessed by the server to determine whether the application has already been linked can depend on the unique identifier. For instance, the database or table accessed by the server to determining Whether the application has already linked bone can depend on the unique identifier. A first database can be accessed and updated by the server for unique identifiers associated with the client electronic device. A first database can be accessed and updated by the server for unique identifiers associated with the client electronic device. The first database can be keyed and searchable based on hardware of the electronic device. The first database can be keyed and searchable based on hardware of the electronic device. A second database can be accessed and updated by the server for unique identifiers not associated with a client device. A second database can be accessed and updated by the server for unique identifiers not associated with a client device. In other words, these unique identifiers are based solely on the proof of entitlement associated with the application and thus, searching the second database would be based on proof of entitlement or some variation of the proof of entitlement. In otherwords, thesis unique identifiers are Solely based on the proof of entitlement associated with the application and osmanthus, searching the second database would be based on proof of entitlement or some variation of the proof of entitlement.

[0073] FIG. [0073] FIG. 15 illustrates an exemplary process for recovery mode on an electronic device. 15 illustrates an exemplary process for recovery mode on an electronic device. Generally, recovery mode can allow an electronic device to resolve internal fatal errors to applications or even an operating system. Generally, recovery mode can allow an electronic device to resolve internal fatal errors to applications or even an operating system. In the extreme case of recovering an entire operating system, this approach can even reformat the storage unit and reinstall the operating system. In the extreme case of recovering an entire operating system, this approach can even reformat the storage unit and reinstall the operating system. Depending upon the specific implementation of the recovery mode, the operating system being reinstalled can vary. Depending upon the specific implementation of the recovery mode, the operating system being reinstalled can vary. As an example, the reinstalled operating system can be the operating system that originally was installed on the electronic device, which can then be updated manually and/or automatically. As an example, the operating system can be reinstalled the operating system That originally was installed on the electronic device, Which can then be updated manually and / or automatically. As another example, the reinstalled operating system can incorporate one or more updates that have been released since the originally installed operating system. Axis another example, reinstalled the operating system can Incorporate one or more updates thathave leg released since the originally installed operating system. In yet other examples, the newest available operating system from the manufacturer can be reinstalled. In yet other examples, the newest operating system available from the manufacturer can be reinstalled. Generally, recovery mode only reinstalls the operating system without reinstalling the pre-installed applications. Generally, recovery mode only reinstalls the operating system without reinstalling the pre-installed applications. For this reason, pre-installed applications that have not been associated or linked with a user account can be lost. For this reason, pre-installed applications thathave leg not associated or linked with a user account can be lost. Process 800 solves this problem by retrieving the manifest from the configurations server during recovery mode. Process 800 solves this problem by retrieving the manifest from the server configurations during recovery mode.

[0074] Process 800 can begin by entering recovery mode (820). [0074] Process 800 can start by entering recovery mode (820). Entering recover mode can trigger the download of a basic operating system from the manufacturer. Entering recover mode can trigger the download of a basic operating system from the manufacturer. The basic operating system can be configured to generate a unique hardware identifier (830). The basic operating system can be configured to generate a unique hardware identifier (830). The unique hardware identifier can be generated using one of the methods described above. The unique hardware identifier can be generated using one of the methods described above. Once the unique hardware identifier is generated, the basic operating system can transmit the unique hardware identifier to a configurations server (840). Once the unique hardware identifier is generated, the basic operating system can transmit the unique hardware identifier to a server configurations (840). Based upon the received unique hardware identifier, the configurations server can return a manifest that includes the applications that were pre-installed on the electronic device and the version number of those applications. Based upon the received unique hardware identifier, the server configurations can return a manifesto That includes the applications That Were pre-installed on the electronic device and the version number of Those applications. The manifest can also include other applications which the owner of the electronic device has a right of ownership. The manifesto can ook include other applications How many followers the owner of the electronic device has a right of ownership. In some examples, the communications server may communicate with the distribution server to determine whether the electronic device has already adopted the applications. In some examples, the communications server communicate May with the distribution server to determining Whether the electronic device already has the applications is adopted. If the unique hardware identifier is found in the uniqueness table of the distribution center, then one or more of the pre-installed applications of the electronic device has already been adopted. If the unique hardware identifier is found in the table uniqueness of the distribution center, then one or more of the pre-installed applications of the electronic device has already leg adopted. Thus, communications server may return an empty manifest or a manifest that does not include the specific pre-installed applications that have already been adopted. Thus, communications server May return an empty manifest or a manifest That does not include the specific pre-installed applications thathave already leg adopted. This may minimize the occurrences where a purchases page request presents pre-installed applications to the user for adoption when the pre-installed applications have already been adopted. This May minimize the occurrences where a page request Purchases presents pre-installed applications to the user for adoption When the pre-installed applications have already leg adopted. In other examples where the distribution center stores a local copy of the configurations database, the unique hardware identifier can be transmitted to the distribution center rather than the configurations server. In other examples where the distribution center stores a local copy of the database configurations, the unique hardware identifier can be TRANSMITTED to the distribution center rather than the server configurations. Using the unique hardware identifier, the distribution center can determine the pre-installed applications and of those applications, the ones that have already been associated with a user account. Using the unique hardware identifier, the distribution center can determining the pre-installed applications and Of Those applications, the ones thathave already leg associated with a user account.

[0075] The configurations server (or the distribution center) can return the version number of the operating system that came with the electronic device and a manifest that is based upon the pre-installed applications of the electronic device (850). [0075] The configurations server (or the distribution center) can return the version number of the operating system That came with the electronic device and a manifest that's based upon the pre-installed applications of the electronic device (850). In other examples, the manifest can also include post-installed applications of electronic device (850) that have not been linked with a user account. In other examples, the manifesto can ook include post-installed applications or electronic device (850) not thathave leg linked with a user account. The manifest stored on the configurations server can be periodically updated when an electronic device installs an application that has not been associated with a user account. The manifesto stored on the server configurations can be updated Periodically When an electronic device installs an application That hasnt leg associated with a user account. This can occur for a variety reasons, such as network failure, server failure, or a user selected option to not associate the application with the user account at this point in time. This can Occur for a variety Reasons, zoals network failure, server failure, or a user selected option to not associate the application with the user account at this point in time. The version number of the operating system is transmitted to an operating systems server (860), which in turn transmits the original operating system to the electronic device. The version number of the operating system is TRANSMITTED to an operating system server (860) How many followers in turn transmits the original operating system to the electronic device. The electronic device receives the original operating system (870) and optionally, installs the original operating system. The electronic device these receives the original operating system (870) and optionally, installs the original operating system. The electronic device now includes a fresh copy of the original operating system and a manifest based upon the pre-installed applications of the electronic device. The electronic device now includes a fresh copy of the original operating system and a manifest based upon the pre-installed applications of the electronic device. If the user has not associated the pre-installed applications with a user account, the user can do so by selecting the purchases page link as described above. If the user has not associated the pre-installed applications with a user account, the user can do so by selecting the Purchases page link as described above.

[0076] Embodiments within the scope of the present disclosure may also include tangible and/or non-transitory computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon. [0076] Embodiments within the scope of the present disclosure May usefull include tangible and / or non-transitory computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon. Such non-transitory computer-readable storage media can be any available media that can be accessed by a general purpose or special purpose computer, including the functional design of any special purpose processor as discussed above. Such non-transitory computer-readable storage media can be any available media That can be accessed by a general purpose or special purpose computer-including the functional design of any special purpose processor as Discussed above. By way of example, and not limitation, such non-transitory computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions, data structures, or processor chip design. By way of example, and not limitation, Such non-transitory computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which Can be used to carry or store program code Desired Means in the form of computer-executable instructions, data structures, or processor chip design. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. When information is Transferred or provided over a network or another communications connection (either hardwired, wireless, or combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Thus, any Such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of the computer-readable media. Combinations of the above shouldering ook be included within the scope of the computer-readable media.

[0077] Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. [0077] Computer-executable instructions include, for example, instructions and data How many followers cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certainement function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Computer-executable instructions include program modules ook That are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, components, data structures, objects, and the functions inherent in the design of special-purpose processors, etc. that perform particular tasks or implement particular abstract data types. Generally, program modules include routines, programs, components, data structures, objects, and the functions inherent in the design or special-purpose processors, etc. That perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. Computer-executable instructions, associated data structures, and program modules represent examples of the program code Means for executing steps of the methods disclosed hereinbefore. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps. The particular sequence of Such executable instructions or associated data structures represents examples of correspondance thing acts for Implementing the functions described at a rate such steps.

[0078] Those of skill in the art will appreciate that other embodiments of the disclosure may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. [0078] Those of skill in the art will appreciate That Other embodiments of the disclosure May be Practiced in network computing environments with many types of computer system configurations,-including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. Embodiments may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination thereof) through a communications network. Embodiments May usefull be Practiced in distributed computing environments where tasks are ormed by local and remote processing devices That Are linked (either by hardwired links, wireless links, or by a combination thereof) through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. In a distributed computing environment, program modules May be located in both local and remote memory storage devices.

[0079] The various embodiments described above are provided by way of illustration only and should not be construed to limit the scope of the disclosure. [0079] The various embodiments described above are provided by way of illustration only and Should not be construed to limit the scope of the disclosure. Those skilled in the art will readily recognize various modifications and changes that may be made to the principles described herein without following the example embodiments and applications illustrated and described herein, and without departing from the spirit and scope of the disclosure. Those skilled in the art will Readily Recognize various modifications and changes That May be made to the principles described hereinbefore without following the example embodiments and applications illustrated and described hereinbefore, and without departing from the spirit and scope of the disclosure.

Claims (20)

  1. 1. Werkwijze, omvattend: verifiëren, door een server, dat een op een eerste cliëntinrichting geïnstalleerde applicatie in aanmerking komt voor adoptie (koppeling met een gebruikersaccount), door te bepalen dat de geïnstalleerde applicatie op de eerste cliëntinrichting is geconfigureerd voor distributie door een server; CLAIMS 1. A method, comprising: verifying, by a server, which is a to a first client device installed application is eligible for adoption (coupling with a user), by determining that the installed application is configured on the first client device for distribution by a server, ; verifiëren, door de server, dat de applicatie niet voorheen is geadopteerd, omvattend: automatisch ophalen van een unieke identificator die een individueel exemplaar van de geïnstalleerde applicatie op unieke wijze identificeert uit metadata die zijn geassocieerd met de geïnstalleerde applicatie, en verifiëren dat de unieke identificator niet is geassocieerd met enig gebruikersaccount; verifying, by the server, that the application does not previously been adopted, comprising: automatically obtaining a unique identifier that identifies an individual copy of the installed application to a unique way of metadata that are associated with the installed application, and verifying that the unique identifier is not associated with any user account; en leveren, vanuit de server, van een mededeling naar de eerste cliëntinrichting dat de geïnstalleerde applicatie in aanmerking komt voor adoptie. and providing, from the server, a notification to the first client device that the installed application is eligible for adoption.
  2. 2. Werkwijze volgens conclusie 1, verder omvattend het adopteren, door de server, van de applicatie naar een gebruikersaccount, waarbij door de adoptie het gebruikersaccount wordt geconfigureerd om privileges met betrekking tot de geadopteerde applicatie toe te staan aan één of meer cliëntinrichtingen die zijn geassocieerd met het gebruikersaccount. 2. A method as claimed in claim 1, further comprising adopting, by the server, from the application to a user account, which is configured to the user through the adoption to privileges with respect to allowing the adopted application to one or more client devices that are associated with the user.
  3. 3. Werkwijze volgens conclusie 2, waarbij de privileges downloaden, her-downloaden, en actualiseren van de applicatie omvatten. 3. A method as claimed in claim 2, wherein the download privilege, re-downloading, and updating comprise the application.
  4. 4. Werkwijze volgens één van de conclusies 2-3, verder omvattend: registreren van een tweede cliëntinrichting in het gebruikersaccount; 4. A method according to any one of claims 2-3, further comprising: storing a second client device to the user account; en zenden van de geadopteerde applicatie naar de tweede cliëntinrichting. and transmitting the adopted application to the second client device.
  5. 5. Werkwijze volgens één van de conclusies 1-4, waarbij de unieke identificator een bewijs van gebruiksrecht voor het individuele exemplaar is. 5. A method according to any one of claims 1-4, wherein the unique identifier is a proof of entitlement to the individual copy.
  6. 6. Werkwijze volgens één van de conclusies 2-5, waarbij de applicatie voorheen is geïnstalleerd op één of meer cliëntinrichtingen die zijn geassocieerd met het gebruikersaccount. 6. A method according to any one of claims 2-5, wherein the application is previously installed on one or more client devices that are associated with the user account.
  7. 7. Werkwijze volgens één van de conclusies 1-6, waarbij de werkwijze wordt uitgevoerd als reactie op een gebruikersaanvraag. 7. A method according to any one of claims 1-6, wherein the method is performed in response to a user request.
  8. 8. Werkwijze volgens één van de conclusies 1-7, verder omvattend: de cliëntinrichting informeren over een veelheid applicaties die beschikbaar zijn voor adoptie; 8. A method according to any one of claims 1-7, further comprising: the client device to inquire about a plurality of applications that are available for adoption; en accepteren van een invoer die ten minste één van de veelheid applicaties voor adoptie selecteert. and accept an input that selects at least one of the plurality of applications for adoption.
  9. 9. Werkwijze volgens één van de conclusies 1-8, waarbij het automatisch ophalen van de unieke identificator het doorzoeken van een databank op de server naar de unieke identificator omvat. 9. A method according to any one of claims 1-8, wherein the automatic acquisition of the unique identifier by searching a database on the server to the unique identifier.
  10. 10. Werkwijze volgens één van de conclusies 1-9, waarbij het adopteren van het softwarepakket verder het actualiseren van een databank op basis van een bewijs van gebruiksrecht voor het softwarepakket omvat. 10. A method according to any one of claims 1-9, in which the adoption of the software package further comprises updating a database on the basis of a proof of entitlement to the software package.
  11. 11. Werkwijze volgens één van de conclusies 1 - 9, waarbij de unieke identificator een waarde omvat die afgeleid kan worden van hardware die is geassocieerd met de cliëntinrichting. 11. A method according to any one of claims 1-9, wherein the unique identifier comprises a value that can be derived from hardware that is associated with the client device.
  12. 12. Systeem omvattend: een processor; 12. A system comprising: a processor; een opslaginrichting; a storage device; een geheugen dat is geconfigureerd voor het opslaan van instructies voor het besturen van de processor om stappen uit te voeren omvattend: verifiëren, door een server, dat een op een cliëntinrichting geïnstalleerde applicatie in aanmerking komt voor adoptie, door te bepalen dat de geïnstalleerde applicatie op de cliëntinrichting is geconfigureerd voor distributie door een server; a memory configured to store in order to perform steps instructions for controlling the processor comprising: verifying, by a server, which one at a client device installed application is eligible for adoption, by providing that in the installed application the client device is configured by a distribution server; verifiëren, door de server, dat de applicatie niet voorheen is geadopteerd, omvattend: automatisch ophalen van een unieke identificator die een individueel exemplaar van de geïnstalleerde applicatie op unieke wijze identificeert uit metadata die zijn geassocieerd met de geïnstalleerde applicatie, en verifiëren dat de unieke identificator niet is geassocieerd met enig gebruikersac-count; verifying, by the server, that the application does not previously been adopted, comprising: automatically obtaining a unique identifier that identifies an individual copy of the installed application to a unique way of metadata that are associated with the installed application, and verifying that the unique identifier is not associated with any gebruikersac-count; en leveren, vanuit de server, van een mededeling naar de cliëntinrichting dat de geïnstalleerde applicatie in aanmerking komt voor adoptie. and providing, from the server, a communication to the client device that the installed application is eligible for adoption.
  13. 13. Systeem volgens conclusie 12, waarbij het geheugen verder instructies omvat voor het adopteren, door de server, van de applicatie naar een gebruikersaccount, waarbij door de adoptie het gebruikersaccount wordt geconfigureerd om privileges met betrekking tot de geadopteerde applicatie toe te staan aan één of meer cliëntinrichtingen die zijn geassocieerd met het gebruikersaccount. 13. A system according to claim 12, wherein the memory further includes instructions for adopting, by the server, from the application to a user account, which is configured to the user through the adoption to privileges with respect to the adopted application to allow to one or more client devices that are associated with the user account.
  14. 14. Systeem volgens één van de conclusies 13, waarbij de privileges downloaden, her-downloaden, en actualiseren van de applicatie omvatten. 14. A system according to any one of claims 13, wherein the download privilege, re-downloading, and updating comprise the application.
  15. 15. Systeem volgens één van de conclusies 12 - 14, waarbij het geheugen verder instructies omvat voor het registreren van een andere cliëntinrichting in het gebruikersaccount en voor het zenden van de geadopteerde applicatie naar de andere cliëntinrichting. 15. A system according to any one of claims 12 to 14, wherein the memory further includes instructions for registering another client device in the user account, and for transmitting the adopted application to the other client device.
  16. 16. Systeem volgens één van de conclusies 12 - 15, waarbij de applicatie voorheen is geïnstalleerd op de één of meer cliëntinrichtingen die zijn geassocieerd met het gebruikersaccount. 16. A system according to any one of claims 12-15, wherein the application is previously installed on the one or more client devices that are associated with the user account.
  17. 17. Systeem volgens één van de conclusies 12 - 16, waarbij het geheugen verder instructies omvat voor het informeren van de cliëntinrichting over een veelheid applicaties die beschikbaar zijn voor adoptie en voor het accepteren van een invoer die één van de veelheid applicaties selecteert. 17. A system according to any one of claims 12 to 16, wherein the memory further includes instructions for informing the client device of a plurality of applications that are available for adoption, and for accepting an input that selects one of the plurality of applications.
  18. 18. Niet-vluchtig computerleesbaar opslagmedium waarop instructies zijn opgeslagen die, wanneer ze worden uitgevoerd door een dataverwerkingsinrichting, de data-verwerkingsinrichting aanzetten tot het uitvoeren van stappen omvattend: verifiëren, door een server, dat een op een cliëntinrichting geïnstalleerde applicatie in aanmerking komt voor adoptie, door te bepalen dat de geïnstalleerde applicatie op de cliëntinrichting is geconfigureerd voor distributie door een server; 18. Non-volatile computer readable storage medium storing instructions which, when executed by a data processing device, the data processing apparatus incitement to perform steps comprising: verifying, by a server, an installed application considered on a client device is found adoption, by providing that the application installed on the client device is configured by a distribution server; verifiëren, door de server, dat de applicatie voorheen niet is geadopteerd, omvattend: automatisch ophalen van een unieke identificator die een individueel exemplaar van de geïnstalleerde applicatie op unieke wijze identificeert uit metadata die zijn geassocieerd met de geïnstalleerde applicatie, en verifiëren dat de unieke identificator niet is geassocieerd met enig ge-bruikersaccount; verifying, by the server, that the application has not previously been adopted, comprising: automatically obtaining a unique identifier that identifies an individual copy of the installed application to a unique way of metadata that are associated with the installed application, and verifying that the unique identifier is not associated with any ge--users account; en leveren, vanuit de server, van een mededeling naar de cliëntinrichting dat de geïnstalleerde applicatie in aanmerking komt voor adoptie. and providing, from the server, a communication to the client device that the installed application is eligible for adoption.
  19. 19. Niet-vluchtig computerleesbaar opslagmedium volgens conclusie 18, waarbij de stappen van het verifiëren dat de applicatie is geïnstalleerd op een cliëntinrichting, van het verifiëren dat de applicatie niet voorheen is geadopteerd, en van het leveren van de mededeling worden uitgevoerd als reactie op een gebruikersaanvraag. 19. Non-volatile computer-readable storage medium of claim 18, wherein the steps of verifying that the application is installed on a client device, of verifying that the application does not previously been adopted, and of delivering the communication to be executed in response to a user request.
  20. 20. Niet-vluchtig computerleesbaar opslagmedium volgens één van de conclusies 18-19, verder omvattend het adopteren, door de server, van de applicatie naar een gebruikersaccount, waarbij door de adoptie het gebruikersaccount wordt geconfigureerd om privileges met betrekking tot de geadopteerde applicatie toe staan aan één of meer cliëntinrichtingen die zijn geassocieerd met de gebruikersaccount. 20. Non-volatile computer-readable storage medium according to any one of claims 18-19, further comprising adopting, by the server, from the application to a user, in which is configured the user account by the adoptive to permit privileges with respect to the adopted application to one or more client devices that are associated with the user account.
NL2009157A 2011-07-12 2012-07-09 System and method for linking pre-installed software to a user account on an online store. NL2009157B1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
US13181424 US9319406B2 (en) 2011-07-12 2011-07-12 System and method for linking pre-installed software to a user account on an online store
US201113181424 2011-07-12
US13248942 US20130019234A1 (en) 2011-07-12 2011-09-29 System and method for linking pre-installed software to a user account on an online store
US201113248942 2011-09-29
US201261596928 true 2012-02-09 2012-02-09
US201261596928 2012-02-09
US201213436609 2012-03-30
US13436609 US20130019237A1 (en) 2011-07-12 2012-03-30 System and method for linking pre-installed software to a user account on an online store

Publications (2)

Publication Number Publication Date
NL2009157A true NL2009157A (en) 2013-01-15
NL2009157B1 true NL2009157B1 (en) 2017-11-08

Family

ID=47625486

Family Applications (1)

Application Number Title Priority Date Filing Date
NL2009157A NL2009157B1 (en) 2011-07-12 2012-07-09 System and method for linking pre-installed software to a user account on an online store.

Country Status (4)

Country Link
JP (1) JP5595451B2 (en)
KR (1) KR101439604B1 (en)
CN (2) CN106096456A (en)
NL (1) NL2009157B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468514B (en) * 2014-10-31 2018-08-31 联想(北京)有限公司 Information processing method, electronic equipment and servers
CN105893071A (en) * 2015-11-30 2016-08-24 乐视云计算有限公司 Online tuning method and system for application

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324649B1 (en) * 1998-03-02 2001-11-27 Compaq Computer Corporation Modified license key entry for pre-installation of software
JP2002091595A (en) * 2000-09-11 2002-03-29 Hitachi Ltd Method and system for managing license
JP2005284506A (en) * 2004-03-29 2005-10-13 Matsushita Electric Ind Co Ltd Download system, apparatus constituting download system, management station, and removable medium
US20060064488A1 (en) * 2004-09-17 2006-03-23 Ebert Robert F Electronic software distribution method and system using a digital rights management method based on hardware identification
CN100589096C (en) * 2004-12-02 2010-02-10 现时技术控股有限公司 Apparatus and method for managing unprotected and protected content in private networks
JP2007265071A (en) * 2006-03-29 2007-10-11 Jordan Kk Application management method and application management system
WO2009097902A1 (en) * 2008-02-08 2009-08-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatuses for authorising provision of indirected content associated with a presentity of a presence service
US20090307682A1 (en) * 2008-06-08 2009-12-10 Sam Gharabally Techniques for Acquiring Updates for Application Programs
US8495190B2 (en) * 2008-06-25 2013-07-23 International Business Machines Corporation Providing access by a client application program over an internet protocol (IP) network to a server application program instance
JP2010049643A (en) * 2008-08-25 2010-03-04 Sourcenext Corp Information processing system, information processing method, and program
US8725839B2 (en) * 2009-12-22 2014-05-13 International Business Machines Corporation Imposing pre-installation prerequisite checks on the install user to ensure a higher rate of installation success

Also Published As

Publication number Publication date Type
KR101439604B1 (en) 2014-09-12 grant
KR20130008480A (en) 2013-01-22 application
CN106096456A (en) 2016-11-09 application
NL2009157A (en) 2013-01-15 application
JP5595451B2 (en) 2014-09-24 grant
CN103207793A (en) 2013-07-17 application
CN103207793B (en) 2016-08-03 grant
JP2013020621A (en) 2013-01-31 application

Similar Documents

Publication Publication Date Title
US7849020B2 (en) Method and apparatus for network transactions
US20090106110A1 (en) Method and system for promoting and transferring licensed content and applications
US20140130035A1 (en) Updating a widget that was deployed to a secure wallet container on a mobile device
US20140089113A1 (en) Selecting ecosystem features for inclusion in operational tiers of a multi-domain ecosystem platform for secure personalized transactions
US6944776B1 (en) System and method for data rights management
US20100293622A1 (en) Availability of permission models in roaming environments
US6321262B1 (en) System and method for identification and streamlined access to online services
US20120005041A1 (en) Mobile content distribution with digital rights management
US20060179002A1 (en) Flexible licensing architecture for licensing digital application
US20080052704A1 (en) Media management system for management of games acquired from a media server
US20050071477A1 (en) Providing information links via a network
US20030014496A1 (en) Closed-loop delivery system
US9003541B1 (en) Method and apparatus for desktop product license portability with user identity subscription using durable tokens
US20110289420A1 (en) Screen customization supporting system, screen customization supporting method, and computer-readable recording medium
US20080065782A1 (en) Management and prioritization of media item downloading
US20100293536A1 (en) Enhanced product functionality based on user identification
US20030154387A1 (en) System, method and article of manufacture for tracking software sale transactions of an internet-based retailer for reporting to a software publisher
US20120158580A1 (en) System, Method and Apparatus for Mobile Payments Enablement and Order Fulfillment
US20080147530A1 (en) Programmatically transferring applications between handsets based on license information
US20030126033A1 (en) System, method and article of manufacture for software source authentication for return purposes
US20030120557A1 (en) System, method and article of manufacture for an internet based distribution architecture
US20130024851A1 (en) Multiple Application Versions
WO2006113834A2 (en) Network commercial transactions
US20030014630A1 (en) Secure music delivery
US20080172300A1 (en) Purchasing of individual features of a software product