Commit Graph

439 Commits

Author SHA1 Message Date
Bernardo Rufino
e80f270e7f [KV] Cancellation and small refactors
* Refactored cancellation a bit.
* Added tests for cancellation, had to break down handleCancel() in 2 methods.
* Removed BackupRequest.
* Removed onPmFoundInQueue() report.
* Renamed a few methods.
* Moved PM package synthetization to backupPm().

Test: atest RunFrameworksServicesRoboTests
Test: adb shell bmgr backupnow <kv_package>
Test: 1. adb shell bmgr backup <kv_package>
      2. adb shell bmgr run
Test: 1. adb shell bmgr backupnow com.google.android.apps.backupapp
      2. Cancel while in-flight
      3. Verify data not backed-up
Test: 1. adb shell bmgr backupnow --non-incremental com.google.android.apps.backupapp
      2. While in-flight, check blank_state file exists.
      3. When it finishes, check blank_state file does not exist.
Test: atest BackupManagerHostTest
Change-Id: Ie74a19189dc700ef517417b54ecb8930c6aa41ce
2018-08-15 09:17:21 +01:00
Bernardo Rufino
bd758fd738 [KV] Extract event reporting and remove traces
Created KeyValueBackupReporter, which includes:
* Logcat (main and event buffers).
* Backup observer.
* Backup manager monitor.

Also removed traces since they weren't very useful. Hopefully this will clear
KVBT of noise and help spot refactor opportunities. Did some small refactors
along w/ it.

Methods are starting to fit in one (big) screen :)

Bug: 110082831
Test: atest KeyValueBackupTaskTest
Test: adb shell bmgr backupnow <kv_package> and verify logs
Test: Kicked-off KV in different scenarios to check logs, this is
      tracked in https://docs.google.com/spreadsheets/d/1EcZ61qapj2cW_Yr99gIlQz0QVJ_BQfVc_1dHBor2cOo/edit?usp=sharing
Test: adb shell bmgr backupnow <kv_package> <fb_package>
      Verify PFTBT is kicked-off and logs
Change-Id: I1486049861543b5ad558b45cf0e0206532e20632
2018-08-09 14:24:11 +01:00
Bernardo Rufino
8fe7b59a71 Add null check for full-backup task
The backup-already-running code-path leaves the field null.

Bug: 112359186
Test: atest KeyValueBackupTaskTest
Test: 1. adb shell bmgr backupnow --all &>/dev/null&
      2. adb shell bmgr backupnow com.google.android.apps.backupapp
      3. Verify it finishes and no error

Change-Id: I6880c4e7752b943608d41c946e8d18d46cd9da38
2018-08-09 12:01:04 +01:00
Bernardo Rufino
75f73f07fe [KV] Move KVBT to its own package
And related classes.

Test: atest RunFrameworksServicesRoboTests
Test: adb shell bmgr backupnow com.google.android.apps.backupapp
Test: 1. adb shell bmgr backup com.google.android.apps.backupapp
      2. adb shell bmgr run
Test adb shell cmd jobscheduler run -f android 20537

Change-Id: I1aba694786a4e2a5add5c388cd095700ade1ace9
2018-08-06 12:20:04 +01:00
Bernardo Rufino
088a0ef493 [KV] Refactor logs
Unify formatting. Start w/ upper case, using ',' instead of ';', '-'.

Test: atest KeyValueBackupTask
Test: 1. adb shell bmgr backupnow com.google.android.apps.backupapp
      2. Verify logs
Test: atest CtsBackupTestCases
Test: atest CtsBackupHostTestCases
Test: atest GtsBackupTestCases
Test: atest GtsBackupHostTestCases

Change-Id: I171110f69e66d0311cbf030b210600ddf1ad5656
2018-08-03 15:59:19 +01:00
Bernardo Rufino
cc714c1c67 [KV] PerformBackupTask => KeyValueBackupTask
Test: atest RunFrameworksServicesRoboTests
Test: adb shell bmgr backupnow com.google.android.apps.backupapp
Test: adb shell bmgr backup com.google.android.apps.backupapp
      adb shell bmgr run
Test: atest ScheduledBackupHostSideTest

Change-Id: I30b689538e6301d05416e21abe012a51ef83c5df
2018-08-02 14:55:32 +01:00
Bernardo Rufino
2d87f453d9 [KV] State machine to linear task w/ RemoteCall
This is the first CL of key-value backup refactor.

