Systems and methods for automated cloud-based full data backup and recovery on mobile devices

CN114356651BActive Publication Date: 2026-09-01GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111455502.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2015-05-27
Filing Date
2016-05-17
Publication Date
2026-09-01
Estimated Expiration
2036-05-17

AI Technical Summary

Technical Problem

使用键值对来将第三方应用恢复到客户端设备可以恢复应用设定,但是不可以恢复第三方应用的附加内容

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114356651B_ABST
    Figure CN114356651B_ABST
Patent Text Reader

Abstract

This disclosure relates to systems and methods for automated cloud-based full data backup and recovery on mobile devices. This document describes a method for storing third-party application data to a cloud storage device. The method includes determining to upload data associated with a third-party application stored on a client device to a cloud storage server. The data associated with the third-party application includes both binary data and metadata. The method further includes storing the binary data of the third-party application at a first cloud storage location. The first cloud storage location has a storage address, and the metadata is updated to include the storage address. The method then includes storing the updated metadata at a second cloud storage location different from the first cloud storage location.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Case Analysis

[0002] This application is a divisional application of Chinese invention patent application 201680019563.2, filed on May 17, 2016.

[0003] Cross-references to related applications

[0004] This application claims the benefit of U.S. Provisional Application No. 62 / 167,148, filed May 27, 2015, and relates to U.S. Utility Application No. 15 / 156,539, filed May 17, 2016, the entire contents of each of which are incorporated herein by reference. Technical Field

[0005] Generally, this disclosure relates to systems and methods for backing up data to a cloud storage device and restoring data from a cloud storage device to a mobile device. Background Technology

[0006] Mobile device usage is increasing as global usage patterns shift towards content consumption, creation, and management on mobile devices. However, mobile devices are not ideal platforms for data storage. Mobile devices are prone to damage or inoperability, leading to the loss of locally stored content or data. Data and content may become inaccessible after a mobile device malfunctions due to technical reasons, which may include inadequate or technically invalid data backup capabilities.

[0007] Furthermore, mobile device users frequently upgrade their devices. When setting up a new device, the user experience is often hampered due to the loss of application data and associated settings. This may require users to set up the new device from scratch, potentially requiring significant user input and increasing the load on the new device's user interface components. Additionally, requiring users to set up a new device from scratch may result in the loss of important data associated with third-party applications, such as text messages, photos, application preferences, security settings, or any other suitable third-party application data. Existing backup technologies typically rely on key-value pairs, which only back up certain aspects of third-party application data. Restoring a third-party application to a client device using key-value pairs can restore application settings but not additional content. Therefore, third-party applications with settings backed up and saved as key-value pairs can lead to the restoration of the third-party application environment based on user settings, but the loss of third-party application content generated or stored by the user within the third-party application. Furthermore, existing systems may require third-party application developers to specifically configure their applications to allow backups, or require users to opt into or manually trigger backups. Summary of the Invention

[0008] This document discloses a system and method for backing up application data to a cloud storage device on a per-application basis, thereby making the backup and recovery of data associated with third-party applications more efficient and reliable. Full data backup includes all data associated with third-party applications, including all binary data and metadata associated with settings such as security settings, environment, application history, user preferences, and application content; and any other data associated with third-party applications that may be used to run the third-party application or create the third-party application environment. Therefore, an example of effectively improving full data backup is reducing the amount of user input required to back up and restore all necessary data, thus reducing the load on the device's user interface components. The power used by a mobile device's display can account for a large portion of the device's total energy consumption, so reducing display activity time can lead to lower power consumption, which may be particularly beneficial for mobile devices where minimizing battery power usage is critical. Data backups can be initiated periodically by the client device backup framework when it is determined that a backup should occur. Third-party application data for each application is uploaded to the cloud storage location. Specifically, third-party application data can include two forms of data: binary data and metadata. In this case, binary data can be stored separately from metadata. An identifier including the storage location of binary data can be appended to metadata, such that the appended metadata includes a reference to the cloud storage address of the binary data. Binary data and metadata have different characteristics and can have different optimal storage schemes. For example, a binary data storage device might need to be used to store large amounts of data and to quickly access bytes sequentially. Binary storage devices can be searchable or non-searchable, or otherwise indexed. Metadata storage devices can have capabilities related to the rapid storage of non-binary data and the creation of hierarchical relationships and the propagation of metadata such as ownership data across related folders and files. Metadata storage devices also include means for searching the stored metadata and are equipped to process such searches quickly to support expected user interface response times.

[0009] When a user wishes to restore third-party application data to their client device, they can initiate a device recovery process that restores the data from cloud storage to the client device. Because the third-party application data is restored from a full data backup that includes both settings and content, data loss is minimized. Restoring third-party applications, their application environment, and their data content from the backup enables a seamless transition to the new device. Restoring from a full data backup stored in cloud storage allows users to restore their device to its previous exact state, including installed applications, settings, and optional additional content such as photos, text, and audio or video files.

[0010] In one aspect, a method for storing third-party application data to a cloud storage device includes: determining to upload data associated with the third-party application stored on a client device to a cloud storage server. The data associated with the third-party application includes both binary data and metadata. The method further includes storing the binary data of the third-party application at a first cloud storage location. The first cloud storage location has a storage address, and the metadata is updated to include the storage address. The method then includes storing the updated metadata at a second cloud storage location different from the first cloud storage location.

[0011] In some implementations, the binary data of the third-party application includes the full data of the third-party application. In some implementations, the client device determines whether to upload the data by identifying stored binary data associated with the third-party application stored on the client device. In some implementations, the client device also identifies previously uploaded binary data associated with the third-party application and calculates the difference between the stored binary data and the previously uploaded binary data. The client device compares the difference to a threshold. If the difference is equal to or exceeds the threshold, the client device determines to upload the data associated with the third-party application.

[0012] In some implementations, the client device stores data associated with multiple third-party applications, and each of these applications is associated with corresponding binary data and corresponding metadata. The corresponding binary data and corresponding metadata for each third-party application are uploaded from the client device in a single upload. In some implementations, the data associated with the third-party applications is not fully copied on the client device before the data is downloaded. In some implementations, the client device determines to upload the data associated with the third-party applications based on a predetermined upload schedule. In some implementations, the client device determines to upload the data associated with the third-party applications based on detecting changes to the third-party applications reported by the third-party applications. In some implementations, the client device determines to upload the data associated with the third-party applications when it receives a backup request from a user of the client device.

[0013] In some implementations, the client device is configured to aggregate binary data and metadata of a third-party application into a single file and transfer the file to an upload server in a cloud storage device. The upload server is configured to: separate the binary data from the metadata; transfer the binary data to a first cloud storage location; append the storage address of the first cloud storage location to the metadata to obtain updated metadata; and transfer the updated metadata to a second cloud storage location.

