diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2018-10-16 19:46:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-10-16 19:46:21 +0000 |
commit | 94d3f53237b26957d0bb4f177ecb6093cb912bf5 (patch) | |
tree | efbbcaa1b35f157b91bb79b0676e2c1f1701cb37 /packages/PackageInstaller/src | |
parent | 30aac965973232d6b8557170b8f3ee06d5e493cb (diff) | |
parent | 21b131029746f2118036acc6f33ca8548218e671 (diff) |
Merge "Trust session id only if started with ACTION_CONFIRM_INSTALL"
Diffstat (limited to 'packages/PackageInstaller/src')
-rw-r--r-- | packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java b/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java index 8fed367f3773..f2de9ecd8f5d 100644 --- a/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java +++ b/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java @@ -54,9 +54,14 @@ public class InstallStart extends Activity { Intent intent = getIntent(); String callingPackage = getCallingPackage(); + final boolean isSessionInstall = + PackageInstaller.ACTION_CONFIRM_INSTALL.equals(intent.getAction()); + // If the activity was started via a PackageInstaller session, we retrieve the calling // package from that session - int sessionId = intent.getIntExtra(PackageInstaller.EXTRA_SESSION_ID, -1); + final int sessionId = (isSessionInstall + ? intent.getIntExtra(PackageInstaller.EXTRA_SESSION_ID, -1) + : -1); if (callingPackage == null && sessionId != -1) { PackageInstaller packageInstaller = getPackageManager().getPackageInstaller(); PackageInstaller.SessionInfo sessionInfo = packageInstaller.getSessionInfo(sessionId); @@ -99,7 +104,7 @@ public class InstallStart extends Activity { nextActivity.putExtra(PackageInstallerActivity.EXTRA_ORIGINAL_SOURCE_INFO, sourceInfo); nextActivity.putExtra(Intent.EXTRA_ORIGINATING_UID, originatingUid); - if (PackageInstaller.ACTION_CONFIRM_INSTALL.equals(intent.getAction())) { + if (isSessionInstall) { nextActivity.setClass(this, PackageInstallerActivity.class); } else { Uri packageUri = intent.getData(); |