diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 063c1f1cb597..38c4b13af2eb 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -14288,14 +14288,20 @@ public class ActivityManagerService extends IActivityManager.Stub return err; } - synchronized(this) { - r.requestedVrComponent = (enabled) ? packageName : null; + // Clear the binder calling uid since this path may call moveToTask(). + final long callingId = Binder.clearCallingIdentity(); + try { + synchronized(this) { + r.requestedVrComponent = (enabled) ? packageName : null; - // Update associated state if this activity is currently focused - if (r == mStackSupervisor.getResumedActivityLocked()) { - applyUpdateVrModeLocked(r); + // Update associated state if this activity is currently focused + if (r == mStackSupervisor.getResumedActivityLocked()) { + applyUpdateVrModeLocked(r); + } + return 0; } - return 0; + } finally { + Binder.restoreCallingIdentity(callingId); } } |