summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakirilov <akirilov@google.com>2018-10-30 15:33:18 -0700
committerandroid-build-merger <android-build-merger@google.com>2018-10-30 15:33:18 -0700
commit9cf12286bd889fa9c915dc97205b4f0425b93182 (patch)
tree8b646d9141cf3f4a8cd22cf7eb909b509fed58f5
parent605da689f5c34681365197ed7c74f93fa592ddeb (diff)
parent33b64b3ad2b814d7920d56d95ffcbfb16f5d384e (diff)
downloadandroid_packages_apps_PackageInstaller-9cf12286bd889fa9c915dc97205b4f0425b93182.tar.gz
android_packages_apps_PackageInstaller-9cf12286bd889fa9c915dc97205b4f0425b93182.tar.bz2
android_packages_apps_PackageInstaller-9cf12286bd889fa9c915dc97205b4f0425b93182.zip
RESTRICT AUTOMERGE: Trust session id only if started with ACTION_CONFIRM_INSTALL am: 10b0b0dcd0
am: 33b64b3ad2 Change-Id: Ic6a95812b32e6e8d6fbde352ab3dbdb797d4b272
-rw-r--r--src/com/android/packageinstaller/InstallStart.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/com/android/packageinstaller/InstallStart.java b/src/com/android/packageinstaller/InstallStart.java
index 12441b50..23bd7bb1 100644
--- a/src/com/android/packageinstaller/InstallStart.java
+++ b/src/com/android/packageinstaller/InstallStart.java
@@ -55,9 +55,14 @@ public class InstallStart extends Activity {
Intent intent = getIntent();
String callingPackage = getCallingPackage();
+ final boolean isSessionInstall =
+ PackageInstaller.ACTION_CONFIRM_PERMISSIONS.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);
@@ -100,7 +105,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_PERMISSIONS.equals(intent.getAction())) {
+ if (isSessionInstall) {
nextActivity.setClass(this, PackageInstallerActivity.class);
} else {
Uri packageUri = intent.getData();