Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 33b64b3a authored by akirilov's avatar akirilov Committed by android-build-merger
Browse files

RESTRICT AUTOMERGE: Trust session id only if started with ACTION_CONFIRM_INSTALL

am: 10b0b0dc

Change-Id: I1d70d0d4d2ca28ffc18c54b2ef681c63de019b9b
parents af0d8f74 10b0b0dc
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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();