[0014] On the other hand, a method for restoring third-party application data to a client device includes determining whether to provide data associated with the third-party application to the client device. The data associated with the third-party application includes binary data stored in a first cloud storage location having a storage address and metadata stored in a second cloud storage location. The method further includes using the metadata to determine the storage address of the first cloud storage location and providing the binary data from the first cloud storage location to the client device.

[0015] In some implementations, the binary data of the third-party application includes all the data of the third-party application. In some implementations, the client device stores data associated with multiple third-party applications. Each of the multiple third-party applications is associated with corresponding binary data and corresponding metadata, and the corresponding binary data of each third-party application is downloaded to the client device in a single download. In some implementations, when the client device receives a recovery request from the user of the client device, the client device determines to download the data associated with the third-party application. In some implementations, the data associated with the third-party application includes application data, user preferences, and application content. In some implementations, the client device is a first client device, and the binary data and updated metadata are downloaded to a second client device, such that the third-party application data on the first client device is synchronized with the third-party application data on the second device.

[0016] In some implementations, binary data and metadata are transferred to a download server in a cloud storage device, wherein the download server has previously written binary data to a first cloud storage location and previously transferred metadata to a second cloud storage location. In some implementations, the download server has previously transferred metadata to a cloud storage service configured to read updated metadata from the second cloud storage location and write the updated metadata to the second cloud storage location. In some implementations, data associated with another third-party application includes metadata stored in a third cloud storage location and does not include binary data. In some implementations, the method for restoring third-party application data to a client device further includes: determining whether to provide data associated with another third-party application to the client device; identifying the metadata associated with the other third-party application as a set of key-value pairs stored in a third cloud storage location; and providing the set of key-value pairs to the client device. Attached Figure Description

[0017] The above and other features of the invention, including the essence and various advantages of the invention, will become more apparent after reading the following detailed description in conjunction with the accompanying drawings.

[0018] Figure 1This is a block diagram of a system for uploading data to a cloud storage service according to an illustrative embodiment;

[0019] Figure 2 This is a block diagram of a client device and a server configured to collaboratively perform a data upload process according to an illustrative embodiment;

[0020] Figure 3 This is a block diagram illustrating an illustrative method for uploading third-party application data according to an illustrative embodiment; and

[0021] Figure 4 This is a block diagram illustrating an illustrative method for restoring third-party application data from a cloud storage system to a device, according to an illustrative embodiment.

[0022] Figure 5 A flowchart illustrating a method for storing third-party application data to a cloud storage device according to an illustrative embodiment; and

[0023] Figure 6 A flowchart illustrating a method for providing third-party application data to a client device for recovery, according to an illustrative embodiment. Detailed Implementation

[0024] To provide a full understanding of the systems and methods described herein, certain embodiments are described, including a system for backing up and restoring third-party application data on a client device. However, those skilled in the art will understand that the systems and methods described herein can be suitably adapted and modified for the applications being addressed, and that the systems and methods described herein can be used in other suitable applications without departing from their scope. Generally, the computerized systems described herein may include one or more engines, which include one or more processing devices, such as a computer, microprocessor, logic device, or other devices or processors configured with hardware, firmware, and software to perform one or more of the computerized methods described herein.

[0025] As described herein, this invention provides a system and method for performing full backup of data associated with a third-party application. Instead of key-value pairs associated with third-party application settings, full data associated with the third-party application, including settings, history, and content, is uploaded to a cloud storage device. Uploading to the cloud storage device backs up both the binary data and metadata associated with the third-party application. Metadata for the third-party application may include filename, size, password or identifier, file history, description, the current version of the operating system on which the third-party application is designed, and other static metadata. Similar methods can also be used to back up other files and data besides third-party application-specific data. Such data may include memory cards, SD cards, download folders, or other data repositories not associated with individual app data. Furthermore, these and other files and data backed up to the cloud storage device can be exposed as fully operational and visible files to the user in the cloud-based file storage system user interface.

[0026] Backups of third-party application data can occur according to a pre-defined schedule or when third-party application data is modified. For example, a pre-defined schedule might require backing up third-party application data at fixed intervals, such as daily, weekly, monthly, or any other suitable frequency. As another example, backups can be automatically initiated when it is determined that at least a threshold amount of changes have been made to third-party application data. Specifically, changes to third-party application data can include changes to the internal third-party application database or settings. In some embodiments, changes to third-party applications are recorded in a folder associated with the application. These changes can be retrieved by the client device backup framework to determine whether an upload is necessary.

[0027] In some embodiments, the client device can be configured to allow users to customize backup-related settings. For example, when the client device is a mobile phone, the phone may not want to upload third-party application data to cloud storage while connected to a cellular network, as this would consume data in the user's data plan. In this case, the client device can be configured to perform backups only when the mobile device is connected to a fast, reliable, and / or inexpensive network (e.g., a wireless internet network). Alternatively, the user can select one or more options to enable backups over a cellular network. Backups can be configured such that required backups for multiple third-party applications are grouped together, and all uploads of those multiple third-party applications are performed one after another during an upload session. Multiple required backups for more than one third-party application may also occur continuously as the third-party application data changes. Backups can also be configured to occur only when specific device requirements are met, such as when the mobile device is plugged in, or during idle or off-peak usage times (e.g., at night).

[0028] Figure 1 A block diagram of a system 100 for uploading data to a cloud storage service is shown. The system includes a client device 101, applications 102a and 102b (typically application 102), a cloud storage device 103, a first cloud storage location 104, and a second cloud storage location 106. The client device 101 includes a third-party application 102, which includes associated data. The data may include both binary data and metadata. The client device determines that an upload should occur. The determination that an upload should occur may be based on user action, a timed upload, or an upload based on changes to the third-party application and application data that may be initiated by the user or otherwise. The client device 101 transmits the binary data and metadata of the third-party application to the cloud storage device 103. The binary data of the third-party application is stored at the first cloud storage location 104, and the metadata of the third-party application is stored at the second cloud storage location 106 within the cloud storage device 103.

[0029] Data Upload

[0030] Figure 2 This is a block diagram of a system 200 configured to collaboratively perform a data upload process. System 200 includes a backup framework 208, a backup transport 210, and third-party applications 202a, 202b, 202c on a client device 201 (e.g., on the "client side"), and a backup server 218, an upload server 224, a cloud storage service 203, and a metadata storage device 226 on a server 216 (e.g., on the "server side"). Client device 201 may include a mobile device, such as a mobile phone or tablet. Although client device 201 is generally described herein as a mobile device, those skilled in the art will understand that the systems and methods of the present invention are also applicable to performing application data backup and recovery on any number of computing devices, including desktop computers, laptop computers, or any other suitable computing devices. Client device 201 stores data associated with third-party applications 202a, 202b, 202c, which communicate with the backup framework 208, which includes a binary backup module 209. Backup framework 208 communicates with backup transport 210. Backup framework 208 resides in device memory and is configured to determine whether third-party applications 202a, 202b, and 202c require backup by referring to a pre-defined schedule or in response to detecting changes in application data. Backup framework 208 is configured to allow comparison of binary application data with previous backups of third-party application data to determine if the data has changed. This can be achieved through checksum calculation or by determining whether any application changes are recorded in the application change folder.

