diff options
author | Luca Stefani <luca.stefani.ge1@gmail.com> | 2019-01-08 10:01:14 +0100 |
---|---|---|
committer | Luca Stefani <luca.stefani.ge1@gmail.com> | 2019-01-08 10:01:14 +0100 |
commit | 3a5a40fdb448dea07acb1b636e4ec52d13deb37d (patch) | |
tree | f897a5091e7321385870d5c0c31876bd143af38a | |
parent | cf8bb04698c5fba93bb78170863cd65362af537f (diff) | |
parent | c5bf56c6fe23e2a076050427671346f34b595a89 (diff) | |
download | android_packages_apps_PackageInstaller-3a5a40fdb448dea07acb1b636e4ec52d13deb37d.tar.gz android_packages_apps_PackageInstaller-3a5a40fdb448dea07acb1b636e4ec52d13deb37d.tar.bz2 android_packages_apps_PackageInstaller-3a5a40fdb448dea07acb1b636e4ec52d13deb37d.zip |
Merge tag 'android-9.0.0_r30' into lineage-16.0-android-9.0.0_r30
Android 9.0.0 Release 30 (PQ1A.190105.004)
* tag 'android-9.0.0_r30':
RESTRICT AUTOMERGE: Trust session id only if started with ACTION_CONFIRM_INSTALL
Change-Id: Iaf5735cf4848640abbe3fca32de624f1e6aadcd7
-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 d06b6f55..42927373 100644 --- a/src/com/android/packageinstaller/InstallStart.java +++ b/src/com/android/packageinstaller/InstallStart.java @@ -58,9 +58,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); @@ -103,7 +108,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(); |