summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Songchun Fan <schfan@google.com> 2022-04-05 01:37:12 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-04-05 01:37:12 +0000
commitd3788b00dd5af1edf218262bf10a8a56d7f28282 (patch)
treef6e894b9b674950653885c0992cbb29e8ed3ece1
parent6655fdab6e795c6bc35f6ff9e2f7d1f0743f452e (diff)
parent2084cbb2c36b329743faa3a2d4dfa8887e832d47 (diff)
Merge "[pm] fix broadcast permission check for instant apps" into tm-dev am: 2084cbb2c3
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17259937 Change-Id: I155f02063f5c6d7ffb15b4ba6ca10d6a525f35db Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/pm/BroadcastHelper.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/pm/BroadcastHelper.java b/services/core/java/com/android/server/pm/BroadcastHelper.java
index bf1196d6b969..ed71f1eb5313 100644
--- a/services/core/java/com/android/server/pm/BroadcastHelper.java
+++ b/services/core/java/com/android/server/pm/BroadcastHelper.java
@@ -20,7 +20,6 @@ import static android.os.PowerExemptionManager.REASON_LOCKED_BOOT_COMPLETED;
import static android.os.PowerExemptionManager.TEMPORARY_ALLOW_LIST_TYPE_FOREGROUND_SERVICE_ALLOWED;
import static com.android.server.pm.PackageManagerService.DEBUG_INSTALL;
-import static com.android.server.pm.PackageManagerService.EMPTY_INT_ARRAY;
import static com.android.server.pm.PackageManagerService.PACKAGE_SCHEME;
import static com.android.server.pm.PackageManagerService.PLATFORM_PACKAGE_NAME;
import static com.android.server.pm.PackageManagerService.TAG;
@@ -86,11 +85,14 @@ public final class BroadcastHelper {
} else {
resolvedUserIds = userIds;
}
- doSendBroadcast(action, pkg, extras, flags, targetPkg, finishedReceiver,
- resolvedUserIds, false, broadcastAllowList, bOptions);
- if (instantUserIds != null && instantUserIds != EMPTY_INT_ARRAY) {
+
+ if (ArrayUtils.isEmpty(instantUserIds)) {
+ doSendBroadcast(action, pkg, extras, flags, targetPkg, finishedReceiver,
+ resolvedUserIds, false /* isInstantApp */, broadcastAllowList, bOptions);
+ } else {
+ // send restricted broadcasts for instant apps
doSendBroadcast(action, pkg, extras, flags, targetPkg, finishedReceiver,
- instantUserIds, true, null, bOptions);
+ instantUserIds, true /* isInstantApp */, null, bOptions);
}
} catch (RemoteException ex) {
}