diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 7e5d5aae06e4c..ac5a5bab3d11f 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -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.