diff options
author | akirilov <akirilov@google.com> | 2018-10-30 15:33:18 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-10-30 15:33:18 -0700 |
commit | 9cf12286bd889fa9c915dc97205b4f0425b93182 (patch) | |
tree | 8b646d9141cf3f4a8cd22cf7eb909b509fed58f5 | |
parent | 605da689f5c34681365197ed7c74f93fa592ddeb (diff) | |
parent | 33b64b3ad2b814d7920d56d95ffcbfb16f5d384e (diff) | |
download | android_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.java | 9 |
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(); |