[0031] After the client device 201 determines that a backup is needed, the binary backup module 209 archives the application data to be uploaded into a single file and sends the file to the backup transfer 210. Figure 2 The backup transfer 210 includes two different data types that can be used by various backup methods. Specifically, such as... Figure 2 As shown, the backup transfer includes a key-value pair portion 213 and a full data backup portion 212 comprising binary data. Generally, other suitable data types can be used without departing from the scope of the invention. After the application data has been sent from the backup framework 208 to the backup transfer 210, the client device 201 requests the server 216 to begin the upload process.

[0032] like Figure 2 As depicted, server 216 includes upload server 224, backup server 218 comprising key-value pair storage device 220 and business logic agent 222, cloud storage service 203, and metadata storage device 226. Upload server 224 processes uploaded binary data and is configured to request business logic agent 222 in backup server 218 to initiate the storage of associated metadata and the creation of location references, which can be used to retrieve data during future recovery requests. Backup server 218 receives requests from upload server 224 and forwards these requests to cloud storage service 203, which prepares metadata for storage in metadata storage device 226. Additionally, structured data related to backups of client devices can be stored in key-value pair storage device 220. Structured data may include a device ID received as part of the upload method, a third-party application ID, and a reference to the storage location of third-party application data stored in the cloud storage device. The structured data may include additional information, including client device type and manufacturing date, a timestamp related to the most recent backup, and information related to the version of backup framework 208 on client device 201.

[0033] In some embodiments, the uploading of third-party application data is achieved through a series of steps. These steps are implemented through... Figure 2 Some components described in Figure 3 Explanation and examples:

[0034] exist Figure 3In step 1, when the client device backup framework 208 determines that data upload is required, it generates backup request information using basic metadata related to the third-party applications 202a, 202b, and 202c that need to be backed up. The backup request message is sent from the client device 201 to the upload server 224. The client device backup framework 208 creates tar files (.tar archive files) for each third-party application 202a, 202b, and 202c that needs a new backup. The client device backup transfer 210 initiates the upload of the third-party application data packaging tool to the upload server 224 by passing the backup request message to the upload server 224. The client device backup transfer 210 also provides metadata related to the third-party application data uploaded to the upload server 224. The upload server 224 receives files via standard upload, binary differential upload, or chunked or recoverable upload. In embodiments including binary differential upload, the binary data to be uploaded and the metadata can be temporarily stored in the binary differential library 214 located on the client device 201. The third-party application data to be uploaded can be determined by a checksum method, which allows for the comparison of the third-party application data on the client device 201 with the existing stored data, as well as the structure describing the difference between the two data files.

[0035] In step 2, the upload server 224 writes the received third-party application binary data to binary data storage device 223. Binary data storage device 223 is a cloud storage location designed to store large amounts of binary data. Binary data storage device 228 can access bytes sequentially and respond to invocation of a location service for the bytes. Third-party application metadata is removed for storage in a second cloud storage location (e.g., ...). Figure 2 (226 metadata storage devices in the middle).

[0036] In step 3, the upload server 224 receives a binary data storage location reference for the third-party application's binary data. This binary data storage location reference includes the file location of the uploaded third-party application data. The binary data storage location reference is a string of numbers that can be used to locate the position of the third-party application data stored in the binary data storage device 228.

[0037] In step 4, the upload server 224 provides a binary data storage location reference for the third-party application data to the business logic agent 222 within the backup server 218, which replicates the binary data location reference. The upload server 224 also provides third-party application metadata to the backup server 218.

[0038] In step 5, backup server 218 passes a binary data storage location reference and third-party application metadata associated with the stored binary data to cloud storage service 203. Backup server 218 creates files and folders as needed to properly store the metadata. Cloud storage service 203 is able to read files and write files to metadata storage device 226.

[0039] In step 6, the cloud storage service 203 uses the received third-party application metadata and binary data storage location reference, and appends the binary data storage location reference to the metadata entry. The appended descriptor can also be appended to the third-party application metadata, for example, an instruction to calculate the storage space for the third-party application data without relying on the user's storage quota. The cloud storage service 203 creates appropriate entries and folders in the metadata storage device 226 for storing the third-party application metadata. The cloud storage service 203 writes the third-party application data to the metadata storage device 226. The metadata storage device 226 is a cloud storage device capable of storing metadata.

[0040] At step 7, the metadata storage device 226 returns a success signal indicating successful storage of the third-party application's metadata. The success signal includes a reference to the location of the metadata, allowing the success signal to be used to locate the metadata.

[0041] In step 8, the cloud storage service 203 transmits a success signal to the backup server 218 that records the success signal.

[0042] In step 9, the backup server 218 sends a success signal to the upload server 224.

[0043] In step 10, the upload server 224 sends a success signal back to the client device 201.

[0044] Binary data is uploaded to upload server 224 and stored in binary data storage device 228. Batch processing of third-party application data may occur on upload server 224. The corresponding metadata is attached to a reference to the binary data storage location and stored in metadata storage device 226. Cloud storage service 203 assists in storing the metadata in the metadata storage device 226. After successful storage of metadata, a success signal is generated by metadata storage device 226 and transmitted back to backup server 218, then to upload server 224, and finally to client device 201. The success signal indicates that the third-party application data has been successfully uploaded and stored in the cloud storage device.

[0045] In some embodiments, third-party application data is uploaded from the mobile device to a cloud storage device as a single file per application. For example, Figure 2Third-party application data for a single third-party application (202a, 202b, or 202C) can be uploaded as a .tar archive file. This type of file may be referred to as a tarball in this document. Performing backups on a per-application basis may be at least advantageous, as this may increase the likelihood of a successful upload. Specifically, it is preferable to upload one file per third-party application at a time, rather than batching changes to multiple third-party applications together. Uploads involving large files are more prone to errors than those involving smaller files. If an upload encounters a problem, only the application data for the individual third-party application needs to be re-uploaded. In this way, uploads containing only application data related to a single third-party application will therefore take less time and be more efficient.

