[pm] fix broadcast permission check for instant apps

ACCESS_INSTANT_APPS permission check was ignored by mistake.

BUG: 224547584
Test: manual (will try to reproduce on T)
Change-Id: Ibd0d3da78f0a32c85d2aad7de83cb91e1453b6a2
This commit is contained in:
Songchun Fan
2022-03-18 19:05:58 +00:00
parent 3057f82528
commit 173376df59

View File

@@ -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,
instantUserIds, true, null, bOptions);
resolvedUserIds, false /* isInstantApp */, broadcastAllowList, bOptions);
} else {
// send restricted broadcasts for instant apps
doSendBroadcast(action, pkg, extras, flags, targetPkg, finishedReceiver,
instantUserIds, true /* isInstantApp */, null, bOptions);
}
} catch (RemoteException ex) {
}