Age | Commit message (Collapse) | Author |
|
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
|
|
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
|
|
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
|
|
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
|
|
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>
|
|
Bug: 386691288
Test: CI
Change-Id: I83bed144fbc6320504c988d6dc8f9a3f7e60f1b5
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
/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>
|
|
/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
|
|
Bug: 255714762
Test: presubmit
Change-Id: I7e29732e1e77e37cfb491521d14d2f3eb07deb36
Merged-In: I7e29732e1e77e37cfb491521d14d2f3eb07deb36
|
|
Bug: 255714762
Test: presubmit
Change-Id: I7e29732e1e77e37cfb491521d14d2f3eb07deb36
|
|
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
|
|
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
|
|
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>
|
|
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>
|
|
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
|
|
Bug: 266703231
Test: Run CTS/GTS tests for backup
Change-Id: I7a8d09f9f1be83ff4d9f545439f93b2c5319f007
|
|
Test: atest services/tests/mockingservicestests/src/com/android/server/backup/UserBackupManagerServiceTest.java
Fix: 266679434
Change-Id: Iad17bd856fb16c7362c120fa72a560b8885f2f60
|
|
|
|
Bug: 266163862
Bug: 272633154
Change-Id: I9f7b0063025a8adae4af1bcaf76185cc54da766a
Test: manual
|
|
Bug: 269323514
Test: atest BackupFrameworksServicesRoboTests
Change-Id: I2793f9afaa17f5fe62af5831d522328d23e4d62a
(cherry picked from commit ef459c38bbacbbee80bd4df6bf737558593598c9)
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Test: atest implemented and passing, to be sent in separate commit
Bug: 259953764
Change-Id: I33be1b5907a6c2a0dd08c31ba3401d28fac02b35
|
|
instead of array"
|
|
instead of array
Test: ActiveRestoreSessionTest, RestoreSessionHostSideTest
Bug: 210085179
Fix: 210085179
Change-Id: I889e5579e8ca37ce2de38e88a293ad477ae6e40f
|
|
Not having the implementation causes B&R robolectric tests fail with a NPE.
Bug: 263981306
Test: atest BackupFrameworksServicesRoboTests
Change-Id: I47bf7ba42cf3bd23e472f8c9a21e4e657053ad42
|
|
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
|
|
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)
|
|
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
|
|
for backup."
|
|
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
|
|
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
|
|
Bug: 236636175
Test: m RunBackupEncryptionRoboTests
Test: m RunBackupEncryptionIntegRoboTests
Test: m RunSettingsRoboTests
Test: m RunSettingsLibRoboTests
Change-Id: I0e301b641312f8cc4a235df5ec62acf1446cbb64
|
|
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
|
|
Bug: 217923092
Test: atest BackupFrameworksServicesRoboTests
Change-Id: I73c88df39b63b40a6ed008c5e7872604a5894fbc
|
|
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
|
|
Bug: 202716271
Change-Id: I4899fea3342f9e913fa1afa14ed7b67481f02908
|
|
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
|
|
This reverts commit 33139c16611fed10883afe8cae5f03c8a69570b4.
Reason for revert: A CTS test is now flaky, see b/197093424
Change-Id: Ife432938448cc24bb2a61fa30873270bcf2ee1a7
|
|
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
|