[0046] During backup, each third-party application (202a, 202b, 202c) is uploaded as a single file, requiring only minimal temporary storage before the upload process. The upload process for third-party application data can be executed so that data is not copied to local cache before upload, but rather streamed directly. Therefore, the entire backup payload is never generated on disk. Each third-party application data upload can be processed and uploaded in a single pass to ensure consistency. If the third-party application data changes between two passes, uploading it more than once may result in inconsistent upload processes.

[0047] In some embodiments, it may be difficult to upload third-party application data in a single pass. This can happen if the upload server 224 requires a manifest of the byte range sent to the server at the start of the upload. In these cases, a single-pass upload may not be possible because the manifest must first be calculated by performing a full transfer of the third-party application data file. In this case, there may not be enough disk space to temporarily store the file for processing. There is no guarantee that the second pass used to prepare for the upload via the third-party application data file is the same as the third-party application data file whose snapshot is the first pass. This can be supported by interleaved difference manifest information. A single-pass upload script can be specified using the following format:

[0048] {Use server to copy bytes 0-100, upload these 20 bytes, use server to copy bytes 120-150}.

[0049] Third-party application data backed up to cloud storage is stored as per-application backup data. Only the latest version of the third-party application data is stored in the cloud storage location. Optionally, data upload can be accomplished using a binary differential method, in which only the changed data is uploaded to the cloud storage. Using binary differential, the current state of the third-party application data is compared with the previously uploaded backup to determine what changes have occurred in the third-party application data. The comparison between the current third-party application data and the previous third-party application data backup can be performed using a checksum method. In this method, a checksum of a custom block size of the last uploaded third-party application data is calculated locally on the client device. Only the data indicating the differences can be uploaded to the cloud storage, instead of uploading the entire set of original third-party application data, thereby saving bandwidth and reducing the time required for backup uploads. Therefore, using a binary differential protocol to determine the changes in the third-party application data to be uploaded improves the efficiency of a single upload using the per-third-party application method.

[0050] In some embodiments, binary differential is used to determine whether the upload of third-party application data should be performed, and to determine what changes have occurred to the third-party application data and what content should be uploaded to the cloud storage device. The client device backup transfer reads data from the third-party application data and processes the data progressively. The client backup framework stores at least one checksum block. For each byte read by the client backup transfer, a rolling checksum of the last N bytes is calculated, and the rolling checksum is compared with the checksum of the block associated with the last upload. The checksum of the block generated from the last uploaded third-party application data is stored on the server, and the checksum is downloaded for comparison. If the newly calculated checksum does not match the stored checksum, the earliest byte is sent to the server. If they match, the block is not uploaded to the cloud storage device.

[0051] In some embodiments, backup of third-party application data is configured to occur automatically and according to a set schedule. Third-party application data backup and upload can be automatic and universal for all third-party applications 202a, 202b, and 202c, eliminating the need for third-party application developers to modify their application configurations to back up their data in this system. Developers of third-party applications 202a, 202b, and 202c can opt out of backups by modifying the configuration details or manifest of their applications. Examples of third-party applications 202a, 202b, and 202c where full data backups may not be recommended are financial applications, password storage applications, or authenticators. These third-party applications 202a, 202b, and 202c with developers opting out of automatic backups can still be backed up by the user or by the third-party application 202a, 202b, and 202c through alternative manual mechanisms.

[0052] After third-party application data has been uploaded to and stored on a cloud storage device, the backup of that data may be hidden from the user's view but still associated with their cloud storage account. Alternatively, the user can access the backup of the third-party application data through a user interface within the cloud storage file system. Accessing the backup of third-party application data through the user interface allows the user to modify or manipulate the third-party application data or other data while it is in the cloud storage system. For example, a backup of data related to a photo editing third-party application may include edited or unedited photos, which the user can access and edit or manipulate through the user interface of the associated cloud storage file system within the backup file. Users can also access the backup of third-party application data to delete the backup.

[0053] In some embodiments, backups of third-party application data are stored in hierarchical folders within a cloud storage system. Third-party application binary data and metadata may be stored within a folder associated with the user. The folder containing the backup data is organized in a way that makes the client device and the third-party application identifiable. This may include an object family root folder associated with: the client device's third-party application data backup, the client device ID, the stored third-party application data backup, application tags such as the name, and, in some cases, the packaging tool for the third-party application data files. Although associated with the user's account, the object family root folder may not be available to the user. This folder may also not be synchronized during synchronization events.

[0054] Data recovery

[0055] According to the system and method of the present invention, third-party application data stored in a cloud storage device can be restored to client device 201. To implement the restoration path, the third-party application data can be retrieved following a command from client device 201. During the restoration of third-party applications 202a, 202b, and 202c, upload server 224 can be configured to download data. In this case, upload server 224 can be referred to as download server 230. The restoration of third-party application data from the cloud storage system to the device can be accomplished on an application-by-application basis, as follows: Figure 4 China passed Figure 2 Some component descriptions as described in the document:

[0056] exist Figure 4 In step 1, after the device is restored, the client device 201 backup transfer 210 initiates a third-party application download by sending the device ID and the third-party application ID to the backup server 218. This identifies the client device 201, the user, and the third-party applications 202a, 202b, and 202c that are requesting data associated with the user.

[0057] In step 2, after receiving the identification information and the third-party application data recovery request from the client device 201, the backup server 218 sends a success signal back to the client device 201 from the last successful backup of the third-party application data. The success signal includes a reference to the metadata storage location.

[0058] In step 3, the client device backup transmission 210 connects to the download server 230, thereby sending a success signal with metadata storage location reference to the download server 230.

[0059] In step 4, download server 230 uses the metadata storage location reference to request third-party application metadata from metadata storage device 226.

[0060] In step 5, the download server 230 receives third-party application metadata and a binary storage location reference, which is attached to the metadata during the backup of the third-party application data.

[0061] In step 6, the download server 230 uses a binary storage location reference to request binary data for a third-party application from the binary data storage device 228.

[0062] In step 7, the binary data of the third-party application is extracted from the binary data storage device 228 and sent to the download server 230.

[0063] In step 8, download server 230 directly provides the requested third-party application binary data and metadata to client device backup transfer 210. Client device backup transfer 210 extracts the delivered data to a specific location in the client device storage associated with the storage of the third-party application data. Each third-party application 202a, 202b, 202c whose data is restored to the device can have a different location within the client device storage designated for storing the data. Therefore, client device backup transfer 210 applies third-party applications 202a, 202b, 202c to client device 201, thereby restoring all third-party application settings and files.

[0064] The recovery method described above can be performed during the setup process for setting up a new device. When an account is added to client device 201, the client device's backup framework 208 can check if a backup is already stored in cloud storage. If so, the third-party application data for each of the third-party applications 202a, 202b, and 202c is restored. For example, client device 201 queries backup server 218 regarding third-party applications 202a, 202b, or 202c. If backup server 218 provides a success signal to client device 201, this indicates that a backup of the application exists in cloud storage.

