summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dianne Hackborn <hackbod@google.com> 2015-12-09 14:15:34 -0800
committer Dianne Hackborn <hackbod@google.com> 2015-12-09 14:15:34 -0800
commit76e800928f46337a1b365b21bf752a44ffd1954d (patch)
tree54a9dfcdf6c2f13c0534ab3efc7cf397f2ad02eb
parent27cf982641e5e84669565634bbb45940f6b1209a (diff)
Fix issue #26102692: Unable to create secondary user...
...device restarts while adding account or password in SUW Change-Id: Ibcacb034720133359509b1be1b289abe68be44b4
-rw-r--r--services/core/java/com/android/server/am/BroadcastQueue.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
index 39e25ee482f9..1bab7b99ec62 100644
--- a/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -1075,9 +1075,18 @@ public final class BroadcastQueue {
}
}
+ // This is safe to do even if we are skipping the broadcast, and we need
+ // this information now to evaluate whether it is going to be allowed to run.
+ final int receiverUid = info.activityInfo.applicationInfo.uid;
+ // If it's a singleton, it needs to be the same app or a special app
+ if (r.callingUid != Process.SYSTEM_UID && isSingleton
+ && mService.isValidSingletonCall(r.callingUid, receiverUid)) {
+ info.activityInfo = mService.getActivityInfoForUser(info.activityInfo, 0);
+ }
String targetProcess = info.activityInfo.processName;
ProcessRecord app = mService.getProcessRecordLocked(targetProcess,
info.activityInfo.applicationInfo.uid, false);
+
if (!skip) {
final int allowed = mService.checkAllowBackgroundLocked(
info.activityInfo.applicationInfo.uid, info.activityInfo.packageName, -1);
@@ -1118,12 +1127,6 @@ public final class BroadcastQueue {
r.state = BroadcastRecord.APP_RECEIVE;
r.curComponent = component;
- final int receiverUid = info.activityInfo.applicationInfo.uid;
- // If it's a singleton, it needs to be the same app or a special app
- if (r.callingUid != Process.SYSTEM_UID && isSingleton
- && mService.isValidSingletonCall(r.callingUid, receiverUid)) {
- info.activityInfo = mService.getActivityInfoForUser(info.activityInfo, 0);
- }
r.curReceiver = info.activityInfo;
if (DEBUG_MU && r.callingUid > UserHandle.PER_USER_RANGE) {
Slog.v(TAG_MU, "Updated broadcast record activity info for secondary user, "