* Method execute() that executed the state machine states is now empty
  and run() is created with the initial version of the linear task. It's
  basically composed of begin + loop + end. Although it still has the notion
  of state, it's more restricted than before (with private methods returning
  the next state). This is intentional to avoid making this CL too heavy to
  review and to avoid too much behavioral changes here. In the next CLs I
  intend to remove BackupState.

* Introduction of RemoteCall, which encapsulates an outbound call that
  leaves the system_server, with time-out and cancellation built-in.
  Agent calls are now triggered using this. As a result there is no more
  operationComplete() method either.

* Cancellation now is cleaner. We don't need a step lock anymore, only a
  (volatile) boolean that is checked in every queue iteration. If asked
  to cancel during an ongoing agent call we rely on RemoteCall.cancel()
  to return control of the task thread to us. We wait for the cancel
  acknowledgement to preserve the contract of no more transport calls.

* PFTBT instantiation moved from the constructor to the run() method,
  which makes more sense.

* No need for mFinished, mBackupData == null bookkeeping since time-outs,
  cancellation and legitimate agent responses won't step into one another
  anymore.

* Ternary (mQueue.isEmpty) ? BackupState.FINAL : BackupState.RUNNING_QUEUE gone
  because we check this in the beginning of invokeNextAgent() and now we
  don't pay the state-machine tick price associated with the handler.

* PerformBackupTask call sites now call static method start(), that
  spins up a new dedicated thread for the task. This new thread is
  assigned the same (process) priority as the backup thread
  (THREAD_PRIORITY_BACKGROUND).

Work left for future CLs:

* RemoteCall spins up a new thread for kicking off the call, this is for
  system agents that are executed inline. Old PBT also executed in the same
  thread (backup handler thread), so maintaining this to keep this CL at
  a reasonable size.

Test: atest PerformBackupTaskTest
Test: atest RunFrameworksServicesRoboTests
Test: atest frameworks/base/services/tests/servicestests/src/com/android/server/backup
Test: atest CtsBackupTestCases
Test: atest CtsBackupHostTestCases
Test: atest GtsBackupTestCases
Test: atest GtsBackupHostTestCases
Test: adb shell bmgr backupnow <kv_packages>
Test: 1. adb shell bmgr backup <p1> <p2>
      2. adb shell bmgr run
      A) 3. Cancel while sending <p1> data to transport
         4. Verify <p1> is backed-up and not pending
	    Verify <p2> is not backed-up and is pending
      B) 3. Cancel while waiting for <p1> agent
         4. Verify <p1> is not backed-up and is pending
	    Verify <p2> is not backed-up and is pending

Change-Id: Ia456c4e807de95d662c9e923245be07e8996f58a
2018-07-30 17:04:02 +01:00
Bernardo Rufino
374b2522b3 Increase PerformBackupTask unit coverage 3
With KV Refactor in mind:
* Tests around calling agent.
* Tests around agent writing data.
* Tests around transport handling agent data.
* Small modification on ShadowBackupData{Input,Output} to allow empty data.
* Small refactor.

Test: atest PerformBackupTaskTest
Change-Id: Ia9296859926d09d5bbcb0532fb869ace110240e4
2018-07-26 11:42:23 +00:00
Bernardo Rufino
fd1d729574 Increase PerformBackupTask unit coverage 2
With KV Refactor in mind.
* Split empty queue test into multiple tests.
* Tests around packages failing backup pre-conditions.
* Added verifications for event logging.
* Renamed some tests to better reflect important parts of it.
* More tests about one package.
* Introduced PackageData to help mock packages, much like TransportData.
* Some small refactors.

Test: atest PerformBackupTaskTest
Change-Id: I23aba2b26e82f8643cc1c90f9408510ab34045fd
2018-07-20 18:11:25 +01:00
Bernardo Rufino
c1b6ca05ef Increase PerformBackupTask unit coverage
With KV Refactor in mind.
* Added tests around empty queue and single package backups.
* Refactored a bit some of the existing tests.
* Moved from mocking BMS to using a real instance and had to adjust a
  few things for this.

Test: atest PerformBackupTaskTest
Change-Id: I0ee3be32c7cbac5ed2cdc2717408749907c15ade
2018-07-17 12:23:11 +01:00
Anton Philippov
5148582ef2 Use FullRestoreEngine in adb restore.
PerformAdbRestoreTask and FullRestoreEngine has shared a lot of code,
remove the copy that was in PerformAdbRestoreTask.

