diff options
| author | 2016-07-22 02:49:11 +0000 | |
|---|---|---|
| committer | 2016-07-22 02:49:12 +0000 | |
| commit | 8c5dce56366518b5451cb3704edab59d5638d06d (patch) | |
| tree | 50c6fc3712a6509fea3c9a9159c2ba1de05dea6b | |
| parent | d50b5a9262cd546bc86ef0607b460c0b9585ee2d (diff) | |
| parent | d67b187dcc5bde21ef9c137529ade4d375f13d4c (diff) | |
Merge "Fix realCallingUid/Pid for startActivities()" into nyc-mr1-dev
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStarter.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java index 53289be4294a..525244699082 100644 --- a/services/core/java/com/android/server/am/ActivityStarter.java +++ b/services/core/java/com/android/server/am/ActivityStarter.java @@ -895,13 +895,15 @@ class ActivityStarter { throw new IllegalArgumentException("intents are length different than resolvedTypes"); } + final int realCallingPid = Binder.getCallingPid(); + final int realCallingUid = Binder.getCallingUid(); int callingPid; if (callingUid >= 0) { callingPid = -1; } else if (caller == null) { - callingPid = Binder.getCallingPid(); - callingUid = Binder.getCallingUid(); + callingPid = realCallingPid; + callingUid = realCallingUid; } else { callingPid = callingUid = -1; } @@ -942,7 +944,8 @@ class ActivityStarter { i == intents.length - 1 ? bOptions : null); int res = startActivityLocked(caller, intent, null /*ephemeralIntent*/, resolvedTypes[i], aInfo, null /*rInfo*/, null, null, resultTo, null, -1, - callingPid, callingUid, callingPackage, callingPid, callingUid, 0, + callingPid, callingUid, callingPackage, + realCallingPid, realCallingUid, 0, options, false, componentSpecified, outActivity, null, null); if (res < 0) { return res; |