Merge "Allow instant apps to send broadcasts to themselves" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-06-06 14:51:33 +00:00
committed by Android (Google) Code Review

View File

@@ -21035,9 +21035,15 @@ public class ActivityManagerService extends IActivityManager.Stub
} }
private List<ResolveInfo> collectReceiverComponents(Intent intent, String resolvedType, private List<ResolveInfo> collectReceiverComponents(Intent intent, String resolvedType,
int callingUid, int[] users) { int callingUid, boolean callerInstantApp, int[] users) {
// TODO: come back and remove this assumption to triage all broadcasts // TODO: come back and remove this assumption to triage all broadcasts
int pmFlags = STOCK_PM_FLAGS | MATCH_DEBUG_TRIAGED_MISSING; int pmFlags = STOCK_PM_FLAGS | MATCH_DEBUG_TRIAGED_MISSING;
// Instant apps should be able to send broadcasts to themselves, so we would
// match instant receivers and later the broadcast queue would enforce that
// the broadcast cannot be sent to a receiver outside the instant UID.
if (callerInstantApp) {
pmFlags |= PackageManager.MATCH_INSTANT;
}
List<ResolveInfo> receivers = null; List<ResolveInfo> receivers = null;
try { try {
@@ -21666,7 +21672,8 @@ public class ActivityManagerService extends IActivityManager.Stub
// Need to resolve the intent to interested receivers... // Need to resolve the intent to interested receivers...
if ((intent.getFlags()&Intent.FLAG_RECEIVER_REGISTERED_ONLY) if ((intent.getFlags()&Intent.FLAG_RECEIVER_REGISTERED_ONLY)
== 0) { == 0) {
receivers = collectReceiverComponents(intent, resolvedType, callingUid, users); receivers = collectReceiverComponents(intent, resolvedType, callingUid,
callerInstantApp, users);
} }
if (intent.getComponent() == null) { if (intent.getComponent() == null) {
if (userId == UserHandle.USER_ALL && callingUid == SHELL_UID) { if (userId == UserHandle.USER_ALL && callingUid == SHELL_UID) {