| 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
|
|
1. Move implementations and related utils to internal
2. Make calling SystemConfig methods from ParsingPackageUtils.Callback
to avoid calling from the client side.
3. Move isMatch and isEnabled from ComponentParseUtils to PackageInfoUtils
4. Move string from SELinuxUtil to SeinfoUtil
5. Move some methods from AndroidPackageUtils to AndroidPackageLegacyUtils
6. Copy some methods from PackageInfoUtils to AppInfoUtils
7. Use PackageParserException instead of PackageManagerException for
validatePackageDexMetadata method
Bug: 309596860
Test: build pass and boot to home
Test: atest PackageManagerServiceServerTests
Test: atest PackageManagerComponentOverrideTests
Test: atest PermissionServiceMockingTests
Test: atest PackageManagerServiceUnitTests
Test: atest PackageManagerPerfTests
Change-Id: I3de48d0d8adf714447823408673e07ed379f27ab
|
|
This is the third attempt to merge ag/25043811.
Wired routing means choosing where media plays among the
non-bluetooth routes. You can find details of the design
in go/wired-device-routing. You can find a summary of the
change here:
- Changes are guarded by the
enable_audio_policies_device_and_bluetooth_controller
flag in the media_solutions namespace.
- All wired and active bluetooth devices routes are
obtained from AudioManager.
- Bluetooth route ids are obtained from BluetoothAdapter,
regardless of whether the route corresponds to an active
or inactive bluetooth route.
- When necessary, audio routing strategies are used to
route the audio away from the default audio output.
Existing tests became invalid due to changes in the
dependencies of AudioPoliciesDeviceRouteController. New
tests are being added in the following commit where we
need to need to make changes in our dependencies so as
to enable testing.
Bug: 305199571
Test: atest MediaRouter2HostSideTest CtsMediaBetterTogetherTestCases
Change-Id: I060d0e67191750fb1b92c5fc7a102871840a776e
|
|
|
|
This reverts commit dc78995b35b549a37ca50ce6abf565effe5e0fce.
Reason for revert:
Reason for revert: Potential culprit for b/314133482 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.
Change-Id: I718f00008043add508563a4e3e496deefc0fd310
|
|
|
|
This is a revert^2 of ag/25043811.
Wired routing means choosing where media plays among the
non-bluetooth routes. You can find details of the design
in go/wired-device-routing. You can find a summary of the
change here:
- Changes are guarded by the
enable_audio_policies_device_and_bluetooth_controller
flag in the media_solutions namespace.
- All wired and active bluetooth devices routes are
obtained from AudioManager.
- Bluetooth route ids are obtained from BluetoothAdapter,
regardless of whether the route corresponds to an active
or inactive bluetooth route.
- When necessary, audio routing strategies are used to
route the audio away from the default audio output.
Existing tests became invalid due to changes in the
dependencies of AudioPoliciesDeviceRouteController. New
tests are being added in the following commit where we
need to need to make changes in our dependencies so as
to enable testing.
Bug: 305199571
Test: atest MediaRouter2HostSideTest CtsMediaBetterTogetherTestCases
Change-Id: Ia051829189f14ab2eb8310bee74bd17203c0b294
|
|
|
|
This reverts commit da1e5bb6acdf498d61499e1ab11306c24302b4f5.
Reason for revert: b/313914778
Change-Id: I6f97f2e056202035cb31e0a50d8b783c3805725b
|
|
|
|
Wired routing means choosing where media plays among the
non-bluetooth routes. You can find details of the design
in go/wired-device-routing. You can find a summary of the
change here:
- Changes are guarded by the
enable_audio_policies_device_and_bluetooth_controller
flag in the media_solutions namespace.
- All wired and active bluetooth devices routes are
obtained from AudioManager.
- Bluetooth route ids are obtained from BluetoothAdapter,
regardless of whether the route corresponds to an active
or inactive bluetooth route.
- When necessary, audio routing strategies are used to
route the audio away from the default audio output.
Existing tests became invalid due to changes in the
dependencies of AudioPoliciesDeviceRouteController. New
tests are being added in the following commit where we
need to need to make changes in our dependencies so as
to enable testing.
Bug: 305199571
Test: atest MediaRouter2HostSideTest CtsMediaBetterTogetherTestCases
Change-Id: Ib6f2f2cfd3f65cde4be6a425158487b58c561d7c
|
|
Move interfaces under pasring/pkg/ and pkg/parsing/ to
the framework internal path.
Bug: 309596860
Test: build pass and boot to home
Test: atest PackageManagerServiceServerTests
Test: atest PackageManagerComponentOverrideTests
Test: atest PermissionServiceMockingTests
Test: atest PackageManagerServiceUnitTests
Change-Id: I7bc4eae1c9feaca725f9b8bc4e11764d978ef6c6
|
|
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
|
|
allowed apps on user 0)." into udc-dev am: b5c0e6e753 am: 88a1fd87a3
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23154111
Change-Id: I157de2875d076ab0f7a3223dcd1e87fba9fc8207
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
apps on user 0).
Also correctly makes DISALLOW_DEBUGGING_FEATURES global to block adb on
HSUM
Test: Manual use of connected apps settings on HSUM
Fixes: 264853055
Fixes: 266542871
Change-Id: I5caecdeeefa42671f1410a07ce06646610256905
|
|
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
|
|
Bug: b/255495104
Test: atest AudioPoliciesBluetoothRouteControllerTest
Change-Id: I814a776dd80ff1f02b09db91a4174244bcd8ded0
|
|
am: f626b58472 am: 39d74defdc
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2446527
Change-Id: I6d6c7adc94f4f6b92ef00a4994c0211331561d7f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
Bug: b/255495104
Test: N/A
Change-Id: I11b0cb8fa3a143b4d9af74f0464ff3737393c9fd
|
|
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
|
|
|
|
Add a new NetworkTimeHelper impl and changes to support it in the
time detector service code.
Background:
When the location code that became NtpNetworkTimeHelper was first
written, Android devices were not guaranteed to be requesting the time
regularly from network time sources: it was only done if the user had
enabled automatic time detection.
That changed a few releases ago, and so the location code should always
be able to ask the time detector for the latest network time signal.
This is part of a wider goal to remove several dependencies in the
Android platform on low-level NTP client code (NtpTrustedTime class).
The NTP protocol usage should be an implementation detail, not something
that is widely known to unrelated classes that want an accurate time.
With the new impl, the SDK SystemClock.currentNetworkTimeClock() call
will ask the time detector service for the latest network time too, and
not interact with the NTP client singleton directly as it does today. It
currently needs to use the NTP client because both the location code and
time detector use the NtpTrustedTime singleton independently and it is
therefore the closest thing on Android today to an authority of "what is
the latest network time the device has obtained?".
Once the time detector is the authority on "latest network time", it
will allow the platform to apply stringent checks to things like time
sync accuracy, which is currently not well checked and heavily dependent
on network round-trip time and network delay symmmetry.
This refactoring is also potentially important for form factors like
Wear, which disable NetworkTimeUpdateService and therefore won't trigger
NtpTrustedTime while attempting to sync. There's a good chance the
location time sync is also broken on Wear (if present) because of the
unusual networking constraints. The API
SystemClock.currentNetworkTimeClock(), which was added to the public SDK
in Android T, may be unreliable or broken on Wear. In future, Wear could
call suggestNetworkTime() on the time detector service from its own
equivalent of NetworkTimeUpdateService and restore
SystemClock.currentNetworkTimeClock() behavior, while also supporting
the location stack's needs (if that is also used on Wear).
Centralizing network sync under NetworkTimeUpdateService will mean that
fewer components on devices will be syncing time for their own ends,
potentially reducing load on time servers too.
This centralization also supports options for changing how "network
time" is obtained in future, e.g. allowing easier integration of newer
protocols like NTS or Roughtime, or partner plug-ins to support
proprietary protocols.
New implementation details:
The TimeZoneDetectorNetworkTimeHelper implementation retrieves the
latest network time suggestion from the TimeDetectorInternal API. It
attempts to pass time to the GNSS code as often as the original
implementation, even when a new time signal isn't available and its
potentially repeating itself, in case GNSS code has become reliant on
that. Generally, it's hard to tell what the contract should be,
particularly with the unusual behavior around "on demand" Vs "periodic"
and the historic bug there.
The new implementation should become the default when it is considered
safe to do so, i.e. after testing when we are confident that
NetworkTimeUpdateService is behaving as well as the old
NtpNetworkTimeHelper impl when detecting connectivity, etc. This can be
done with a single boolean compile-time flag.
Other changes:
The time detector is now a dependency of the location stack, so the
SystemServer service bootstrap ordering has been adjusted.
Bug: 222295093
Test: atest services/robotests/src/com/android/server/location/gnss/TimeDetectorNetworkTimeHelperTest.java
Test: atest services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyImplTest.java
Test: atest services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java
Change-Id: I2f9a14776e9fafe426213df7cb0307a3fe541fad
|
|
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
|
|
Test: btest android.devicepolicy.cts.ProvisioningTest#createAndProvisionManagedProfile_setsCrossProfilePackages -si
Bug: 261834806
Change-Id: I1e611a16dc10704a386cce4fd3a1d596e1c65f36
|
|
|