Headless: fix system update notification

Allow the OTA client from the main user to send OTA information
back to the framework.

Bug: 262854379
Test: GtsDevicePolicyTestCases:PendingSystemUpdateTest
Change-Id: I607e0515dee1bd8ba9d9a68940c13c1a6d147196
This commit is contained in:
Rubin Xu
2023-04-19 13:45:16 +01:00
parent 26e2af36b7
commit 1408242781

View File

@@ -16549,11 +16549,13 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
hasCallingOrSelfPermission(permission.NOTIFY_PENDING_SYSTEM_UPDATE),
"Only the system update service can broadcast update information");
if (UserHandle.getCallingUserId() != UserHandle.USER_SYSTEM) {
Slogf.w(LOG_TAG, "Only the system update service in the system user can broadcast "
+ "update information.");
return;
}
mInjector.binderWithCleanCallingIdentity(() -> {
if (!mUserManager.getUserInfo(UserHandle.getCallingUserId()).isMain()) {
Slogf.w(LOG_TAG, "Only the system update service in the main user can broadcast "
+ "update information.");
return;
}
});
if (!mOwners.saveSystemUpdateInfo(info)) {
// Pending system update hasn't changed, don't send duplicate notification.