summaryrefslogtreecommitdiff
path: root/services
AgeCommit message (Collapse)Author
2025-09-18[SP 2025-09-01] cleanup: Fix permission protection of ↵banksia-dev Daniel Norman
setObservedMotionEventSources The previous permission protection was done inside a Binder clear identity call, meaning that it used the permissions of system_server instead of the permissions of the calling AccessibilityService. Bug: 419110583 Test: atest AccessibilityServiceInfoTest Flag: EXEMPT security bugfix Change-Id: If64838388fa31bdc9abb0896d4011bfef8501a7c
2025-09-18[SP 2025-09-01] Prevent root from getting unverified attributions from non ↵ Nate Myren
system apps Similar to shell, system server, and other packages, the root UID bypasses attribution tag registration requirements. This can be exploited by a malicious proxy app. Also fixes a bug which caused an unverified proxy app's attribution tag to be erroneously called "valid" if "finishProxyOp" was called for a non-system proxy app, and one of the special proxied apps Bug: 416491779 Test: atest AppOpsMemoryUsageTest Flag: EXEMPT see bug (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ab99cde450cf900767a641ddcf71f4a42e771334) Merged-In: I9b44465554e10b803bc9b4ab76130aaf9933f605 Change-Id: I9b44465554e10b803bc9b4ab76130aaf9933f605
2025-09-18[SP 2025-09-01] Ensuring valid packageName when granting slice permission Sunny Goyal
Bug: 401256328 Test: atest SliceManagerTest Flag: EXEMPT bugfix Change-Id: I8e28097c0570922d9fb9ec9588b45bf4361a5020
2025-09-18[SP 2025-09-01] Calculate how much memory is used per account. Dmitry Dementyev
Prevent storing new data in AccountManager DB if too much storage is used. Test: manual Bug:273501008 Flag: EXEMPT security fix. Change-Id: I88a0fef8e2e7bc232768bd5f7aa3f4bf87cb1c2c (cherry picked from commit 6b8138ca5279b89d99884092cd3a5ca777f027be)
2025-09-18[SP 2025-09-01] Don't allow hiding SysUi Pavel Grafov
Hiding SystemUI makes the phone impossible to use even when done inside managed profile. Bug: 328182084 Test: manual with custom DPC Flag: EXEMPT bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:befa3c99b9571d8f28f4974e0c4adfe538eeba66) Merged-In: I847cb6d69db4924b2b3ddb741ac61a8f065e7c78 Change-Id: I847cb6d69db4924b2b3ddb741ac61a8f065e7c78
2025-09-18[SP 2025-09-01] Don't allow SdkSandbox to bypass systemUid check. Aseem Kumar
Test: atest Flag: EXEMPT security fix Bug: 397438392 Change-Id: I1003ac2a795c869aaeb292692b2681c7a5c8d12e (cherry picked from commit d400709160c8374d83a15dc7623b11434c08c4c6)
2025-09-18[SP 2025-09-01] Avoid mixups between different CPSes in ZenModeConditions Matías Hernández
A couple of places in ZenModeConditions assumed that condition id uniquely determines ConditionProviderService, which is not correct. Additionally, verify that only system zen rules can be handled by system CPSes (schedule, event, etc). Bug: 391894257 Test: atest ZenModeConditionsTest Flag: EXEMPT Bug fix Change-Id: I7bff4b04674b5f247bd3b8b6920af029ef8098f5 Merged-In: I7bff4b04674b5f247bd3b8b6920af029ef8098f5 (cherry picked from commit 5cb0ae9c43e2262ad37f599de4c65bb31841f936)
2025-09-18[SP 2025-09-01] Implement onNullBinding() in autofill service connection Haoran Zhang
With this fix, an autofill service which returns null in onBind() will no longer stay bound by system_server and will no longer be able to launch activities from the background. Flag: EXEMPT security bugfix Test: sts-tradefed run sts-dynamic-develop -m StsHostTestCases -t android.security.sts.Bug_401545800 Bug:b/401545800 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:d883efa912c0a39c46437074576cffb7078ac455) Merged-In: Ieb3e63fe2ac1f440be3d164730ef3110209ec1a6 Change-Id: Ieb3e63fe2ac1f440be3d164730ef3110209ec1a6
2025-09-18[SP 2025-09-01] Prevent non-system ShutdownActivity from being launched by ↵ Dmitri Plotnikov
BatteryService Bug: 380885270 Test: adb shell dumpsys battery set temp 1001 Flag: EXEMPT bug fix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:8cda6fda96c420588a5f8f5112522cfde14659b4) Merged-In: I6c00b47d424d81712bd9634c31de4b7d2e9cbe31 Change-Id: I6c00b47d424d81712bd9634c31de4b7d2e9cbe31
2025-09-18[SP 2025-09-01] Check DPC package validity during package updates Rubin Xu
Bug: 384514657 Bug: 414603411 Test: manual Flag: EXEMPT bugfix Merged-In: I0c629c138059a71786e82b4653de9cef7e951aad Merged-In: I1743c111f8e8b5f4c1f878a61b88b8f1ed6b86a1 Change-Id: I1743c111f8e8b5f4c1f878a61b88b8f1ed6b86a1
2025-09-18[SP 2025-09-01] DevicePolicyManager: ignore invalid proxy settings Rubin Xu
Ignore exceptions thrown when invalid proxy settings are being applied, in order to avoid breaking callers performing potentially security-sensitive operations (like removing an ActiveAdmin) Bug: 365975561 Test: manual Flag: EXEMPT bugfix Merged-In: I496b9ce7a0bbb1e6c245682be57b7357bb432d42 Change-Id: I496b9ce7a0bbb1e6c245682be57b7357bb432d42 (cherry picked from commit 2ea32931ef9a06a762b8cf21584f156140672472)
2025-09-18[SP 2025-09-01] [RESTRICT AUTOMERGE] Disallow PINNED in setLaunchWindowingMode Hongwei Wang
- Throw security exception if setLaunchWindowingMode is called with WINDOWING_MODE_PINNED - Deprecated also test cases that are irrelevant after this change Flag: EXEMPT security fix Bug: 388029380 Test: atest PinnedStackTests \ SafeActivityOptionsTest \ TaskLaunchParamsModifierTests Change-Id: I9d37d41af3d86f785fd5d85503b544552b39cac4
2025-09-18[SP 2025-09-01] Use consistent animation when forcibly hiding non system overlay Riddle Hsu
There are several non system overlay window types. When hiding the windows with animation, their specified exit animations may be used. This avoids ugly jump cut and inconsistent duration when these windows are requested to be hidden. Bug: 408215749 Flag: EXEMPT bugfix Test: Show multiple windows with different overlay types and window animations by non system apps. Launch Settings and check the windows are fading out in a short time. (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:dd71ab6ba3950978bd28dc38fecec236cf1153ea) Merged-In: Ie7bb2663892d608715aa077e2170eae4c03a4e36 Change-Id: Ie7bb2663892d608715aa077e2170eae4c03a4e36
2025-09-18[SP 2025-09-01] Do not allow custom animation of untrusted Toast Riddle Hsu
Since target API level 30 (Android 11), regular text toast is shown by SystemUI (See#CHANGE_TEXT_TOASTS_IN_THE_SYSTEM). While legacy apps and deprecated custom view show the toast in its own processes, so force the default animation style for these usages to avoid unexpected animation duration. Such when setForceHideNonSystemOverlayWindowIfNeeded is triggered, the regular Toast displayed by SystemUI won't be affected (because SystemUI has internal permission), and the untrusted Toast can be hidden in a short time (config_longAnimTime=500ms) instead of a customized duration. Bug: 408215749 Flag: EXEMPT bugfix Test: Show a Toast with modified WindowManager.LayoutParams#windowAnimations (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:3beed7b34e54f2147aef9e9e5bbb413527b399fa) Merged-In: Ib2844dedebfa3ec9fc8333af3f66bb07cd4d3d7f Change-Id: Ib2844dedebfa3ec9fc8333af3f66bb07cd4d3d7f
2025-09-18[SP 2025-09-01] Fix starting the activity with incorrect pid/uid Louis Chang
Starts the activity in the same thread vs. in the frame callback. Bug: 406763872 Test: am start-in-vsync Flag: EXEMPT bugfix Change-Id: Ida3648fb8a4c7e4801b024622f7e5f1110184a0d (cherry picked from commit fca9c788b3364017b021544ec9594b43c93c9d29) Change-Id: Ifb5e130a1e73e076233b6d78e2ab7bc118dce35b
2025-09-18[SP 2025-08-01] Defer remove splash screen while device is locked wilsonshih
...and activity does not request showWhenLocked. The splash screen won't contains secure information, so it's safe to declared as showWhenLocked. But before remove starting window, if the activity does not request showWhenLocked and device is locked, try to trigger unoccluding animation, and keep app window hide until transition animation finish. Bug: 378088391 Bug: 383131643 Test: run simulate app repeatly, verify the app content won't be visible during transition animation. Merged-In: Id4db3772950059803883d00f9dd6b94aa98382f0 Change-Id: Id4db3772950059803883d00f9dd6b94aa98382f0
2025-05-01Fix a race condition when testing trade-in mode. David Anderson
It's possible for trade-in mode to race with normal userdebug adbd when using "tradeinmode testing start". We previously tried to fix this using property triggers, but it's cleaner to simply set the tradeinmode persist property before rebooting. Bug: 381182849 Flag: EXEMPT bugfix Test: adb shell tradeinmode testing start (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a5590c89745001afea1b1aaad665204e1ea5a03b) Merged-In: Ibb07c379f0947721a11c6fc521bf3c784b54016c Change-Id: Ibb07c379f0947721a11c6fc521bf3c784b54016c
2025-04-30Fix bug of unable to suspend packages after reboot Rubin Xu
Make copy of an immutable collection before operating on it. Bug: 408976950 Flag: EXEMPT bugfix Test: suspend packages with TestDPC, reboot device and try suspend / unsuspend again. (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:d2b4b028971ced322a7052cfa5c270d6bc9d62d7) Merged-In: I7b6fe55a0a41d74492579f6f99987fab9467c898 Change-Id: I7b6fe55a0a41d74492579f6f99987fab9467c898
2025-04-24UserSwitchingDialog timeout shouldn't remove all callbacks and messages. Yasin Kilicdere
The UserSwitchingDialog's timeout mechanism incorrectly removes all callbacks and messages. This causes unexpected behavior, notably the loss of a crucial post message (linked in the bugs). Bug: 409311749 Bug: 406689907 Test: atest UserControllerTest Flag: EXEMPT bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:82fc90457b122310ebcc4315958985db8db714bf) Merged-In: I4e353d751ea211cac2c1014c7b201da4d1cd1f7f Change-Id: I4e353d751ea211cac2c1014c7b201da4d1cd1f7f
2025-04-22[Intrusion Logging] Fix INetdEventCallback in disable Liz Prucka
The INetdEventCallback CALLBACK_CALLER_DEVICE_POLICY is registered, but the incorrect callback was removed. Bugfix so the correct callback is toggled. Bug: 412330307 Test: atest android.security.cts.IntrusionDetectionManagerTest Ignore-AOSP-First: security feature Flag: EXEMPT: bugfix in localized component (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:609dd77d532761620249061b93850e596915c518) Merged-In: I46ee5844dc2ebf3d4e41af699d93fede5c70dd7c Change-Id: I46ee5844dc2ebf3d4e41af699d93fede5c70dd7c
2025-04-17DreamService should execute runnables in place if already in main thread petsjonkin
Bug: b/394274826 Test: atest DreamServiceTest , manual testing Flag: EXEMPT bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:181c1789a3512e83514a12bd5d9980c36952e3aa) Merged-In: Ic302b534509d0eeabea567d95a2607a03801ee4d Change-Id: Ic302b534509d0eeabea567d95a2607a03801ee4d
2025-04-17Only update remote target, if visibility is different from input target Felix Stern
When syncing the visibility of the imeInputTarget to the (RemoteInsets)ControlTarget, without having an actual change, the upcoming call to updateClientVisibility will be ignored and we don't invoke the IMMS listener. Therefore, we should only sync the visibility when it's different between imeInputTarget and controlTarget - otherwise we can directly invoke the listener. Fix: 402547338 Fix: 405296840 Flag: android.view.inputmethod.refactor_insets_controller Test: atest ImeInsetsSourceProviderTest#testUpdateControlForTarget_remoteInsetsControlTargetUnchanged Test: manual: open view where controlTarget=RemoteInsetsControlTarget; Open another fullscreen app and request IME; close new window to return to RICT (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:43624020c81c27f67beb882d4cabb6ea041a6c89) Merged-In: I96ffe688ae5eb32e325f3f7c9c62b392f7287100 Change-Id: I96ffe688ae5eb32e325f3f7c9c62b392f7287100
2025-04-16Revert "Update SCVH InputTransferToken when available" Android Culprit Assistant
This revert was created by Android Culprit Assistant. The culprit was identified in the following culprit search session (http://go/aca-get/78a373af-3d5f-4015-a25e-bcb24843f6a9). Bug: 405254118 Signed-off-by: boq-android-culprit-assistant@system.gserviceaccount.com (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:c77468cfe08273d1d568e71e17b5fc4e20b8f6ff) Merged-In: Id09afebdfdb16d58c17da55c070a023e9aca9a1a Change-Id: Id09afebdfdb16d58c17da55c070a023e9aca9a1a
2025-04-16Ensure dream logic is not suspended on handler. brycelee
It is possible for work to be queued on a handler and then suspended in doze mode. This can cause dream operations to be noticeably deferred. In order to address this, a wake lock is now acquired in this scenario and wraps these calls on the handler. Note that in the normal, non-doze dream case, the wakelock is not necessary. Bug: 404420534 Flag: EXEMPT bugfix Test: atest DreamServiceTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:d958722427762581b9a39b3518d21334e063d99b) Merged-In: Ib7802e951ea793ca4484ef19972a9f2aed4bfd81 Change-Id: Ib7802e951ea793ca4484ef19972a9f2aed4bfd81
2025-04-15fix: Unbind an A11yService from onNullBinding Daniel Norman
With this fix, a service which returns null in onBind() will no longer stay bound by system_server and will no longer be able to launch activities from the background. Bug: 386950836 Test: Follow steps in the bug to reproduce the issue; observe that BAL is no longer allowed. Test: atest android.security.cts.Bug_386950836 Flag: EXEMPT security bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:36ebe84ca60f19e039a5700e361ad0c32c852b1a) Merged-In: Id04111b061881d23346aa90a0b5d08a28bed2c6f Change-Id: Id04111b061881d23346aa90a0b5d08a28bed2c6f
2025-04-12Clear size compat config when resizing to large screen Riddle Hsu
The CompatDisplayInsets could be created when the activity is on a small screen. If the activity is moved or the display is resized to large screen, then the compat config should be cleared to fit container size if universal resizable is enabled. For example: Fold to unfold(large screen): clear size compat info Unfold to fold(compact screen): create size compat info Fix: 407952252 Flag: com.android.window.flags.universal_resizable_by_default Test: SizeCompatTests#testUniversalResizeableByDefault (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:8f81dad65e2ba97b69438c28de0d34d9620404a3) Merged-In: I4da10de140c8bdf565e97239e9ea3901c293ea3d Change-Id: I4da10de140c8bdf565e97239e9ea3901c293ea3d
2025-04-10fix(magnification): catch the unregister failing exception to prevent system ↵ Roy Chou
crash For b/399282180, the context intent receiver unregistering is called when the FullScreenMagnificationGestureHandler#onDestroy, which implies the handler is not needed anymore. That is, the fail execption when unregistering would not affect the user experience, and it should not make the system crash too. Therefore, we use try-catch to catch the exception to prevent system crash. Besides, since we still need more clues to identify the root cause for the exception, we also log the exception for future investigations. This fix should be low risk, since we only catch the exception to prevent the crash, and no logic changes. Bug: 399282180 Flag: EXEMPT bugfix Test: manually atest FullScreenMagnificationGestureHandlerTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:782870d5a691b44837bc0b5308eb7c02a22cb483) Merged-In: I916719958ce3954076a1ad240ffaf150d619cd16 Change-Id: I916719958ce3954076a1ad240ffaf150d619cd16
2025-04-07StorageManagerService: Call invalidateVolumeListCache upon complete user unlock ot_zhilin.gao@mediatek.com
When a user is completely unlocked, the invalidateVolumeListCache function of StorageManager should be called to ensure that the app can obtain the latest volume information. Currently, StorageManager uses a caching structure to store volume information obtained via the getVolumeList function of StorageManagerService. When an app, which is started by receiving the BOOT_COMPLETED broadcast, calls StorageManager's invalidateVolumeListCache function, an issue may arise. If the data/media partition has already been mounted but the user has not yet unlocked it, the volume information returned by StorageManagerService's getVolumeList will have a state of "unmounted". This volume information will be cached in StorageManager's sVolumeListCache. Since the mVolumes information in StorageManagerService has not changed, the cache will not trigger a refresh. Consequently, the app will always retrieve volume information with an "unmounted" state from the cache when calling StorageManager's getVolumeList function. Bug: 407690018 Flag: EXEMPT bug fix Test:m 1. Start the app by receiving the BOOT_COMPLETED broadcast. 2. The app calls StorageManager's getVolumeList function. 3. Call the getState function to check the mount status of the StorageVolume. (cherry picked from https://android-review.googlesource.com/q/commit:f2a5bd48dcdd999284cf8fb99d2f866566bdb013) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:686d0259f41a835fa60c9dbc5e797e5379119c7a) Merged-In: Ib1b86c604f9e9f0dd413673ed6e767103d887b32 Change-Id: Ib1b86c604f9e9f0dd413673ed6e767103d887b32
2025-04-07Check permission for the correct user when updating revoked compat Evan Severson
Test: atest CameraPermissionTest --user-type secondary_user Fixes: 398766687 Flag: EXEMPT bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:fc87f63ebca84dff2bc4326135b58e8659b1fa0a) Merged-In: Ie0c7d0364a3f8e47d0eedd3a3f967e536153d0b7 Change-Id: Ie0c7d0364a3f8e47d0eedd3a3f967e536153d0b7
2025-04-04Increase the threshold before starting to autogroup Julia Reynolds
Too many valid use cases are being autogrouped at the current threshold Bug: 402725724 Test: GroupHelperTest Test: NotificationManagerServiceTest Test: NotificationManagerTest Flag: EXEMPT bug fix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:7024417f7fdccf36eac985fc4ca2ba12faa1fdcd) Merged-In: I4a74a50325ba6f63351a13446871da01267bfec6 Change-Id: I4a74a50325ba6f63351a13446871da01267bfec6
2025-04-02Add RealTimeIntegrityModel to Glonass (JNI) Shinru Han
- Add RealTimeIntegrityModel to Glonass - AuxiliaryInformation should be array - Make GnssAssistance fields nullable Bug: 404694257 Test: on-device Flag: android.location.flags.gnss_assistance_interface_jni (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f91a8feb6c6b3e38246987b2d2b51d7df9c2c65a) Merged-In: Id4c1913187365c846b1c2b7d9d1c14e8b91b37b1 Change-Id: Id4c1913187365c846b1c2b7d9d1c14e8b91b37b1
2025-04-01Revert "Add some new modality-specific APIs in BiometricManager." Hao Dong
Revert submission 32295314-fm_to_bm Reason for revert:b/406937567#comment7 Bug: 406937567 Reverted changes: /q/submissionid:32295314-fm_to_bm (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ca851226c8aa3f83e40445db238715251bd38b37) Merged-In: I7c9a506362b74bfe9f876b1191f3f8da4c93cd4c Change-Id: I7c9a506362b74bfe9f876b1191f3f8da4c93cd4c
2025-04-01add wear-sdk bootclasspath jars Todd Lee
This change updates packages to remove the unused uses-library Bug: b/331485125 Test: manual build/boot Flag: NONE exempt wear only config change (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:0fb53884f33f81a3771cbb430af097b0f222572a) Merged-In: Ifd6944f91d147900f800c495549fb518d1ee143d Change-Id: Ifd6944f91d147900f800c495549fb518d1ee143d
2025-03-25Camera: Dump stack traces at cameraserver watchdog Shuzhen Wang
Before cameraserver watchdog, trigger CameraServiceProxy to dump the client, cameraserver, and HAL processes stack traces. Test: Camera CTS; manually force a camera close watchdog Flag: EXEMPT bugfix Bug: 392953059 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:4c2f2a6f89180f833b224b1e9558d6581ee54b84) Merged-In: I22aae54f7308ef4d2f82dd5685406585ead5e33b Change-Id: I22aae54f7308ef4d2f82dd5685406585ead5e33b
2025-03-25services: Use d8 on eng builds. LaMont Jones
Bug: b/374975543 Test: manual, TH (cherry picked from https://android-review.googlesource.com/q/commit:edb2936696807eef5fe63ebac7013fd6d0855ecc) Merged-In: Idf6c2dc55409ccc8a1fdb87441273c53cb41195c Change-Id: Idf6c2dc55409ccc8a1fdb87441273c53cb41195c
2025-03-24Merge "Fixing the default values for pending intent at ↵ Oleksii Kislinskyi
LocationPendingIntentTransport." into main
2025-03-24Merge "[SysUI][Floaty] Send KeyEvent with FLAG_LONG_PRESS on long power ↵ Bharat Singh
press" into main
2025-03-24Merge "Add a services.impl intermediate target" into main Jared Duke
2025-03-24Merge "Safeguard DreamManager in PhoneWindowManager" into main Darrell Shi
2025-03-24Merge "Remove flag android.security.significant_places" into main Eric Biggers
2025-03-24Merge "Disable the AnrTimer freezer for broadcast ANRs" into main Lee Shombert
2025-03-24Merge "Set default classification types when enabling KEY_TYPE adjustments" ↵ Yuri Lin
into main
2025-03-24Merge "Update OWNERS" into main am: a4b13242c2 Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3554946 Change-Id: I810a2a88956a0744be7d56ce38cd6fad97634957 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-24Merge "Update OWNERS" into main Treehugger Robot
2025-03-24Merge "Add some new modality-specific APIs in BiometricManager." into main Hao Dong
2025-03-24Merge "Fix NPE in TouchpadDebugViewController" into main Vaibhav Devmurari
2025-03-24Disable the AnrTimer freezer for broadcast ANRs Lee Shombert
The AnrTimer can freeze ANR'ed processes until system server is ready to take a stack dump. The process is unfrozen when the ANR report is generated. The process is also unfrozen in a finalizer, in case system_server fails to take an ANR report. However, the unfreeze operation can induce a finalizer timeout. This change disables freezing ANR'ed processes until the finalizer timeouts are understood. Flag: com.android.server.utils.anr_timer_freezer Bug: 386408143 Test: atest * FrameworksServicesTests:com.android.server.am * CtsAppTestCases * FrameworksServicesTests:AnrTimerTest Change-Id: I0a53f8e67a1debd615c36b439e2b151a8aceb910
2025-03-24Merge "a11y: Refactor click canceling" into main Gavin Williams
2025-03-24Merge "Revert "Add a config to enable live wallpaper in desktop experience"" ↵ Treehugger Robot
into main
2025-03-24Merge changes If83c4ee8,I43d11c3c into main Eric Biggers
* changes: LockSettingsService: always get user properties from UserManagerInternal LockSettingsService: simplify querying of credential shareability