Test: adb restore
Change-Id: Ib4ce8b50eff8aed4a2c0660808c05b80f378ea98
2018-06-15 11:38:29 +00:00
TreeHugger Robot
c87e4b8ea0 Merge "Update PerformInitializeTask error message" 2018-06-11 11:34:26 +00:00
Bernardo Rufino
1f315591ba Update PerformInitializeTask error message
Bug: 109652198
Test: m -j RunFrameworksServicesRoboTests
Change-Id: Iaef534bba74b05f73e150d9fc3ff212c788e8205
2018-06-08 17:54:19 +01:00
Bernardo Rufino
7307e645b8 Check manifest if runtime state of app is DEFAULT
Before we were considering that the app was enabled in this case, which
might not be always true.

Bug: 80227098
Test: atest AppBackupUtilsTest
Test: Check app w/ manifest enabled="true" is backed-up, but
      enabled="false" is not.

Change-Id: I4625aa39ba0de45ce6689f2375245081a5d4d722
2018-06-06 08:19:09 +00:00
Annie Meng
8cdae01244 Clear calling identity in BMS.backupNow
BMS.backupNow is called from GMSCore, which has a different calling
identity than the framework. This causes an IllegalArgumentException due
to uid mismatch when backupNow tries to schedule a job.

This occurs when the following conditions are combined:
1) Battery saver mode enabled
2) Network change detected
3) Backup pass is scheduled for now

Bug: 79441902
Test: 1) m -j RunFrameworksServicesRoboTests
2) Manual: Enabled battery saver, modified code to run backupNow with
each network change and overwrite previously scheduled KeyValueJob.
Then, change wifi to trigger scheduling the KeyValueJob.
Verified:
- IllegalStateException b/c of uid mismatch without change
- No exception and correct calling uid with change

Change-Id: Iac90cd435e3fc32ff5428236aa15507b36aa833d
2018-05-25 09:45:18 +00:00
TreeHugger Robot
a41a7094ac Merge "Add getCurrentTransportComponent() API" 2018-05-24 13:13:18 +00:00
Bernardo Rufino
98b17a6146 Add getCurrentTransportComponent() API
Bug: 73640944
Test: atest RunFrameworksServicesRoboTests
Change-Id: I62193d63367c3b7564ccd41f5b103a7076764e3f
2018-05-14 11:36:11 +01:00
ericchhsu
e6e63cd6c6 Instantly excute next state when the agent provides a prohibited key.
When the agent provides a prohibited key, the code flow will directly be returned
without excuting next backup state. The next state should be execute instantly to
make sure the backup mechanism can be executed properly.

Bug: 77272601
Test: 1.m -j RunFrameworksServicesRoboTests
      2.Manual testing by test package with prohibited key.
      - adb backup -all
      - adb backup -shared
      - adb backup -obb -all
      - adb shell bmgr backupnow --all
      - adb shell bmgr backupnow [test key value package]
      - adb backup -keyvalue [test key value package]
Change-Id: I46e1aa8dd0f75cf54087b43cee50ee952d85abc1
2018-05-03 11:55:17 +08:00
Shaowei Shen
44b8e043cf Merge "Fix [kv-3]PerformBackupTask using last package status to decide status sent to IBackupObserver." into pi-dev am: 49a987c277
am: 661afbe5fa

Change-Id: Ia242afee49f7c715ba0b6fa65a4325b89e26f79d
2018-05-02 19:24:29 -07:00
Shaowei Shen
49a987c277 Merge "Fix [kv-3]PerformBackupTask using last package status to decide status sent to IBackupObserver." into pi-dev 2018-05-03 02:05:17 +00:00
android-build-team Robot
492e53ee17 Merge "Don't run obb backup for shared storage backup package." into pi-dev am: 494113e74a
am: e673650aff

Change-Id: I97389ba178bf6a225c375d27d91655e9957bbbf5
2018-05-01 08:53:05 -07:00
Anton Philippov
09589d0073 Don't run obb backup for shared storage backup package.
This fixes an issue when adb backup would hang (and hold wakelock)
forever when run with '-obb' and '-shared'.

Bug: 75997810
Test: 'adb backup -obb -shared' finishes successfully
Change-Id: I015add6dc525984592e733266b3e046f41d2cb93
2018-05-01 14:27:00 +01:00
shaoweishen
59ab5f4934 Fix [kv-3]PerformBackupTask using last package status to decide status sent to IBackupObserver.
We only report failure to IBackupObserver.backupFinished() when we meet
transport failure, but now it will report failure when the last package
meet TRANSPORT_PACKAGE_REJECTED or TRANSPORT_QUOTA_EXCEEDED, add above
two states in FINAL to prevent the situation, and update related
test, also javadoc of IBackupObserver.

