diff --git a/services/core/java/com/android/server/pm/BroadcastHelper.java b/services/core/java/com/android/server/pm/BroadcastHelper.java index d6233c7afe226..98d60817971ca 100644 --- a/services/core/java/com/android/server/pm/BroadcastHelper.java +++ b/services/core/java/com/android/server/pm/BroadcastHelper.java @@ -51,7 +51,6 @@ import android.util.SparseArray; import com.android.internal.util.ArrayUtils; import java.util.ArrayList; -import java.util.List; import java.util.function.BiFunction; import java.util.function.Supplier; @@ -334,6 +333,13 @@ public final class BroadcastHelper { sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, 0, null, null, userIds, instantUserIds, broadcastAllowlist, null /* filterExtrasForReceiver */, null); + // Send to PermissionController for all new users, even if it may not be running for some + // users + sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, + packageName, extras, 0, + mContext.getPackageManager().getPermissionControllerPackageName(), + null, userIds, instantUserIds, + broadcastAllowlist, null /* filterExtrasForReceiver */, null); } public void sendFirstLaunchBroadcast(String pkgName, String installerPkg, diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index 16bf0fe09b9e0..710de56051370 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -2731,6 +2731,12 @@ final class InstallPackageHelper { installerPackageName, null /*finishedReceiver*/, updateUserIds, instantUserIds, null /* broadcastAllowList */, null); } + // Send to PermissionController for all update users, even if it may not be running + // for some users + mPm.sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, + extras, 0 /*flags*/, + mPm.mRequiredPermissionControllerPackage, null /*finishedReceiver*/, + updateUserIds, instantUserIds, null /* broadcastAllowList */, null); // Notify required verifier(s) that are not the installer of record for the package. for (String verifierPackageName : mPm.mRequiredVerifierPackages) { if (verifierPackageName != null && !verifierPackageName.equals(