diff options
author | 2015-12-09 14:15:34 -0800 | |
---|---|---|
committer | 2015-12-09 14:15:34 -0800 | |
commit | 76e800928f46337a1b365b21bf752a44ffd1954d (patch) | |
tree | 54a9dfcdf6c2f13c0534ab3efc7cf397f2ad02eb | |
parent | 27cf982641e5e84669565634bbb45940f6b1209a (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.java | 15 |
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, " |