Bug: 77271953

Test: make -j RunFrameworksServicesRoboTests ROBOTEST_FILTER=PerformBackupTaskTest
Change-Id: Ic2bfdf9f50d700f8ccb509e081ae8e0afb186020
2018-04-24 09:54:37 +08:00
Allen Su
8eb97f61a4 PerformBackupTask getting 2 IBackupObserver.backupFinished()
Remove IBackupObserver.backupFinished() before
executeNextState(BackupState.FINAL), add test cases to verify it and
format PerformBackupTaskTest.java
Bug: 77272662
Test: make RunFrameworksServicesRoboTests

Change-Id: Ia464d0326437fb8680ab88619829c483e2c1164d
2018-04-24 00:01:05 +08:00
Henry Liu
cfa5a82f82 Fix [kv-4] PerformBackupTask possible NPE/Wrong package report.
mCurrentPackage is null when package doesn't exist, which lead test
failed with NPE
Use request.packageName for case BackupTransport.AGENT_UNKNOWN instead

Bug: 77272500

Test: m -j RunFrameworksServicesRoboTests ROBOTEST_FILTER=PerformBackupTaskTest
Change-Id: I27be85f0c3f95e36edd92d0d552189fbcf6952dd
(cherry picked from commit 87f1209ac6)
2018-04-12 02:44:50 +00:00
Henry Liu
af3598cf13 Merge "Fix [kv-4] PerformBackupTask possible NPE/Wrong package report." 2018-04-12 02:43:18 +00:00
Henry Liu
87f1209ac6 Fix [kv-4] PerformBackupTask possible NPE/Wrong package report.
mCurrentPackage is null when package doesn't exist, which lead test
failed with NPE
Use request.packageName for case BackupTransport.AGENT_UNKNOWN instead

Bug: 77272500

Test: m -j RunFrameworksServicesRoboTests ROBOTEST_FILTER=PerformBackupTaskTest
Change-Id: I27be85f0c3f95e36edd92d0d552189fbcf6952dd
2018-04-12 02:17:20 +00:00
Daniel Cashman
934b61ddcb Merge "Add SigningInfo class to expose package signing details." into pi-dev am: 960a0c6c57
am: 63b447531e

Change-Id: Ie311660c339d1293c2b332dc4da0e865a1d21685
2018-04-11 13:07:50 -07:00
Daniel Cashman
960a0c6c57 Merge "Add SigningInfo class to expose package signing details." into pi-dev 2018-04-11 19:21:07 +00:00
Anton Philippov
0e6647ad59 Merge "Pass app version to agent in adb restore for kv." into pi-dev am: 133f93bbbb
am: 0d383d2ee4

Change-Id: Icc2051dd9f08d8c0c48e0bb96621a203b6d979c7
2018-04-11 11:07:52 -07:00
Anton Philippov
133f93bbbb Merge "Pass app version to agent in adb restore for kv." into pi-dev 2018-04-11 16:53:30 +00:00
Anton Philippov
f8cefdec4b Pass app version to agent in adb restore for kv.
This is a temporary solution for P to unblock GTS tests.

Bug: 77852250
Test: manual:
1. adb backup -f saved-wifi-api100.ab -keyvalue com.android.providers.settings
2. adb restore saved-wifi-api100.ab
3. See that SettingsBackupAgent receives appVersionCode in onRestore()

Change-Id: I6092bea570e7e27cb5b72165e9284ad2befc21b6
2018-04-11 14:58:14 +01:00
Dan Cashman
5c9f527e33 Add SigningInfo class to expose package signing details.
Attempt to simplify the exposure of package signing information via
PackageInfo by creating a new class and corresponding methods for
querying a package's signing information.

Bug: 74831530
Test: PkgInstallSignatureVerificationTest
Change-Id: Idbc008b41a921f89cefb224b26f910da4d238dea
2018-04-10 22:19:20 +00:00
Bernardo Rufino
6858acd442 Merge "Catch IAE from unbind onServiceDisconnected()" into pi-dev am: c83cf90166
am: 0f95a94940