[0065] If a backup of the third-party application data for the specific requested third-party applications 202a, 202b, and 202c is determined to exist during the recovery request, the process of downloading the third-party application data begins. A binary data storage location reference is retrieved from the stored metadata. The appropriate third-party application binary data is located in binary data storage device 228 using the binary data storage location reference, and a packaging tool file (.tar archive file) is downloaded from binary data storage device 228 via download server 230. Download server 230 serves the third-party application data to client device 201. If a backup of the requested third-party application is not identified, an attempt is made to restore the alternative methods configured for the third-party application, including key-value pairs.

[0066] Restoring third-party application data from cloud storage to a new device allows users to experience the same environment and settings within third-party applications 202a, 202b, and 202c on the new device after restoration, as well as the same environment within third-party applications 202a, 202b, and 202c as on the previous device. This can include user preferences, such as the appearance and functionality of the application. Application-specific data is also restored, including data stored within the application. For example, data stored in a third-party application that functions as a text messaging application may include text, photos, audio files, text message history, and contacts. These will be stored in cloud storage using the described upload method and restored to the device via a restore request. After restoring the third-party application data, a backup of the third-party application data is stored in cloud storage for subsequent restore or download requests.

[0067] In some embodiments, a user can initiate a recovery request to synchronize a second device with a first device, the first device having uploaded third-party application data to a cloud storage device. The user can initiate a recovery process, which serves as a means to synchronize third-party applications 202a, 202b, and 202c between the two devices, ensuring that the third-party applications 202a, 202b, and 202c contain the same application settings, environment, and content.

[0068] In some embodiments, the systems and methods of the present invention can be implemented in a manner that maintains backward compatibility with existing backup methods. The recovery process may offer the user the option to recover third-party application data from a backup created using an older version of a backup protocol, such as one that relies on key-value pairs. In this way, a client device 201, using the software operations required for backup and recovery according to the methods described herein, can request recovery from a backup performed using a previously used backup method. The user can also recover third-party application data from a backup performed using the described methods when using older backup and recovery software. Recovery using older backup and recovery software will be successful because the older backup software will ignore success signals containing metadata storage location references and new data, and will instead rely on key-value pairs storing metadata for recovery.

[0069] The backup and restore methods are backward compatible and do not require migration of previous backups to be migrated as performed by the key-value pair method. The backup method described herein is compatible with backups that include key-value pairs. Additionally, using the described backup method requires initiating a full backup of all application data to establish a complete record of the third-party application files. These files are used to compare with the third-party application data present on the client device to determine if a backup is necessary. Upon receiving access to the backup method, a full initial backup of third-party applications 202a, 202b, and 202c eliminates the need for any previous key-value pair backup files. In some embodiments, key-value pairs containing previously backed-up third-party application data are also backed up as part of the full data backup.

[0070] When a device is decommissioned, third-party application data previously stored on the device can be restored to a new device. However, a decommissioned device may result in "orphaned datasets," where third-party application data is stored in the cloud but is no longer connected to the user or the running client device 201. Methods can be employed to remove these orphaned datasets. Orphaned datasets can be set to expire after a certain period. Alternatively, the user can signal that the device has been decommissioned or will become inactive via the user interface on the device or in the user account associated with the client device 201.

[0071] During the gradual adoption of the new backup and recovery method, a large data flow to the cloud storage device occurs because all third-party application data on client device 201 is backed up. During the initial rollout of this backup function, the upload process can be controlled by mechanisms on both the client and server sides. For example, user access to the upload and recovery functions may be device-based. Client devices can be configured to enable or disable functions on specific client devices or client device models. Alternatively, the function can be pushed to only a certain percentage of users on client devices, allowing initial uploads of third-party application data for those users before pushing the function to an additional percentage. Furthermore, access to the upload and recovery functions may be device-based, with the upload and recovery functions covering more third-party applications over time. The configuration of backup time periods can also be changed to control the data flow by switching between two modes. According to the first mode, an upload process can be initiated when there is a sufficient amount of change in third-party application data. According to the second mode, an upload process can be initiated based on a predetermined schedule, for example, once every N days.

[0072] On the server side, data flow can be controlled by implementing throttling mechanisms (e.g., flags or feature switches) on the server. These flags or feature switches are readable by both the upload and backup servers. Above set server limits, the flags return a custom error code indicating a failure due to throttling. This custom error code also includes a field indicating the recommended waiting period before making another attempt. Additional flags can also be incorporated to protect downstream services in emergency situations where all upload calls are stopped.

[0073] Figure 5 A flowchart illustrating a method 500 for storing third-party application data to a cloud storage device is shown. Method 500 includes the following steps: determining to download data associated with the third-party application to a cloud storage server (step 502); storing the binary data of the third-party application at a first cloud storage location (step 504); updating metadata to include the storage address of the first cloud storage location (step 506); and storing the updated metadata at a second cloud storage location different from the first cloud storage location (step 508).

