From f42633bed302f4dda5aeb95fc0c3caeea7001718 Mon Sep 17 00:00:00 2001 From: JW Wang Date: Wed, 20 Oct 2021 08:54:30 +0000 Subject: [PATCH] Revert "Early detection of mis-configuration (1/n)" This reverts commit 04bdf998e42e9896ee823e84ab5d4293d298328e. Reason for revert: b/203627495 Change-Id: Iee3c3418bb4b42440751801a998fe4fd02bd9b77 --- .../android/server/pm/PackageInstallerSession.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 38059772cfd1a..020c23d902be9 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -2406,6 +2406,13 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { final VerificationParams verifyingSession = prepareForVerification(); if (isMultiPackage()) { final List childSessions = getChildSessions(); + // Spot check to reject a non-staged multi package install of APEXes and APKs. + if (!params.isStaged && containsApkSession() + && sessionContains(s -> s.isApexSession())) { + throw new PackageManagerException( + PackageManager.INSTALL_FAILED_SESSION_INVALID, + "Non-staged multi package install of APEX and APK packages is not supported"); + } List verifyingChildSessions = new ArrayList<>(childSessions.size()); boolean success = true; @@ -4165,12 +4172,6 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { + childSession.sessionId + " and session " + sessionId + " have inconsistent rollback settings"); } - boolean hasAPK = containsApkSession() || !childSession.isApexSession(); - boolean hasAPEX = sessionContains(s -> s.isApexSession()) || childSession.isApexSession(); - if (!params.isStaged && hasAPK && hasAPEX) { - throw new IllegalStateException("Mix of APK and APEX is not supported for " - + "non-staged multi-package session"); - } try { acquireTransactionLock();