e77c12ba37b7358ef6b6a6010e778926cc4194b8 |
|
29-Jan-2015 |
Christopher Tate <ctate@google.com> |
Don't run full-data backups when backup is disabled If the scheduled job fires but backup is disabled or the device is not yet provisioned (i.e. has not yet finished going through setup), bow out gracefully without running any backup operations. Also, even if a backup is directly invoked (e.g. via adb), verify again right before we start collecting app data, and abandon the operation in that path as well. (This is redundant; having only the latter test would suffice, but this lets us distinguish in the logging more easily.) Finally, make sure that if we were waiting on setup before permitting backup operations to begin, that we startup the full-data scheduling as well as the [separate] key/value scheduling. Bug 19197062 Change-Id: I3d8fb650c50f946d8ed7ac7170df361c707f2528
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
cf962601186a05a8818c02b690c1e7b5c15144f1 |
|
16-Jan-2015 |
Christopher Tate <ctate@google.com> |
Don't write widget metadata to backup unless it's new/changed Redundant backup traffic is bad. Don't commit the widget metadata payload (or the deletion operation for it) unless the widget state of the app has actually changed since the last backup. Bug 19003911 Change-Id: I93819173c0e2357b030d9e2b3d2ee57f2410bb57
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
b89e1405cf9f1da533dc0843390a1b6783abb0f4 |
|
07-Jan-2015 |
Christopher Tate <ctate@google.com> |
Support single-package backup rejection by the transport We now cleanly handle the case of the transport blacklisting specific packages from key/value backup. Previously we would halt the entire backup pass and reschedule if the transport returned any error from performBackup(pkg). Now, we recognize the TRANSPORT_PACKAGE_REJECTED result from that invocation, and properly drop that package's work but proceed with running the rest of the backup queue as expected. Bug 18694053 Change-Id: Id0dd6d59492bdea9f970540d776f37db0cc5d99c
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
603ad6f7d00b6c1687102f4679314af533f18f6a |
|
06-Jan-2015 |
Christopher Tate <ctate@google.com> |
Remove the "backup_data_changed" event log Nowadays it's just spammy and uninformative, so away it goes. Bug 18833115 Change-Id: Ic373c596d7a892c4fedc0343e2c03dc1c295225e
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
a7e47d5d344674f4174919c4ac51e5b9c74b5802 |
|
01-Dec-2014 |
Christopher Tate <ctate@google.com> |
Don't crash if a system restore fails before constructing the PMBA If a whole-system restore operation failed at just the wrong point, we'd wind up in the teardown code without a certain vital bit of it having been initialized, and crash on the null pointer. Now we recognize this failure mode and make sure not to do that. Bug 18574450 Change-Id: Ifa2c10ce16bb3c6bc916ed7151c5fd51b7225691
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
bbe23b31dcd0eec8af5b5198970de7ff2a9ef79a |
|
30-Oct-2014 |
Christopher Tate <ctate@google.com> |
Enable runtime turndown of backup/restore services The heavy implementation of the backup manager service is now sitting behind a lightweight trampoline that actually provides the binder call interface. The indirection allows us now to tear down the implementation on the fly without breaking callers who have cached binder references to the backup services: these callers will simply see their future invocations failing benignly. In addition there is now an API for suitably privileged callers such as device policy management to effect this turndown. Finally, there is now a static system property, "ro.backup.disable", that a product can use to outright remove backup/restore operation from the system's operation. The public APIs will continue to be safely usable on such products but no data will be moved to or from the device. Bug 17367491 Change-Id: I8108e386ef3b5c967938fae483366d6978fe4e04
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
a28b5c51602ccc48f2672274dabda05d3776ccd9 |
|
16-Oct-2014 |
Christopher Tate <ctate@google.com> |
Eliminate race condition around backup completion + resumption Ensure that the callback always sees the current-operation state in sync with the various other bits of internal backup-operation state. Previously only the current-operation state was managed inside the critical section; this resulted in a slim race window where a callback could see an ongoing operation as still valid, but after the internal state on which that operation depended had already been cleared. Bug 17931760 Change-Id: Ia032668e7a9d22f1029c57fc98db9e86484d5719
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
0f32717a17307ee581381d7f8527b686aacb3ac4 |
|
16-Oct-2014 |
Christopher Tate <ctate@google.com> |
Fix spurious restore session timeouts The restore-session idle timeout should not be ticking while we're doing legitimate restore work. We now explicitly stop the timeout ticker [a delayed message on our handler thread] whenever we undertake a valid restore operation. The timer is already correctly resumed when restore operations conclude. (In practice we need to suspend the timeout tracking at exactly those times when we're entering the wakelock-protected restore flow. The timeout is reestablished when the wakelock is released; this part is already in the code.) Bug 17990544 Change-Id: I7318020ce30fd9c35bc3a644f8c101fd3d063c8b
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
2aa1d18e3acd269ed7a5f5a4843d447735f0676c |
|
10-Oct-2014 |
Christopher Tate <ctate@google.com> |
Fix bug 17931760 - spurious timeout leads to mayhem We know a priori that the PMBA metadata package's backup pass doesn't need to be tracked for timeout, because it's run inline rather than as an asynchronous separate-process operation. Change-Id: Ifd21ab3a016917f5e557a38c1c88f8d8ac1337d2
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
6067d79807653172de9772d8cfd5e914557207b7 |
|
08-Oct-2014 |
Christopher Tate <ctate@google.com> |
Actually tell the widget service that restore is starting Before beginning a full-system restore we need to tell the widget service, so that it can properly start remapping IDs from the ground state. Bug 17869323 Change-Id: I152257563f5b52cae67244e936bc2c44ced7618d
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
ecae2116169e4cc7c109fcfc2aa9f5be1d105995 |
|
04-Oct-2014 |
Christopher Tate <ctate@google.com> |
adb backup/restore fixes Bug 17811327 : teach adb restore about the new widget metadata entries Bug 14165872 : -nosystem should not act like -onlysystem Change-Id: I39da0ba80df7c5309a78ec1fa38016cebd80aa5f
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
64f10efab72aa7701a8d292425f4f56f04ca556b |
|
12-Sep-2014 |
Christopher Tate <ctate@google.com> |
Track enable/disable of transport components For fallback / rollback of backup transport selection we need to handle live enable/disable of legacy or superseded transports. We now watch for component enable state changes in packages that host transports, and rebind as needed. The semantics for selecting the current transport have also been adjusted. We no longer require that the selected transport be live and currently bound in order to be designated as the active instance. This prevents nondeterministic races around upgrade and replacement. Bug 17136637 Change-Id: Idaf45cf4522a23576444e6b11626ee3f7f47c36c
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
539b217b764562964c7f11b416da8391cb7cf93f |
|
03-Sep-2014 |
Christopher Tate <ctate@google.com> |
The transport system API needs to manage binder identity ...around writing settings. It does its own proper permission check; it just needs to make sure not to accidentally crash the caller in strange and wondrous ways because of failing to clear binder identity before writing the result to secure settings. Bug 16542048 Change-Id: I88d1f2dbeebd24eed5d86989f0ca0d834878b054
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
674d3e750133efc4b2d575d806596d1f56bda8d9 |
|
27-Aug-2014 |
Christopher Tate <ctate@google.com> |
Do not require device provisioning to do restore-at-install Provisioning is a milestone used for gating *backup* operation, but it's important that restores be possible during the setup process. In particular, some applications such as home apps may be deliberately pushed for install after platform restore, but before the end of the setup process. We need to be able to do install-time restores of such apps. Bug 17288313 Change-Id: Iaff5d9919e6392b2ca5925be4d63a4116cd11f77
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
915f1dc785886ecd14a5222778f7d46f0243b1f5 |
|
27-Aug-2014 |
Christopher Tate <ctate@google.com> |
Remember having done full-data as well as key/value app backups The "what have we ever succesfully backed up?" log is used to determine whether we can do an install-time restore from the currently-live dataset rather than go back to the ancestral dataset (if any). We now track apps that have gotten a successful full-data backup through the transport, not just key/value backups. Bug 17263823 Change-Id: If21350a8dd8aaa4ed02fb74101617e935920e4ae
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
b8e6838583c9d784a7e8d030999d57eb2e87a561 |
|
23-Aug-2014 |
Paul Lawrence <paullawrence@google.com> |
Merge "Fix adb backup for encrypted case" into lmp-dev
|
5684dae9ccceb756c9b44b80931ccac9af198ea6 |
|
22-Aug-2014 |
Christopher Tate <ctate@google.com> |
Automatically bind to newly-installed backup transports They'll be rebound automatically at boot, but need to be brought up immediately. As always they can only be provided by privileged apps. Bug 16542048 Change-Id: I9f121a5c111a772deb3f0c44166002a2cbb16ad5
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
32d06732cdb7ee653a58e49a4dab13a780513db5 |
|
21-Aug-2014 |
Paul Lawrence <paullawrence@google.com> |
Fix adb backup for encrypted case New behavior. Backup no longer uses the encryption password. This is in part because that is hard with patterns, in part because it is a security issue - the off line backup is much easier to brute force than the phone. Instead, we simply insist on an encryption password if your device is encrypted and locked. Bug: 17159330 Change-Id: Ia22f84722522abf0b569a3ef1e16ead5527c726d
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
b2707afb0cbf955952d313e4c75fd3bfd3a35e98 |
|
20-Aug-2014 |
Christopher Tate <ctate@google.com> |
Maintain transport connection through package updates When a package is updated, existing bindings to that package's services are severed and must be manually re-established. Now that the transport can be updated outside the system per se, make sure that we detect these cases and rebind as needed. Bug 16139912 Change-Id: I5d6fa75bb86484f8f7d4f8e93c9157773995e6a7
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
9dbba1b669eeb69316b70dbc9e457f8f8b084ea1 |
|
20-Aug-2014 |
Christopher Tate <ctate@google.com> |
Don't crash good-citizen restore session clients If an app is trying to do the right thing and end its restore sessions cleanly, but winds up being slow and having the session timed out from under them, don't crash them with an illegal state exception for having appeared to end the session twice. Bug 17133115 Change-Id: I0a0989e2067b156569bddb6626ce045e625c6604
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
10ab095a5be2cc45354266b8fbe642c3facafd55 |
|
18-Aug-2014 |
Christopher Tate <ctate@google.com> |
Minor restore fixes 1. We were missing a 'break' in the session-timeout case of message dispatch, so were falling through into a different case. Oops. Fortunately it was benign; the other case's logic was merely logging "hey it doesn't look like there's anything to do here" and cleanly exiting. 2. After a restore operation finishes we were previously always leaving the session timeout clock running. However, this was not appropriate in the case of restore-at-install, when the restore was a one-shot kicked off by the package manager rather than an operation on an ongoing RestoreSession. That logic now properly tidies up the session timeout when winding up the restore in either situation. Bug 17080648 Change-Id: I51d4a50db4feefc4c355230a3bfb926ea2fb5944
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
a63246d6daa02c6f3e4e78d0072d991387e14c87 |
|
15-Aug-2014 |
Christopher Tate <ctate@google.com> |
Tighten restore-at-install behavior Harden the guarantee that if we're asked about a possible restore, we always ALWAYS report back to the package manager. This involved closing "should never happen" edge cases around provisioning/auto-restore setting that nevertheless were happening. Also, on the auto-restore setting front, make sure to plumb that system API through appropriately, since going behind its back and manipulating the secure setting directly would cause things to get out of step. Bug 17060654 Change-Id: I52ca9c1ffbfc0bd6b57196157500d0868bfc2989
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
bf1a4a81ebd340a18583f4ca9b5d562a01f55674 |
|
09-Aug-2014 |
Christopher Tate <ctate@google.com> |
Start using cancelFullBackup() when appropriate The API was in place but the framework wasn't yet calling it. Bug 16524520 Change-Id: Ie368758c830a7d0ad11e7dd3142a0ed896069944
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
0660244119243928a69e5f21ef5ea339c7f6d008 |
|
07-Aug-2014 |
Christopher Tate <ctate@google.com> |
Merge "Sanity-check paths of files to be restored" into lmp-dev
|
4cf9f007e6b66c0a970600f66b4229c4ede73f7f |
|
06-Aug-2014 |
Christopher Tate <ctate@google.com> |
Add event logs for full backup/restore milestones Bug 16689703 Change-Id: If870f1b7b9cb3929ac1edc38affc688a37c2acfd
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
46db93404b27fe5ec121ab55527712e2a6692c7a |
|
30-Jul-2014 |
Michael Wright <michaelwr@google.com> |
Ensure backup schedule file is closed. Change-Id: Ie4a62cda74815c67c62fb08e8df25a71d6102d4c
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
cce476034388383a6006555a225e2170f3b4dcd9 |
|
04-Aug-2014 |
Christopher Tate <ctate@google.com> |
Sanity-check paths of files to be restored The duplicated implementations are an artifact of an ongoing refactor of the full-data restore code. The adb-specific path will be switched to use the FullRestoreEngine [as has already been done for the 'adb backup' path using the parallel full backup engine], at which point the extra implementation here will be removed, but for now we need to make sure that all bases are covered. Bug 16298491 Change-Id: I9cdb8a1c537939a620208df3cf0e921061b981ad
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
7dfbaf52db6401ae85588e334be5af751bb813a8 |
|
29-Jul-2014 |
Christopher Tate <ctate@google.com> |
Make archive metadata idempotent We want to make sure that the manifest and widget metadata blocks are identical, including their in-stream headers, if we regenerate the archive without underlying filesystem changes. Bug 15968355 Change-Id: I828b264545d19e1d865d98d5723915d02fafc012
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
c17739d112d8e7076924c7fdd98614abafd58609 |
|
29-Jul-2014 |
Christopher Tate <ctate@google.com> |
Provide outside-facing API for data management intent+label Bug 16346320 Change-Id: I3f4c2f4b700c77880ba3d8db7c92cdb404763d0d
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
5eeb59cceb1f95813c548c1c5937f161c1ed3571 |
|
22-Jul-2014 |
Christopher Tate <ctate@google.com> |
Schedule full backups Initial policy: at most daily; backups only run when the device is idle + charging + on an unmetered network. Bug 16485874 Change-Id: I5665d890a943bac765adcef14be79d7dba6ce078
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
7ff106c20d403e3217f5f384e63737285e2668a2 |
|
25-Jul-2014 |
Christopher Tate <ctate@google.com> |
A couple of restore fixes: * Fix crasher after transport-level failure attempting to ask for the name of the next package to be restored * Current-dataset single-package restore path no longer requires that the package have its own backup agent. Bug 16548983 Change-Id: Id37f2f0e6075d53c414d9a997bf738bbf0cfff8b
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
a4e4d68f08c1d48a3cdcf83617468370366d03d4 |
|
23-Jul-2014 |
Christopher Tate <ctate@google.com> |
Handle single-package restores properly Bug 16346405 Change-Id: I69e3288f5a9d68d818fad6a2cd4b27ad45c1007e
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
f7cbb1fc25223bbf793f7128280ee4b00d509eb0 |
|
22-Jul-2014 |
Christopher Tate <ctate@google.com> |
Always check restore against the latest backend metadata Bug 16484934 Change-Id: I472a7db89a94b9804f6ea94c25da206dd111a497
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
89101f7fe89134a609459e80f779c1a5114e562a |
|
18-Jul-2014 |
Christopher Tate <ctate@google.com> |
Tear down agents properly at EOD in full restore The restore engine wasn't tearing down the bound agent after reaching the end of data for the app, and furthermore was allowing the restore operation to resume running the queue before all data had been delivered to the current target. Also make LocalTransport deliver data in 2K chunks rather than 32K, as a first step towards making its timing characteristics more like we'll see in networked situations. Finally, added a bunch of MORE_DEBUG output for finding odd bugs like this. Change-Id: Icdbe6a070af6cc7c708a938ad044108d40ebce9a
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
5f7f252b451f94bc09e2e5b880e026c28a9c2d0b |
|
18-Jul-2014 |
Christopher Tate <ctate@google.com> |
Properly end full restore attempt if getNextFullRestoreDataChunk() fails Don't just drop the error return on the floor and retry (forever!). Change-Id: I5f0ef2d09ea286d813add69517f865e474341b43
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
2e40d115ca4332d88424d1b591fdd8d5f78d1831 |
|
15-Jul-2014 |
Christopher Tate <ctate@google.com> |
Add BackupAgent.onRestoreFinished() callback The agent's onRestoreFinished() method is called after all available data has been delivered to the app, whether via the key/value restore API or the full-data file-at-a-time API. This gives the app a stable opportunity to do any postprocessing that might be appropriate. Also fixes a lingering bug in the framework's handling of backup agent lifetimes. In cases where an existing agent instances was being rebound, the framework was forgetting to notify the dependent that the agent was available. This was causing timeouts and restore failure. Bug 16241004 Change-Id: I3f52b299312d30d38b0cba63a2cfaeb934991ef2
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
a176d22110a1670f363ba0f745f127d2b6ca2350 |
|
16-Jul-2014 |
Christopher Tate <ctate@google.com> |
Always call finishBackup() if performFullBackup() succeeded Even if we later get an error from sendBackupData() we need to give the transport its teardown callback. This simplifies the transport logic considerably. Change-Id: Ib8c0e210d4a876ee6b083a4d619dfccc462da4e5
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
a7835b6b6b00923b608a6bc3194e7840f67de7a8 |
|
12-Jul-2014 |
Christopher Tate <ctate@google.com> |
Add Context.getNoBackupFilesDir() This is an app-private filesystem space exactly like the one reported by Context.getFilesDir(), with one exception: files placed here are never backed up by the full-backup infrastructure. If an app attempts to back up any of its contents via the normal API it's immediately ignored with a logged warning. The restriction is also enforced on the restore side, because apps using support libraries might wind up creating full backup archives containing no_backup subdirs on pre-L devices (via adb backup, Helium, &c.). We check for this before passing the restore data to the app, and drop it if we detect the situation so that the app never sees the bits. Bug 16240573 Change-Id: I11216a391f1d32117ec7ce15aafc9cd93d0337de
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
8f1bb3a0d47a4cb34471464dff2af932772a7ade |
|
08-Jul-2014 |
Christopher Tate <ctate@google.com> |
Fix NPE in platform restore Bug 16061451 Change-Id: I79d7913455886828a493a0c4ea850d259bfeeeab
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
d746057f2414cba2bdc69257cc5be8cb681bb592 |
|
07-Jul-2014 |
Jeff Sharkey <jsharkey@android.com> |
Change new file installs to be cluster-based! Now that all the other pieces are in place, we're ready to start installing new file-based packages as a cluster (the new unified directory-based layout). This greatly simplifies the renaming process. Also add helper methods to ApplicationInfo to give a much clearer mapping between it and internal field names, since we can't change the public API. Add recursive restorecon(). Bug: 14975160 Change-Id: I72a63c5ddbc594c2fec4a91dd59f73ef253fbfd7
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
51fea57e06fcb1dab1d239a5fff6e75ba2b7cee7 |
|
24-Jun-2014 |
Christopher Tate <ctate@google.com> |
Refactor restore to deal with heterogeneous datasets Transport-based restore now handles both key/value and full-data (stream) data delivery. Also: PMBA now holds metadata for *all* apps, not just those with backup agents. Since we need to consult this for every restore- at-install operation we cache this locally now, tagged per transport and per remote dataset, to avoid having to re-download it as part of every future restore operation. Also fixed a bug in LocalTransport that was preventing restore of key/value datasets, i.e. all of them that were nominally available prior to this change. NOTE: at present there is no automatic full-data backup; if for testing purposes you need to create some to then use for restore, you still need to use 'bmgr fullbackup ...' to push them. NOTE: at present the unified transport restore uses a refactored "engine" implementation to handle stream data that encapsulates the existing "adb restore" implementation. However, the adb restore code path has not yet been refactored to wrap the newly- extracted engine version; it still contains its own copy of all the relevant logic. This will change in a future CL, at which point offline/USB archive restore will simply wrap the same shared stream-restore engine implementation. Bug 15330073 Bug 15989617 Change-Id: Ieedb18fd7836ad31ba24656ec9feaaf69e164af8
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
6a49dd087f29cfca82d55dfabeb97439ef84b508 |
|
17-Jun-2014 |
Christopher Tate <ctate@google.com> |
Tweak restore API We need the transport to tell the system not only what package it's going to deliver data for next, but also what format that data is in. Change-Id: I989cf78febf923a4208acb33ed80ccc7869356f5
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
9ff53a7100b1a40f5d2df3eb19a2f3f2fff39a46 |
|
04-Jun-2014 |
Christopher Tate <ctate@google.com> |
Implement full data backup through transport Currently no timed/scheduled full-data backup operations are performed by the OS, but the plumbing is now in place and can be tested using 'adb shell bmgr fullbackup pkg [pkg2 pkg3 ...]'. The LocalTransport test transport implementation has been augmented to support the new full-data backup API as well. In addition, 'adb backup' now takes the -compress/-nocompress command line options to control whether the resulting archive is compressed before leaving the device. Previously the archive was always compressed. (The default is still to compress, as it will usually reduce the archive size considerably.) Internally, the core implementation of gathering the full backup data stream from the target application has been refactored into an "engine" component that is shared by both 'adb backup' and the transport-oriented full backup task. The archive file header generation, encryption, and compression logic are now factored out of the engine itself instead of being hardwired into the data handling. Bug 15329632 Change-Id: I4a044faa4070d684ef457bd3e11771198cdf557c
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
4dd2635bf501ad1a1adc22a6ceb4c66cd61a1a23 |
|
03-Jun-2014 |
Christopher Tate <ctate@google.com> |
Add full-backup stream API to BackupTransport Also started migrating the definition of transport success/failure constants into BackupTransport to make them permanent. The new methods are not yet plumbed in; this is just to allow forward progress against a proposed stable API. Bug 15329632 Change-Id: I27472e09b831350c140b9fa548ebda3af334eb1a
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
f97c63350abcc6715ba9fdc21fd3405d0f7ba716 |
|
29-Apr-2014 |
Elliott Hughes <enh@google.com> |
Move internal libcore.os users over to android.system. Change-Id: I84e1ace19ba3b4e58d7bb24f3ecda1bdf5dc75a5
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
a99d02170bc0e54f729b2b735571c8eea8d5034d |
|
05-Apr-2014 |
Christopher Tate <ctate@google.com> |
Back up the preferred home app, if any If the user has stated a preference about their home app, make sure we capture that so that a system restore can return them to that preferred situation. It's built into the system metadata so that we can, if necessary, fast-path configuration of that home app while the rest of the restore operation is in flight. Change-Id: I64dfee8f7a2a9e40f556cd19298d7b367c6aa8dc
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
cba5941c6085dab1566bc047c1ea31f58a2dd4cf |
|
01-Apr-2014 |
Christopher Tate <ctate@google.com> |
Rejigger the invalid-key checks at backup time Bug 13732002 Change-Id: Ic8f71234d1bbc7420eaa8e1762b999d09f308d46
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
adfe8b86e9178a553b6db9722340fa4ff5201cf1 |
|
05-Feb-2014 |
Christopher Tate <ctate@google.com> |
App widget backup/restore infrastructure Backup/restore now supports app widgets. An application involved with app widgets, either hosting or publishing, now has associated data in its backup dataset related to the state of widget instantiation on the ancestral device. That data is processed by the OS during restore so that the matching widget instances can be "automatically" regenerated. To take advantage of this facility, widget-using apps need to do two things: first, implement a backup agent and store whatever widget state they need to properly deal with them post-restore (e.g. the widget instance size & location, for a host); and second, implement handlers for new AppWidgetManager broadcasts that describe how to translate ancestral-dataset widget id numbers to the post-restore world. Note that a host or provider doesn't technically need to store *any* data on its own via its agent; it just needs to opt in to the backup/restore process by publishing an agent. The OS will then store a small amount of data on behalf of each widget-savvy app within the backup dataset, and act on that data at restore time. The broadcasts are AppWidgetManager.ACTION_APPWIDGET_RESTORED and ACTION_APPWIDGET_HOST_RESTORED, and have three associated extras: EXTRA_APPWIDGET_OLD_IDS EXTRA_APPWIDGET_IDS EXTRA_HOST_ID [for the host-side broadcast] The first two are same-sized arrays of integer widget IDs. The _OLD_IDS values are the widget IDs as known to the ancestral device. The _IDS array holds the corresponding widget IDs in the new post- restore environment. The app should simply update the stored widget IDs in its bookkeeping to the new values, and things are off and running. The HOST_ID extra, as one might expect, is the app-defined host ID value of the particular host instance which has just been restored. The broadcasts are sent following the conclusion of the overall restore pass. This is because the restore might have occurred in a tightly restricted lifecycle environment without content providers or the package's custom Application class. The _RESTORED broadcast, however, is always delivered into a normal application environment, so that the app can use its content provider etc as expected. *All* widget instances that were processed over the course of the system restore are indicated in the _RESTORED broadcast, even if the backing provider or host is not yet installed. The widget participant is responsible for understanding that these are promises that might be fulfilled later rather than necessarily reflecting the immediate presentable widget state. (Remember that following a cloud restore, apps may be installed piecemeal over a lengthy period of time.) Telling the hosts up front about all intended widget instances allows them to show placeholder UI or similarly useful information rather than surprising the user with piecemeal unexpected appearances. The AppWidgetProvider helper class has been updated to add a new callback, onRestored(...), invoked when the _RESTORED broadcast is received. The call to onRestored() is immediately followed by an invocation of onUpdate() for the affected widgets because they will need to have their RemoteViews regenerated under the new ID values. Bug 10622506 Bug 10707117 Change-Id: Ie0007cdf809600b880d91989c00c3c3b8a4f988b
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
cb20740ee171de3e604c07cdd02963d4d08a5fc9 |
|
06-Mar-2014 |
Christopher Tate <ctate@google.com> |
Fix build. Silly gits. Change-Id: I8f21b7239621da500d9a73eb17d350e06dda9b20
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
ff8b037c10a7ce90cbb6130b49c8cb076e1e7c0f |
|
05-Mar-2014 |
Christopher Tate <ctate@google.com> |
am 777b8a80: am 422b2656: resolved conflicts for merge of c45ff35f to klp-modular-dev * commit '777b8a808ee76401429f7210ebb7194632040d45': Adapt to underlying changes in the PBKDF2 implementation Change-Id: Ia68694a03e52693fceaedc6740dbd8e690e21257
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
5c38516e83f772fe04176f72f2ab7a1094e17430 |
|
03-Mar-2014 |
Christopher Tate <ctate@google.com> |
Don't hang installs if the transport disappears Bug 12991308 Change-Id: Ie5d3d27fe565dd4014976f5333e37b5707acb707
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
091e8d2aefe39cec85f64d74898354fff596735c |
|
11-Feb-2014 |
Narayan Kamath <narayan@google.com> |
Fix build. com.android.server.SystemServer was no longer imported on master. Change-Id: Ie712aa28940953952aa7a99cbb22f74129649249
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
cab8617b8ccea3a99b1ee15e15915c512a10c738 |
|
11-Feb-2014 |
Jeff Brown <jeffbrown@google.com> |
am 25df673b: am 1b51c9cb: Merge "Make SystemService constructor take a Context." into klp-modular-dev * commit '25df673b849de374cf1de40250dfd8a48b7ac28b': Make SystemService constructor take a Context.
|
b880d880c6cd989eacc28c365fc9a41d31900da1 |
|
11-Feb-2014 |
Jeff Brown <jeffbrown@google.com> |
Make SystemService constructor take a Context. This change simplifies the process of initializing a SystemService by folding the onCreate() step back into the constructor. It removes some ambuiguity about what work should happen in the constructor and should make it possible for services to retain most of their final fields after refactoring into the new pattern. Change-Id: I25f41af0321bc01898658ab44b369f9c5d16800b
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
684d6f9f4d1a11069d9c9c1996fbc45cda7e7f04 |
|
13-Jan-2014 |
Christopher Tate <ctate@google.com> |
Adapt to underlying changes in the PBKDF2 implementation We need to specify "PBKDF2WithHmacSHA1And8bit" now in order to get precisely the same output as was previously generated with "PBKDF2WithHmacSHA1". We also now try both when it's ambiguous which was used to generate the archive checksums. Bug 12494407 Change-Id: I5443f31a5e13c24f44445768b6e9a6eea221ede6
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
e58a49e411327e26b6ad9939833f53c7fa5aef20 |
|
21-Dec-2013 |
Amith Yamasani <yamasani@google.com> |
Merge commit '817ec49e' into manualmerge Conflicts: services/print/java/com/android/server/print/PrintManagerService.java Change-Id: I1b9bf364ca50ee3c48f53d87ae0ce23e7f3c2bc2
|
817ec49e7991d4cac50b2308cd7cf5f8641e1e29 |
|
20-Dec-2013 |
Amith Yamasani <yamasani@google.com> |
Wrap some services into a SystemService These services can now be excluded by modifying the list of REQUIRED_SERVICES (TB renamed) Changed appwidget, devicepolicy, backup and print services. Change-Id: Id8e2855d5c045cd57bdb02dca9ed75172803bce7
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|
49782e46c0eb85a25ae2abcf80880c48dbab5aea |
|
20-Dec-2013 |
Amith Yamasani <yamasani@google.com> |
am 9158825f: Move some system services to separate directories * commit '9158825f9c41869689d6b1786d7c7aa8bdd524ce': Move some system services to separate directories
|
9158825f9c41869689d6b1786d7c7aa8bdd524ce |
|
22-Nov-2013 |
Amith Yamasani <yamasani@google.com> |
Move some system services to separate directories Refactored the directory structure so that services can be optionally excluded. This is step 1. Will be followed by another change that makes it possible to remove services from the build. Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
/frameworks/base/services/backup/java/com/android/server/backup/BackupManagerService.java
|