Change-Id: I2097f145026be9d72c4d920e2567ea7cc6fe5589
2018-04-05 04:51:43 -07:00
Bernardo Rufino
51c4f038b2 Catch IAE from unbind onServiceDisconnected()
We still don't know the underlying cause of this, but we shouldn't crash
the system_server. Catching for now.

Bug: 74940472
Bug: 77574274
Test: m -j RunFrameworksServicesRoboTests
Change-Id: I36fc2e65f8766f6b8fd68104d8830b72668d84eb
2018-04-05 10:14:01 +00:00
Artem Iglikov
1e1c28b8d4 Merge "Clear app data before full restore for specified packages" into pi-dev am: bb0bcc4460
am: d723b5ea24

Change-Id: I551d4dc0cbc04e48daa2c636aa341e7775246ffa
2018-03-29 13:47:34 +00:00
TreeHugger Robot
bb0bcc4460 Merge "Clear app data before full restore for specified packages" into pi-dev 2018-03-29 13:23:24 +00:00
Artem Iglikov
5b53875fdc Clear app data before full restore for specified packages
In some cases (deferred restore) the app data needs to be cleared even
if the app has implemented backup agent. As a quick fix introduce
PACKAGES_TO_CLEAR_DATA_BEFORE_FULL_RESTORE secure setting, which
transport can fill prior to restore.

Bug: 69069240
Test: adb shell settings put secure packages_to_clear_data_before_full_restore com.google.android.apps.nexuslauncher && adb shell bmgr restore com.google.android.apps.nexuslauncher
Change-Id: I2a4651365d9cf4747f32d2ba69312f54cd03d118
2018-03-29 11:01:50 +01:00
Annie Meng
92892163d5 DO NOT MERGE Unrevert update references to backup agent timeouts
Cherry-picked from master (ag/3800434).

Reintroduce change (ag/3742803) that was reverted due to SUW crash
(ag/3780292).

Updates references to backup/restore agent timeouts from hardcoded
constants to the Global setting backup_agent_timeout_parameters.

Bug: 70276070
Test: 1) m -j RunFrameworksServicesRoboTests
2) Manual testing of affected backup/restore paths:
- Wipe device; restore cloud backup via SUW
- adb shell bmgr list sets
- adb shell bmgr restore [package]
- adb shell bmgr restore [token]
- adb backup -all
- adb backup -shared
- adb backup -obb -all
- adb shell bmgr backupnow --all
- adb shell bmgr backupnow [key value package]
- adb shell bmgr backupnow [full data package]
- adb backup -keyvalue [key value package]
- adb restore backup.ab

Change-Id: If9aad572d688451d37178cd7c2d7844be054953c
2018-03-28 18:07:19 +01:00
Annie Meng
a1e8fd61a6 Unrevert update references to backup agent timeouts
Reintroduce change (ag/3742803) that was reverted due to SUW crash
(ag/3780292).

Updates references to backup/restore agent timeouts from hardcoded
constants to the Global setting backup_agent_timeout_parameters.

Bug: 70276070
Test: 1) m -j RunFrameworksServicesRoboTests
2) Manual testing of affected backup/restore paths:
- Wipe device; restore cloud backup via SUW
- adb shell bmgr list sets
- adb shell bmgr restore [package]
- adb shell bmgr restore [token]
- adb backup -all
- adb backup -shared
- adb backup -obb -all
- adb shell bmgr backupnow --all
- adb shell bmgr backupnow [key value package]
- adb shell bmgr backupnow [full data package]
- adb backup -keyvalue [key value package]
- adb restore backup.ab

Change-Id: I871fd32c7601bbe6b06a0c8516bb85bc0ead4198
2018-03-28 15:37:33 +01:00
Artem Iglikov
b873780a3d DO NOT MERGE Revert "DO NOT MERGE Update references to backup/restore agent timeouts"
This reverts commit f77cae6125.

Reason for revert: crashes SUW

Bug: 76128378
Change-Id: Ia77af64892aa5a03109cc4ef4c2c04b256000ba9
2018-03-22 13:07:34 +00:00
Annie Meng
c3b004f828 Revert "Update references to backup/restore agent timeouts"
This reverts commit ea409907e3.

Reason for revert: Crashes SUW

Bug: b/76128378
Change-Id: I4ec134cb979f17bdbaf30d958e8278479312a3d3
2018-03-22 13:02:29 +00:00
Annie Meng
f77cae6125 DO NOT MERGE Update references to backup/restore agent timeouts
With the newly created Global setting for backup/restore agent timeouts
(backup_agent_timeout_parameters introduced in ag/3731401), update
references in backup and restore code to get the timeout values from
the setting instead of referencing constants in BMS.
This makes these timeouts configurable outside of the framework.

