diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 00e58efb8a2a4..59f831e3bd6f5 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -10630,19 +10630,21 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } final String adminPkg = admin.getPackageName(); - try { - // Install the profile owner if not present. - if (!mIPackageManager.isPackageAvailable(adminPkg, userId)) { - mIPackageManager.installExistingPackageAsUser(adminPkg, userId, - PackageManager.INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS, - PackageManager.INSTALL_REASON_POLICY, - /* allowlistedRestrictedPermissions= */ null); + mInjector.binderWithCleanCallingIdentity(() -> { + try { + // Install the profile owner if not present. + if (!mIPackageManager.isPackageAvailable(adminPkg, userId)) { + mIPackageManager.installExistingPackageAsUser(adminPkg, userId, + PackageManager.INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS, + PackageManager.INSTALL_REASON_POLICY, + /* allowlistedRestrictedPermissions= */ null); + } + } catch (RemoteException e) { + // Does not happen, same process + Slogf.wtf(LOG_TAG, e, "Failed to install admin package %s for user %d", + adminPkg, userId); } - } catch (RemoteException e) { - // Does not happen, same process - Slogf.wtf(LOG_TAG, e, "Failed to install admin package %s for user %d", - adminPkg, userId); - } + }); // Set admin. setActiveAdmin(profileOwner, /* refreshing= */ true, userId);