[0074] At step 502, the client device backup framework (e.g., Figure 2(208) determines that data associated with a third-party application on the client device should be downloaded to the cloud storage server. The requirement to download third-party application data to the cloud storage server can be determined based on scheduled downloads, user requests to upload data, or changes to the third-party application data. In some implementations, the requirement to download third-party application data can be determined by comparing the third-party application data currently stored on the cloud storage server with the third-party application data stored on the client device using a checksum method. The third-party application data to be downloaded to the cloud storage device includes both binary data and metadata.

[0075] In step 504, the binary data is stored in a first cloud storage location. The cloud storage location has an associated storage address. The binary data associated with the third-party application is backed up and transferred from the client device as a data packaging tool (e.g., a .tar archive file). Figure 2 (210) is sent to the upload server. The binary data is stored in a first cloud storage location specified for storing large amounts of binary data.

[0076] At step 506, the metadata associated with the third-party application is updated to include the storage address of the first cloud storage location. Cloud storage services (e.g., Figure 2 (203) Appends the binary storage address to the metadata. The binary data can then be associated with third-party metadata and retrieved using the cloud storage address in the updated metadata. The storage location can be a numeric string pointing to the file location of the third-party application's binary data. In some implementations, the cloud storage service may also append additional descriptors and instructions to the metadata before storage.

[0077] In step 508, the updated metadata is stored at a second cloud storage location. This second cloud storage location differs from the first cloud storage location and is optimized for storing metadata. A success signal can be returned to the upload server after successfully storing the binary data and metadata. The success signal may additionally include a reference to the metadata location used to access the metadata.

[0078] Figure 6 A flowchart illustrating method 600 for restoring third-party application data to a client device is shown. Method 600 includes the following steps: determining whether to provide data associated with a third-party application from a cloud storage device to the client device (step 602); using metadata to determine the storage address of a first cloud storage location (step 604); and providing binary data from the first storage location to the client device (step 606).

[0079] At step 602, it is determined whether recovery is needed to provide data associated with a third-party application to the client device. The recovery may be in response to a request or selection from the user, or a request from the third-party application. The recovery may also be implemented as synchronization between devices. The data associated with the third-party application includes both binary data stored in a first cloud storage location with a storage address and metadata stored in a second cloud storage location. Client device backup transfer (e.g., Figure 2 210) By sending the device ID associated with the client device and the third-party application ID associated with the third-party application to the backup server (e.g., Figure 2 Use 218 in the middle to initiate data download.

[0080] Step 604 involves using previously stored metadata associated with the third-party application to determine the storage address of the binary data. After receiving identification information including the device ID and the third-party application ID, the backup server sends a success signal from the last successful backup of the third-party application data to the client device. The success signal includes a reference to the metadata storage location. The metadata can then be retrieved from the metadata storage device to obtain the binary storage location reference, which was appended to the metadata during a previous backup of the third-party application data.

[0081] In step 606, the retrieved binary data storage location address is used to locate and request binary data associated with a third-party application. The binary data and metadata are transferred to the client device via a backup transfer from the download server. The binary data and metadata are then transferred to storage on the client device.

[0082] Although various embodiments of the invention have been shown and described herein, it will be apparent to those skilled in the art that such embodiments are provided by way of example only. Many variations, modifications, and substitutions will occur to those skilled in the art without departing from the invention. It should be understood that various alternatives to the embodiments of the invention described herein can be used to practice the invention.

[0083] A1. A method for uploading third-party application data to a cloud storage device, the method comprising:

[0084] Determine whether to upload data associated with a third-party application from the client device, wherein the data associated with the third-party application includes binary data and metadata;

[0085] The binary data and metadata of the third-party application are transferred to a cloud storage device, wherein:

[0086] The binary data is stored in a first cloud storage location with a storage address;

[0087] The metadata is appended with the storage address to obtain updated metadata; and

[0088] The updated metadata is stored in a second cloud storage location, which is different from the first cloud storage location.

[0089] A2 is the method according to embodiment A1, wherein the binary data of the third-party application includes the full data of the third-party application.

[0090] A3. The method according to any one of embodiments A1 to A2, wherein determining whether to upload the data associated with the third-party application includes:

[0091] Identify the stored binary data associated with the third-party application on the client device;

[0092] Identify previously uploaded binary data associated with the third-party application;

[0093] Calculate the difference between the stored binary data and the previously uploaded binary data; and

[0094] The difference is compared with a threshold.

[0095] A4 describes the method according to embodiment A3, wherein if the difference is equal to or exceeds the threshold, the client device determines to upload the data associated with the third-party application.

[0096] A5 is a method according to any one of embodiments A1 to A4, wherein the client device stores data associated with a plurality of third-party applications, each of the plurality of third-party applications being associated with corresponding binary data and corresponding metadata, and the corresponding binary data and corresponding metadata of each third-party application being uploaded from the client device in a single upload.

[0097] A6 is the method according to any one of embodiments A1 to A5, wherein, prior to the transmission, the data associated with the third-party application is not completely copied on the client device.

[0098] A7. The method according to any one of embodiments A1 to A6, wherein the client device determines to upload the data associated with the third-party application based on a predetermined upload schedule.

[0099] A8. The method according to any one of embodiments A1 to A7, wherein, based on detecting a change in the third-party application reported by the third-party application, the client device determines to upload the data associated with the third-party application.

[0100] A9. The method according to any one of embodiments A1 to A8, wherein when the client device receives a backup request from a user of the client device, the client device determines to upload the data associated with the third-party application.

[0101] A10. The method according to any one of embodiments A1 to A9, wherein transmitting the binary data and the metadata comprises:

[0102] Aggregate the binary data and metadata of the third-party application into a single file; and

[0103] The file is transferred to an upload server in the cloud storage device, wherein the upload server is configured to:

[0104] Separate the binary data from the metadata;

[0105] The binary data is transmitted to be stored in the first cloud storage location;

[0106] Append the storage address of the first cloud storage location to the metadata to obtain the updated metadata; and

[0107] The updated metadata is transmitted to be stored in the second cloud storage location.

[0108] A11. The method according to embodiment A10, wherein the single file has a file type .tar.

[0109] A12. The method according to any one of embodiments A1 to A11, wherein the data associated with the third-party application includes application data, user preferences, and application content.

[0110] A13 The method according to any one of embodiments A11 to A12 further includes receiving a reference to the second cloud storage location at the client device.

[0111] A14 is a method according to any one of embodiments A1 to A13, wherein when the binary data is stored in the first cloud storage location, the previously uploaded binary data of the third-party application is rewritten, and when the updated metadata is stored in the second cloud storage location, the previously uploaded metadata of the third-party application is rewritten.

[0112] A15. The method according to any one of embodiments A1 to A14, wherein a user can access the transmitted binary data and the metadata through a user interface that can access the cloud storage device.

[0113] A16. The method according to any one of embodiments A1 to A15, wherein the client device is a first client device, and the binary data and the updated metadata are downloaded to a second client device, such that the third-party application data on the first client device is synchronized with the third-party application data on the second device.

[0114] A17. The method according to any one of embodiments A1 to A16, wherein the binary data and the metadata are transmitted to an upload server in the cloud storage device, and wherein the upload server writes the binary data to the first cloud storage location and transmits the updated metadata to the second cloud storage location.

[0115] A18. The method according to embodiment A17, wherein the upload server transmits the updated metadata to the cloud storage service, and the cloud storage service is configured to read the updated metadata from the second cloud storage location and write the updated metadata to the second cloud storage location.

[0116] A19 is the method according to any one of embodiments A1 to A18, wherein the transmission of the binary data does not use key-value pairs.

[0117] A20, according to any one of embodiments A1 to A19, further includes:

[0118] Determine whether the list associated with the third-party application indicates that the data associated with the third-party application will be transferred using a full data backup process or a partial data backup process; and

[0119] If it is determined that a partial data backup process is to be used, then a portion of the metadata is transferred to the cloud storage device, without transferring any data from the binary data to the cloud storage device.

[0120] A21. The method according to embodiment A20, wherein transmitting the portion of the metadata to the cloud storage device includes using key-value pairs.

[0121] A22. A system for performing any one of the methods according to embodiments A1 to A21.

[0122] B1. A method for storing third-party application data to a cloud storage device, the method comprising:

[0123] It is determined that data associated with a third-party application stored on a client device will be downloaded to a cloud storage server, wherein the data associated with the third-party application includes binary data and metadata;

[0124] The binary data of the third-party application is stored in a first cloud storage location with a storage address, wherein the metadata is updated to include the storage address; and

[0125] The updated metadata is stored in a second cloud storage location, which is different from the first cloud storage location.

[0126] B2. The method according to embodiment B1, wherein the binary data of the third-party application includes all data of the third-party application.

[0127] B3. The method according to any one of embodiments B1 to B2, wherein the client device determines whether to upload the data in the following manner:

[0128] Identify the stored binary data associated with the third-party application on the client device;

[0129] Identify previously uploaded binary data associated with the third-party application;

[0130] Calculate the difference between the stored binary data and the previously uploaded binary data; and

[0131] The difference is compared with a threshold.

[0132] B4. The method according to embodiment B3, wherein if the difference is equal to or exceeds the threshold, the client device determines to upload the data associated with the third-party application.

[0133] B5. The method according to any one of embodiments B1 to B4, wherein the client device stores data associated with a plurality of third-party applications, each of the plurality of third-party applications being associated with corresponding binary data and corresponding metadata, and the corresponding binary data and corresponding metadata of each third-party application being uploaded from the client device in a single upload.

[0134] B6. The method according to any one of embodiments B1 to B5, wherein the data associated with the third-party application is not completely copied on the client device before the data is downloaded.

[0135] B7. The method according to any one of embodiments B1 to B6, wherein, based on a predetermined upload schedule, the client device determines to upload the data associated with the third-party application.

[0136] B8. The method according to any one of embodiments B1 to B7, wherein, based on detecting a change in the third-party application reported by the third-party application, the client device determines to upload the data associated with the third-party application.

[0137] B9. The method according to any one of embodiments B1 to B8, wherein when the client device receives a backup request from a user of the client device, the client device determines to upload the data associated with the third-party application.

[0138] B10. The method according to any one of embodiments B1 to B9, wherein:

[0139] The client device is configured to:

[0140] Aggregate the binary data and metadata of the third-party application into a single file; and

[0141] Transfer the file to the upload server of the cloud storage device; and

[0142] The upload server is configured as follows:

[0143] Separate the binary data from the metadata;

[0144] The binary data is transmitted to be stored in the first cloud storage location;

[0145] Append the storage address of the first cloud storage location to the metadata to obtain the updated metadata; and

[0146] The updated metadata is transmitted to be stored in the second cloud storage location.

[0147] B11. The method according to embodiment B10, wherein the single file has a file type .tar.

[0148] B12. The method according to any one of embodiments B1 to B11, wherein the data associated with the third-party application includes application data, user preferences, and application content.

[0149] B13. The method according to any one of embodiments B1 to B12 further includes transmitting a reference to the second cloud storage location to the client device.

[0150] B14. The method according to any one of embodiments B1 to B13, wherein when the binary data is stored in the first cloud storage location, the previously uploaded binary data of the third-party application is rewritten, and when the updated metadata is stored in the second cloud storage location, the previously uploaded metadata of the third-party application is rewritten.

[0151] B15. The method according to any one of embodiments B1 to B14, wherein a user can access the transmitted binary data and the metadata through a user interface that can access the cloud storage device.

[0152] B16. The method according to any one of embodiments B1 to B15, wherein the client device is a first client device, and the method further includes transmitting the binary data and the updated metadata to a second client device, such that the third-party application data on the first client device is synchronized with the third-party application data on the second device.

[0153] B17. The method according to any one of embodiments B1 to B16, wherein the binary data and the metadata are transmitted to an upload server in the cloud storage device, and wherein the upload server writes the binary data to the first cloud storage location and transmits the updated metadata to the second cloud storage location.

[0154] B18. The method according to embodiment B17, wherein the upload server transmits the updated metadata to the cloud storage service, the cloud storage service being configured to read the updated metadata from the second cloud storage location and write the updated metadata to the second cloud storage location.

[0155] B19. The method according to any one of embodiments B1 to B18, wherein the storage of the binary data does not use key-value pairs.

[0156] B20. The method according to any one of embodiments B1 to B19, wherein the client device is configured to:

[0157] Determine whether the list associated with the third-party application indicates that the data associated with the third-party application will be transferred using a full data backup process or a partial data backup process; and

[0158] If it is determined that a partial data backup process is to be used, then a portion of the metadata is transferred to the cloud storage device, without transferring any data from the binary data to the cloud storage device.

[0159] B21. The method according to embodiment B20, wherein the portion of the metadata is transmitted to the cloud storage device using key-value pairs.

[0160] B22. A system for performing any one of the methods according to embodiments B1 to B21.

[0161] C1. A method for restoring third-party application data to a client device, the method comprising:

[0162] Determine whether to download data associated with a third-party application to the client device, wherein the data associated with the third-party application includes binary data stored in a first cloud storage location with a storage address, and metadata stored in a second cloud storage location;

[0163] The metadata is used to determine the storage address of the first cloud storage location; and

[0164] The binary data is downloaded from the first cloud storage location to the client device.

[0165] C2. The method according to embodiment C1, wherein the binary data of the third-party application includes all data of the third-party application.

[0166] C3. The method according to any one of embodiments C1 to C2, wherein the client device stores data associated with a plurality of third-party applications, each of the plurality of third-party applications being associated with corresponding binary data and corresponding metadata, and the corresponding binary data of each third-party application being downloaded to the client device in a single download.

[0167] C4. The method according to any one of embodiments C1 to C3, wherein when the client device receives a recovery request from the user of the client device, the client device determines to download the data associated with the third-party application.

[0168] C5. The method according to any one of embodiments C1 to C4, wherein the data associated with the third-party application includes application data, user preferences, and application content.

[0169] C6. The method according to any one of embodiments C1 to C5, wherein the client device is a first client device, and the binary data and the updated metadata are downloaded to a second client device, such that the third-party application data on the first client device is synchronized with the third-party application data on the second device.

[0170] C7. The method according to any one of embodiments C1 to C6, wherein the binary data and the metadata are transmitted to a download server in the cloud storage device, and wherein the download server previously wrote the binary data to the first cloud storage location and previously transmitted the metadata to write to the second cloud storage location.

[0171] C8. The method according to embodiment C7, wherein the download server previously transmits the metadata to a cloud storage service, the cloud storage service being configured to read the updated metadata from the second cloud storage location and write the updated metadata to the second cloud storage location.

[0172] C9. The method according to any one of embodiments C1 to C8, wherein the data associated with another third-party application includes metadata stored in a third cloud storage location and does not include binary data.

[0173] C10. The method according to embodiment C9 further includes:

[0174] Determine whether to download the data associated with the other third-party application to the client device;

[0175] The metadata associated with the other third-party application is identified as a set of key-value pairs stored in the third cloud storage location; and

[0176] The set of key-value pairs is downloaded to the client device.

[0177] C11. A system for performing any one of the methods according to embodiments C1 to C10.

Claims

1. A method for storing mobile device data to a cloud storage device, the method comprising: The user's first mobile device detects predetermined conditions to back up data associated with the first mobile device to the cloud storage device; In response to detecting the predetermined condition, data associated with the first mobile device is uploaded to a cloud storage server, wherein the data associated with the first mobile device includes (i) data associated with a plurality of third-party applications hosted by the first mobile device and (ii) one or more of contact information stored on the first mobile device, text messages stored on the first mobile device, or the contents of a memory card associated with the first mobile device, wherein the data associated with the plurality of third-party applications includes binary data and metadata of the plurality of third-party applications; The binary data of the multiple third-party applications is stored in a first cloud storage location; and The metadata of the plurality of third-party applications is stored in a second cloud storage location, wherein the data associated with the first mobile device is stored in the cloud storage device for subsequent restoration to the user's second mobile device: (i) the data associated with the plurality of third-party applications stored on the first mobile device and (ii) one or more of the contact information stored on the first mobile device, the text messages stored on the first mobile device, or the content of the memory card associated with the first mobile device.

2. The method according to claim 1, wherein, The binary data of each of the plurality of third-party applications includes the full data of the corresponding third-party application, wherein the first cloud storage location has a storage address, wherein the metadata of the plurality of third-party applications is updated to include the storage address, and wherein the second cloud storage location is different from the first cloud storage location.

3. The method according to claim 1, wherein, The first mobile device stores data associated with multiple third-party applications, each of which is associated with corresponding binary data and corresponding metadata, and the corresponding binary data and corresponding metadata of each third-party application are backed up from the first mobile device in a single upload.

4. The method according to claim 3, wherein, Before transmitting the binary data and the metadata, the data associated with each of the plurality of third-party applications is not fully copied on the first mobile device.

5. The method according to claim 1, wherein, The predetermined conditions include predetermined upload scheduling.

6. The method according to claim 1, wherein, The predetermined conditions include detecting changes in the data of the third-party application reported by the third-party application among the plurality of third-party applications.

7. The method according to claim 1, wherein, The predetermined condition includes the first mobile device receiving a backup request from the user of the first mobile device.

8. A system for storing data associated with a user's first mobile device to a cloud storage device, comprising: Memory; as well as A processing device coupled to the memory, the processing device performing the following operations: Detect predetermined conditions to back up data associated with the first mobile device to the cloud storage device; as well as In response to detecting the predetermined condition, data associated with the first mobile device is uploaded to a cloud storage server, wherein the data associated with the first mobile device includes (i) data associated with multiple third-party applications stored on the first mobile device and (ii) one or more of contact information stored on the first mobile device, text messages stored on the first mobile device, or the contents of a memory card associated with the first mobile device, wherein the data associated with the multiple third-party applications includes binary data and metadata of the multiple third-party applications; The binary data of the multiple third-party applications is stored in a first cloud storage location; and The updated metadata of the plurality of third-party applications is stored in a second cloud storage location, wherein the data associated with the first mobile device is stored in the cloud storage device for subsequent restoration to the user's second mobile device: (i) the data associated with the plurality of third-party applications stored on the first mobile device and (ii) one or more of the contact information stored on the first mobile device, the text messages stored on the first mobile device, or the content of the memory card associated with the first mobile device.

9. The system according to claim 8, wherein, The binary data of each of the plurality of third-party applications includes the full data of the corresponding third-party application, wherein the first cloud storage location has a storage address, wherein the metadata of the plurality of third-party applications is updated to include the storage address, and wherein the second cloud storage location is different from the first cloud storage location.

10. The system according to claim 8, wherein, The first mobile device stores data associated with multiple third-party applications, each of which is associated with corresponding binary data and corresponding metadata, and the corresponding binary data and corresponding metadata of each third-party application are backed up from the first mobile device in a single upload.

11. The system according to claim 8, wherein, Before transmitting the binary data and the metadata, the data associated with each of the plurality of third-party applications is not fully copied on the first mobile device.

12. The system according to claim 8, wherein, The predetermined conditions include predetermined upload scheduling.

13. The system according to claim 8, wherein, The predetermined conditions include detecting changes in the data of the third-party application reported by the third-party application among the plurality of third-party applications.

14. The system according to claim 8, wherein, The predetermined condition includes the first mobile device receiving a backup request from the user of the first mobile device.

15. A non-transitory computer-readable medium for storing instructions, which, when executed by one or more processing devices, cause the one or more processing devices to perform the following operations: Detect predetermined conditions to back up data associated with the user's primary mobile device to a cloud storage device; In response to detecting the predetermined condition, data associated with the first mobile device is uploaded to the cloud storage server, wherein, The data associated with the first mobile device includes (i) data associated with a plurality of third-party applications stored on the first mobile device and (ii) one or more of contact information stored on the first mobile device, text messages stored on the first mobile device, or the contents of a memory card associated with the first mobile device, wherein the data associated with the plurality of third-party applications includes binary data and metadata of the plurality of third-party applications; The binary data of the multiple third-party applications is stored in a first cloud storage location; and The updated metadata of the plurality of third-party applications is stored in a second cloud storage location, wherein the data associated with the first mobile device is stored in the cloud storage device for subsequent restoration to the user's second mobile device: (i) the data associated with the plurality of third-party applications stored on the first mobile device and (ii) one or more of the contact information stored on the first mobile device, the text messages stored on the first mobile device, or the content of the memory card associated with the first mobile device.

16. The computer-readable medium of claim 15, wherein, The binary data of each of the plurality of third-party applications includes the full data of the corresponding third-party application, wherein the first cloud storage location has a storage address, wherein the metadata of the plurality of third-party applications is updated to include the storage address, and wherein the second cloud storage location is different from the first cloud storage location.

17. The computer-readable medium of claim 15, wherein, The first mobile device stores data associated with multiple third-party applications, each of which is associated with corresponding binary data and corresponding metadata, and the corresponding binary data and corresponding metadata of each third-party application are backed up from the first mobile device in a single upload.

18. The computer-readable medium according to claim 15, wherein, Before transmitting the binary data and the metadata, the data associated with each of the plurality of third-party applications is not fully copied on the first mobile device.

19. The computer-readable medium according to claim 15, wherein, The predetermined conditions include predetermined upload scheduling.

20. The computer-readable medium of claim 15, wherein, The predetermined conditions include detecting changes in the data of the third-party application reported by the third-party application among the plurality of third-party applications.

Citation Information

Patent Citations

  • System and method for automatic cloud-based full-data backup and restore on mobile devices

    US10455015B2

  • Methods and apparatus for multi-phase restore

    US20120310896A1