The default value of the setting is the same as the constants in BMS so
this should have no change on the timeout values used in the backup and
restore flow.

Bug: 70276070
Test: 1) m -j RunFrameworksServicesRoboTests
Change-Id: I0259bba76d0fed48158b8316f430b315ea98086e
2018-03-20 23:48:27 +00:00
Annie Meng
ea409907e3 Update references to backup/restore agent timeouts
With the newly created Global setting for backup/restore agent timeouts
(backup_agent_timeout_parameters introduced in ag/3731401), update
references in backup and restore code to get the timeout values from
the setting instead of referencing constants in BMS.
This makes these timeouts configurable outside of the framework.

The default value of the setting is the same as the constants in BMS so
this should have no change on the timeout values used in the backup and
restore flow.

Bug: 70276070
Test: 1) m -j RunFrameworksServicesRoboTests
Change-Id: I0259bba76d0fed48158b8316f430b315ea98086e
2018-03-16 12:15:32 +00:00
Annie Meng
d069a888cf DO NOT MERGE Create a setting for backup/restore agent timeouts
Part of push to make backup and restore agent timeouts configurable. Creates
a Global setting for the current static BackupManagerService timeouts so
that they can be overriden with P/H. We keep the current default values,
which will be updated once we investigate what more appropriate values are.

Remame the constants to better reflect what they're used
for. Next, we will update the framework to use these constants.

This depends on the refactor of how we observe changes to key value
backup settings (ag/3709997).

Bug: 70276070
Test: m -j RunFrameworksServicesRoboTests ROBOTEST_FILTER=BackupAgentTimeoutParametersTest
Change-Id: Id506314ce0c8bd5e4d1d8b4001b26cbad0056c99
2018-03-15 17:43:56 +00:00
Annie Meng
1e13e37401 Create a setting for backup/restore agent timeouts
Part of push to make backup and restore agent timeouts configurable. Creates
a Global setting for the current static BackupManagerService timeouts so
that they can be overriden with P/H. We keep the current default values,
which will be updated once we investigate what more appropriate values are.

Remame the constants to better reflect what they're used
for. Next, we will update the framework to use these constants.

This depends on the refactor of how we observe changes to key value
backup settings (ag/3709997).

Bug: 70276070
Test: m -j RunFrameworksServicesRoboTests ROBOTEST_FILTER=BackupAgentTimeoutParametersTest
Change-Id: Id506314ce0c8bd5e4d1d8b4001b26cbad0056c99
2018-03-15 12:59:13 +00:00
Michal Karpinski
808d8a0163 Merge "Allow restoring of apps that rotated key" into pi-dev am: d766e212c9
am: f89a90bcca

Change-Id: I0895c47a93d7bd3b90a89bd0b0dce2cc24fcb963
2018-03-15 10:41:22 +00:00
Michal Karpinski
528c3e572a Allow restoring of apps that rotated key
Restoring of apps that rotated key wouldn't be possible due to
explicit signature matching.
Amend signature matching strategies to take into account
apps that have rotated key.

Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/backup/utils/AppBackupUtilsTest.java
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/backup/BackupUtilsTest.java
Test: m -j RunFrameworksServicesRoboTests
Test: runtest -p com.android.server.backup frameworks-services
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/ShortcutManagerTest1.java
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/ShortcutManagerTest2.java
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/ShortcutManagerTest3.java
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/ShortcutManagerTest4.java
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/ShortcutManagerTest5.java
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/ShortcutManagerTest6.java
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/ShortcutManagerTest7.java
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/ShortcutManagerTest8.java
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/ShortcutManagerTest9.java
Test: atest frameworks/base/services/tests/servicestests/src/
      com/android/server/pm/ShortcutManagerTest10.java
Test: atest CtsShortcutManagerTestCases
Bug: 64686581
Bug: 34345052
Bug: 74208476
Bug: 74159113

Change-Id: Ica23bbfec89648d9348c65db4597188e8c18e1d8
2018-03-14 16:11:18 +00:00
Annie Meng
d3b6e9fe22 Merge "DO NOT MERGE Create a key value settings observer for backup parameters" into pi-dev 2018-03-14 13:40:46 +00:00
TreeHugger Robot
cd8f972f61 Merge "Tests for BMS.requestBackup()" 2018-03-14 13:23:21 +00:00