summaryrefslogtreecommitdiff
path: root/services/robotests/backup
AgeCommit message (Collapse)Author
2025-03-04Pass in cancellation reason to B&R tasks Sarp Misoglu
This is to give more granular information to tasks about why they got cancelled. This will help them report why they failed. The cancelAll parameter was only set to false for cancellations due to timeouts, so I've removed it. This is a no-op refactor. Flag: EXEMPT refactor Bug: 399645990 Test: atest CtsBackupTestCases Change-Id: I1bd6d9eff42c5edeb0f4df453bae792cf994bb6a
2025-01-09Move BackupWakeLock to its own file Sarp Misoglu
There's no reason for it to be under UserBackupManagerService and bloat it up. Test: n/a Flag: EXEMPT no-op refactor Change-Id: I595fe26e97e804e59033a5dc95e8fa8e16de895f
2025-01-09Fix debug logging in the backup service Sarp Misoglu
The existing DEBUG and DEBUG_SCHEDULING had been set to true (maybe accidentally?) for 8+ years. Whereas MORE_DEBUG is false as expected. In this CL we: 1) Remove existing DEBUG and DEBUG_SCHEDULING checks. This is a no-op. 2) Rename MORE_DEBUG to DEBUG. Also no-op. 3) Make any Log.v log that isn't guarded by if(DEBUG) a Log.d instead. Log.v logs should always be guarded by a default false constant so the compiler strips out the Strings from the binary. Test: n/a Flag: EXEMPT no-op refactor Change-Id: I117f7fe04da1a62c3ad42d71b080fed6454f73af
2025-01-09Use internal interface for AMS -> BMS calls Sarp Misoglu
Currently these go through the IBackupManager.aidl interface, which is unnecessary since they are local calls within the system server. Test: atest CtsBackupTestCases Flag: EXEMPT no-op refactor Change-Id: I260197d30184d10a92f356f729d28fd0ab22aec1
2025-01-06Merge "Stop using _upstream suffix." into main am: e0fa880b62 am: 08b5eb0388 Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3434333 Change-Id: Ibdc234b159386fbe4a2a08913a2f6b3a6e66f8ae Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-12-30Stop using _upstream suffix. Rex Hoffman
Bug: 386691288 Test: CI Change-Id: I83bed144fbc6320504c988d6dc8f9a3f7e60f1b5
2024-12-23Acquire the backup wakelock with a timeout Sarp Misoglu
There have been a few reports of the backup service failing to call release() on the wakelock and draining battery for hours. These are rare failures and hard to debug individually but with the timeout we will limit the worst case significantly. I am setting the default timeout to 30 minutes. This should be more than enough time for a backup or restore operation. If in the future these operation get longer, the timeout is configurable by a setting. Test: atest CtsBackupTestCases Fixes: 364931501 Fixes: 357769443 Fixes: 289789401 Flag: EXEMPT bugfix Change-Id: Iaac0218d5258031b6f67c3c56c776ce098e8a8c4
2024-12-02Delete Filipendo workaround code for R Sarp Misoglu
It seems this was intended to be removed for S. I've also double checked this setting isn't used anywhere that I can find. Fixes: 154822946 Test: presubmit Change-Id: I974b30a54883280d16dacf9a2de876d87f1e2c13
2024-11-27Don't kill apps if they are not in restricted mode Sarp Misoglu
Also respect the killAfterRestore flag for them. Before this change, the android:killAfterRestore attribute was only respected for apps that do Key/Value backups. This was because Full backup apps used to always be started in restricted mode for B&R operations and the framework needed to kill the app to reset the restricted mode state. Now, full backup apps may not be started in restricted mode (after ag/30155472) so there's no need to kill them unless if they set killAfterRestore. For this to work, we need to keep track of whether an app is in restricted mode. I've moved all connection/disconnection logic to the new connection manager class so this is now fairly easy. Note that apps will only not be in restricted mode if they are K/V or if enable_restricted_mode_changes is enabled and they opted out. So I think all the new behavior is guarded by the same flag. Flag: com.android.server.backup.enable_restricted_mode_changes Bug: 376661510 Test: atest BackupAgentConnectionManagerTest & atest CtsBackupHostTestCases Change-Id: I1e94fb3b794961904a6c603ac34b00f3878f4e3e
2024-11-18Move BackupAgent connection to a helper class Sarp Misoglu
This is to isolate some scope of UserBackupManagerService. It's too big and unreadable. I've also added some tests. But since these are blocking and async operations, I couldn't see any way other than adding some thread sleeps to avoid flakiness. These tests could still end up being too flaky. If that's the case we might have to leave this code untested :( This is a no-op refactor. Bug: 376661510 Flag: EXEMPT refactor Test: atest BackupAgentConnectionManagerTest & atest CtsBackupHostTestCases Change-Id: I9893336fb224148ce5b2f3c6fa2fc26828d2a1e9
2024-05-27Add strict_mode: false Kevin Liu
As strict mode is in place, the default strict_mode is now set to true. We are encourage teams to write tests in strict_mode to make tests Bivalent (able to run on device and devicelessly) For more info on strict mode: go/roboStrictMode Flag: NONE Test: atest SystemUiRoboTests, SpaRoboRNGTests, SettingsLibRoboTests, FrameworksServicesRoboTests, BackupFrameworksServicesRoboTests, InputRoboRNGTests Bug: 334089788 Change-Id: I9827910496af67eab33efddb7c32d8e40b497c13
2024-05-14Catch and ignore `IllegalArgumentException` thrown by `unbindService` Joël Stemmer
When `TransportConnection` handles `onServiceConnected` or `onBindingDied` it calls `Context.unbindService`. In a very small number of cases this fails because the connection is not (or no longer?) registered. When this happens, the system server crashes causing the device to reboot. We don't really care if the service is not registered when we try to unbind it, so we just catch and ignore the exception to avoid crashing the system server. Bug: 335547110 Test: atest TransportConnectionTest.java Change-Id: Ic7f34eacd1f621c42a68128ef992043dba6808f1
2024-04-10Improve `dumpsys backup` Piyush Mehrotra
This is a re-submit of the previously reverted ag/22327091 by piee@google.com. Original description: This change refactors `dumpsys backup` code and adds some improvements - - Removes `isUserReadyForBackup()` check on calling user. This check is not needed, as it prevents a User with INTERACT_ACROSS_USERS_FULL permission, but not Backup activated, to get info about Backup service on other users. This is particularly relevant in case of headless mode, as Backup service isn't running for SYSTEM_USER. - Adds `--user <userId>` optional parameter for `dumpsys backup`, which will return info about Backup service for the user passed in argument. This is also helpul in case of multiple users on the device. Changes by sarpm@google.com over the original: - Some test improvements: remove @VisibleForTesting, increase coverage slightly. - Remove redundant robo tests that are now covered by the unit tests. Bug: 267755698 Test: atest BackupManagerServiceTest Manual test by running dumpsys backup with optional arguments. Change-Id: Id7790a501a8befb12a212f66adfc0cd8cc9f9e8b
2024-01-05Merge "Uptesting is moving folks to /external/robolectric from ↵ Rex Hoffman
/external/robolectric-shadows" into main am: 3a1ad8c70d am: fe73e96198 am: 6d8b448d3d Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2889455 Change-Id: Ie81e770aac077cdf4844c6321f1209c3b2d21187 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-01-05Uptesting is moving folks to /external/robolectric from ↵ Rex Hoffman
/external/robolectric-shadows We maintain /external/robolectric (keep it in sync with github/google3) and are getting ready to delete /external/robolectric-shadows Bug: 314757990 Test: atest same failing tests before and after in services/robotests. Flag: NA Change-Id: Ie3d2e902ffcba6b9d159b78592f7d6ce31288a2f
2023-10-06Clean up obsolete aliases for Truth. Krzysztof Kosiński
Bug: 255714762 Test: presubmit Change-Id: I7e29732e1e77e37cfb491521d14d2f3eb07deb36 Merged-In: I7e29732e1e77e37cfb491521d14d2f3eb07deb36
2023-10-06Clean up obsolete aliases for Truth. Krzysztof Kosiński
Bug: 255714762 Test: presubmit Change-Id: I7e29732e1e77e37cfb491521d14d2f3eb07deb36
2023-08-22Rename BackupManagerMonitorUtil to BackupManagerMonitorEventSender and ↵ beatricemarch
convert it into an instance class in preparation of adding more complex behaviour for recording BMM events to dumpsys. Bug: 290746120 Test: atest BackupManagerMonitorEventSenderTest, BackupManagerServiceTest, TarBackupReaderTest, KeyValuBackupTaskTest, KeyValueBackupReporterTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:073d1f1e6abb73ea47a24e670f79e7a488e823ed) Merged-In: Idba7eb5342038a86b34e73f63892a7a7d93bf894 Change-Id: Idba7eb5342038a86b34e73f63892a7a7d93bf894
2023-08-17Rename BackupManagerMonitorUtil to BackupManagerMonitorEventSender and ↵ beatricemarch
convert it into an instance class in preparation of adding more complex behaviour for recording BMM events to dumpsys. Bug: 290746120 Test: atest BackupManagerMonitorEventSenderTest, BackupManagerServiceTest, TarBackupReaderTest, KeyValuBackupTaskTest, KeyValueBackupReporterTest Change-Id: Idba7eb5342038a86b34e73f63892a7a7d93bf894
2023-05-10Revert "Modifying Backup code to support HSUM mode." am: 91e98fcb5a am: ↵ Wonyoung Kwak
c687b625f8 am: bbf39c4339 am: 882463a13f Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23126758 Change-Id: I0841a53d32fbdb23e60f9564d9e6d328900b427a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-10Merge changes from topic "br-cts-hsum" into udc-dev am: 82a2b5e93c am: ↵ Piyush Mehrotra
60c20b6b0f am: 66ce0276ea am: 0e44e10865 Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22327092 Change-Id: I3e61ae7067b64b75d7ef671b7a40c13419f9006c Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-10Revert "Modifying Backup code to support HSUM mode." Wonyoung Kwak
Revert submission 22327091-br-cts-hsum Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?branch=git_udc-dev&target=aosp_bramble-userdebug&lkgb=10098913&lkbb=10101009&fkbb=10098962, bug 281753581. Bug: 281753581 Reverted changes: /q/submissionid:22327091-br-cts-hsum Change-Id: I4de169440f587d5a458300a5f360ba974239e530
2023-04-25Modifying Backup code to support HSUM mode. Piyush Mehrotra
Bug: 266703231 Test: Run CTS/GTS tests for backup Change-Id: I7a8d09f9f1be83ff4d9f545439f93b2c5319f007
2023-03-31Add unit tests for feature to enable/disable backup scheduling. Andrea Zilio
Test: atest services/tests/mockingservicestests/src/com/android/server/backup/UserBackupManagerServiceTest.java Fix: 266679434 Change-Id: Iad17bd856fb16c7362c120fa72a560b8885f2f60
2023-03-20Merge "Remove idle requirement for full backup on Wear" Bagus Maulana
2023-03-16allow unit tests to use permissions stub lib Manjeet Rulhania
Bug: 266163862 Bug: 272633154 Change-Id: I9f7b0063025a8adae4af1bcaf76185cc54da766a Test: manual
2023-03-10Remove idle requirement for full backup on Wear Bagus Maulana
Bug: 269323514 Test: atest BackupFrameworksServicesRoboTests Change-Id: I2793f9afaa17f5fe62af5831d522328d23e4d62a (cherry picked from commit ef459c38bbacbbee80bd4df6bf737558593598c9)
2023-03-08Add permissions service dependency Manjeet Rulhania
PMS added a new method which expose a class from permissions service lib, adding the lib to fix class not found error. Bug: 271350595 Bug: 266163862 Test: manual Change-Id: Ieaba49c444b62ce25a16cf4f6499e2efda03f278
2023-02-15Update the default backup user after onUserUnlocking if necessary Sarp Misoglu
On the first ever boot of a HSUM device, UserManager will create the main user after BackupManagerService is created. If that happens the default user will stay as 0 until the device is rebooted. To prevent this we need to update the default user as soon as it's guaranteed that the main user is created (if one is to be created), which is when the first user unlocks. Bug: 266098768 Test: atest BackupManagerServiceTest atest BackupFrameworksServicesRoboTests manually by doing a factory reset and then checking backup is active for the main user via `adb shell bmgr --user 10 activate` Change-Id: Ic14e7357b468c27d206a57f9e7148d918f747c1d
2023-02-02Separate allow lists for profile and full non-system users. [CSarp Misoglu
This change does 2 things - > Separate Backup helper allow lists for profile and full non-system users Due to the work supporting the new headless config (aka 'main' user) we are adding new helpers to the multi-user allowlist in SystemBackupAgent. This allowlist was effectively for work profile so these helpers will start running for profile users as well. Since it might not make sense for all helpers to run for profile user, this CL separates the allowlists. > Separate Backup Eligibility allow lists for profile and full non-system users. Due to the work supporting the new headless config (aka 'main' user) we are adding new packages to the multi-user allowlist in BackupEligibilityRules. This allowlist was effectively for work profile so these packages will start getting backed up for profile users as well. Since it does not make sense for all those packages to be backed up for profile user, this CL separates the allowlists. Bug: 265142782 Test: atest SystemBackupAgentTest Manual by running `adb shell bmgr backupnow android` for a system, profile, and full non-system user and verifying only the correct helpers are added via IntelliJ debugger. atest BackupEligibilityRulesTest Change-Id: I6115d8ef56629293eac0885d9db98da2a5f916bb
2023-01-17Allow disabling framework Backup scheduling Ruslan Tkhakokhov
This remerges ag/20838898 that was reverted due to breaking a robolectric test in BackupFrameworksServicesRoboTests. Test: 1. atest BackupFrameworksServicesRoboTests 2. atest CtsBackupHostTestCases Bug: 259953764 Change-Id: I11c7dbe9959f5b5d1acf53e7830b7256357768e2
2023-01-13Revert "- Allow disabling framework Backup scheduling" Jason Macnak
This reverts commit 748c64d9dd728cdbaf8004c8be1b4f372c4cd624. Reason for revert: DroidMonitor: Potential culprit for b/265432205 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted Bug: b/265432205 Change-Id: I11e21ad5048635716adb5724b7d78d5513fc60e9
2023-01-13- Allow disabling framework Backup scheduling Andrea Zilio
Test: atest implemented and passing, to be sent in separate commit Bug: 259953764 Change-Id: I33be1b5907a6c2a0dd08c31ba3401d28fac02b35
2023-01-04Merge "Update BackupTransportClient#getAvailableRestoreSets() to return List ↵ Beatrice Marchegiani
instead of array"
2023-01-04Update BackupTransportClient#getAvailableRestoreSets() to return List ↵ beatricemarch
instead of array Test: ActiveRestoreSessionTest, RestoreSessionHostSideTest Bug: 210085179 Fix: 210085179 Change-Id: I889e5579e8ca37ce2de38e88a293ad477ae6e40f
2022-12-30Implement shadow for UserManager#getMainUser [CSarp Misoglu
Not having the implementation causes B&R robolectric tests fail with a NPE. Bug: 263981306 Test: atest BackupFrameworksServicesRoboTests Change-Id: I47bf7ba42cf3bd23e472f8c9a21e4e657053ad42
2022-11-23Create BackupAnnotations for B&R-related annotations and constants Ruslan Tkhakokhov
The class will serve as a container for B&R-specific logical types that are used throughout the code base (i.e. including non-BR components). Replace BackupManager#OperationType with the new BackupAnnotations#BackupDestination. Bug: 255376040 Test: m -j Change-Id: Ica9fc4670575dab01dbf18864cd8e5ec1132738f
2022-11-20Pass agent logs to monitor after package B&R Sarp Misoglu
In this change B&R tasks ask for logs from each BackupAgent after it is backed up or restored. These logs are then immediately passed on to the BackupManagerMonitor. Bug: 252760247 Change-Id: Iaf43ce61e98bb4b42c05c18a46031a06d41abb12 Test: $ atest BackupFrameworksServicesRoboTests:KeyValueBackupTaskTest $ atest BackupManagerMonitorUtilsTest Unfortunately, the other classes are not unit testable. For manual testing, I implemented some fake loggers for various BackupAgents, passed in a fake BackupManagerMonitor, ran B&R with the following commands, and observed that the monitor received the logs. 1. $ adb shell bmgr backupnow --all 2. $ adb shell bmgr restore ... (for one KV and one FullBackup package)
2022-08-19Validate transport before selecting in UserBackupManagerService. Piyush Mehrotra
Make sure transport is registered before changing current transport in UserBackupManagerService. If the input transport is not registered, throw an error to user. Fixes: 163539637 Test: 1. atest -v BackupFrameworksServicesRoboTests 2. Manual test on device. - bmgr list transports # which lists registered transports - Verify selecting transport succeeds on registered transports - Verify selecting transport throws an error on non-registered transports Change-Id: I7e3572a13df07b2dee34e295ea07f1ccff5ca505
2022-08-11Merge "Enfore caller permission check before reading whether a user is ready ↵ Piyush Mehrotra
for backup."
2022-08-11Enfore caller permission check before reading whether a user is ready for ↵ Piyush Mehrotra
backup. Adds a permission check at the beginning of BackupManagerService#isUserReadyForBackup() which ensures that the caller has appropriate permission ('INTERACT_ACROSS_USERS_FULL') if the target user id doesn't match caller. Fixes: 230866788 Test: atest -v BackupFrameworksServicesRoboTests Change-Id: I2423a4baa642901c13e7f18f17bdefa91b42605b
2022-08-10Unregister transport when user disables corresponding package. Piyush Mehrotra
Register transport when user puts package in default enable state. This change is an extension of ag/17072365. TransportManager#onPackageChanged is not correctly handling these 2 cases - 1. When a package is disabled by user. Meaning, the state 'COMPONENT_ENABLED_STATE_DISABLED_USER' was being ignored. 2. When a package is default-enabled. Meaning, the state 'COMPONENT_ENABLED_STATE_DEFAULT' was being ignored. If the package in question contains backup transports, they should be registered or unregistered depending on the state. For state 'COMPONENT_ENABLED_STATE_DEFAULT', I'm considering it as if package is enabled. The only situation where package is in disabled state in default state is when it is explicitly specified in Manifest at an application level. Bug: 162725876, 237049952 Fixes: 162725876, 237049952 Test: 1. atest -v BackupFrameworksServicesRoboTests:TransportManagerTest 2. Manual test on device (Oriole) - List transports - Disable package via Settings -> Apps - List transports and verify disabled transports are not present. - Enable package via Settings -> Apps - List transports and verify default-enabled transports are present. - Verify logs via logcat to ensure correct switch codepaths was taken in TransportManager Change-Id: I1d5e9f8bf5625257bd01a910d29b4dbcb68f3ab4
2022-07-06Use Mockito 4.6.1 API Sorin Basca
Bug: 236636175 Test: m RunBackupEncryptionRoboTests Test: m RunBackupEncryptionIntegRoboTests Test: m RunSettingsRoboTests Test: m RunSettingsLibRoboTests Change-Id: I0e301b641312f8cc4a235df5ec62acf1446cbb64
2022-03-04Fix onPackageChanged handling of disabled packages Paul Hadfield
TransportManager#onPackageChanged was not correctly handling the circumstance where broadcast ACTION_PACKAGE_CHANGED was received with EXTRA_CHANGED_COMPONENT_NAME_LIST containing only the package name, instead of >=1 component names. When that happens it indicates that a package-wide change has occurred, such as the package being enabled or disabled. If the package in question contains backup transports, they should be unregistered if the package is disabled, and re- registered if the package is enabled. But the current TransportManager#onPackageChanged doesn't know enough to do so. We can determine the enabled state of the package by calling PackageManager#getApplicationEnabledSetting. This commit modifies onPackageChanged to do that, and then (un/re)-register the packaged transports as appropriate. To test I extend the Roboelectric ShadowApplicationPackageManager so that the {get,set}ApplicationEnabledState() methods are exposed for use in the test setup. Note, this is a retake of ag/15301455, with handling added for a race condition which caused flakiness in CtsUtilTestCases: the onPackageChanged method must handle a possible exception thrown by the PackageManager if the package has just been removed. Bug: 162725876 Fixes: 162725876 Test: 1. atest -v TransportManagerTest 2. atest CtsBackupHostTestCases|CtsBackupTestCases|CtsUtilTestCases 3. manual test on device: 1 device:/ # bmgr list transports 2 device:/ # pm disable com.google.android.gms 3 device:/ # bmgr list transports 4 device:/ # pm enable com.google.android.gms 5 device:/ # bmgr list transports observe logcat showing BackupTransportManager MORE_DEBUG: step 2: Package c.g.a.gms was disabled. step 4: Package c.g.a.gms was enabled. Transport c.g.a.gms/.b.c.D2dTransportService registered Change-Id: I1ba20a50dfb9a6918605bbd3216a08f0047e2c10
2022-02-04Fix erroneous self comparison in KeyValueBackupTaskTest Michael Wright
Bug: 217923092 Test: atest BackupFrameworksServicesRoboTests Change-Id: I73c88df39b63b40a6ed008c5e7872604a5894fbc
2021-12-14Refactor UBMS to use LifecycleOperationStorage. Paul Hadfield
Several other related classes are also updated to have a dependency on OperationStorage, which removes a number of tight bindings on UserBackupManagerService. BUG: 161089758 Test: atest BackupFrameworksServicesRoboTests atest CtsBackupHostTestCases atest CtsBackupTestCases atest GtsBackupTestCases Change-Id: I644ef2cd1a3e8d8c35a269c140df8cc5f3654e16
2021-12-08Wrap IBackupTransport usages with BackupTransportClient Ruslan Tkhakokhov
Bug: 202716271 Change-Id: I4899fea3342f9e913fa1afa14ed7b67481f02908
2021-11-25Rename TransportClient to TransportConnection Ruslan Tkhakokhov
The change is auto-generated through IDE rename function and makes the following naming changes: 1. TransportClient -> TransportConnection 2. TransportClientManager -> TransportConnectionManager 3. + corresponding test files TransportConnection is a more appropriate name for the class as it's exactly what it does - manages the connection to the remote BackupTransport service implementation. This is a preparatory change to making the BackupTransport AIDL async. TransportClient name will later be used more appropriately for a class that wraps the actual communication with the transport. Bug: 202716271 Test: m -j Change-Id: I76a98edc7102c8fcffdb050208e9e65543e6e10c
2021-08-18Revert "Fix onPackageChanged handling of disabled packages" Paul Hadfield
This reverts commit 33139c16611fed10883afe8cae5f03c8a69570b4. Reason for revert: A CTS test is now flaky, see b/197093424 Change-Id: Ife432938448cc24bb2a61fa30873270bcf2ee1a7
2021-07-28Fix onPackageChanged handling of disabled packages Paul Hadfield
TransportManager#onPackageChanged was not correctly handling the circumstance where broadcast ACTION_PACKAGE_CHANGED was received with EXTRA_CHANGED_COMPONENT_NAME_LIST containing only the package name, instead of >=1 component names. When that happens it indicates that a package-wide change has occurred, such as the package being enabled or disabled. If the package in question contains backup transports, they should be unregistered if the package is disabled, and re- registered if the package is enabled. But the current TransportManager#onPackageChanged doesn't know enough to do so. We can determine the enabled state of the package by calling PackageManager#getApplicationEnabledSetting. This commit modifies onPackageChanged to do that, and then (un/re)-register the packaged transports as appropriate. To test I extend the Roboelectric ShadowApplicationPackageManager so that the {get,set}ApplicationEnabledState() methods are exposed for use in the test setup. Bug: 162725876 Fixes: 162725876 Test: 1. atest -v TransportManagerTest 2. manual test on device: 1 device:/ # bmgr list transports 2 device:/ # pm disable com.google.android.gms 3 device:/ # bmgr list transports 4 device:/ # pm enable com.google.android.gms 5 device:/ # bmgr list transports observe logcat showing BackupTransportManager MORE_DEBUG: step 2: Package c.g.a.gms was disabled. step 4: Package c.g.a.gms was enabled. Transport c.g.a.gms/.b.c.D2dTransportService registered Change-Id: I7bd397f0f1eadbbca6f371c3c9710df5386aca13