From 5f95234c95b68c988ec9ef4307d4ba21464c71ae Mon Sep 17 00:00:00 2001 From: vidyalak Date: Mon, 19 Feb 2024 16:33:50 +0530 Subject: Disable following applications at runtime Disable following applications from installation at runtime for QSPA enabled targets 1- SystemUI 2- Launcher3QuickStepGo 3- PrintSpooler 4- StatementService 5- Calendar CRs-Fixed: 3736422 Change-Id: I72479ece16510d71b6107f8a5d6a12ed213a0f6c --- .../android/server/pm/InstallPackageHelper.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index f72e8ab353bc..7312b4282d74 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -248,6 +248,15 @@ final class InstallPackageHelper { */ final private HashMap mPackagesToBeDisabled = new HashMap<>(); + /** + * Tracks packages that need to be disabled for QSPA enabled taregts. + * List of packages path on the file system. + */ + final private List mPackagesPathToBeDisabledForQSPA = new ArrayList(); + final private boolean mQspaEnabled = SystemProperties.getBoolean( + "ro.vendor.config.qspa.apps", false); + + // TODO(b/198166813): remove PMS dependency InstallPackageHelper(PackageManagerService pm, AppDataHelper appDataHelper) { mPm = pm; @@ -265,6 +274,18 @@ final class InstallPackageHelper { mViewCompiler = pm.mInjector.getViewCompiler(); mSharedLibraries = pm.mInjector.getSharedLibrariesImpl(); mUpdateOwnershipHelper = pm.mInjector.getUpdateOwnershipHelper(); + + if (mQspaEnabled) { + mPackagesPathToBeDisabledForQSPA.add("/system_ext/priv-app/SystemUI"); + mPackagesPathToBeDisabledForQSPA.add("/system_ext/priv-app/Launcher3QuickStepGo"); + mPackagesPathToBeDisabledForQSPA.add("/system_ext/priv-app/Launcher3Go"); + mPackagesPathToBeDisabledForQSPA.add("/system/app/PrintSpooler"); + mPackagesPathToBeDisabledForQSPA.add("/system/priv-app/StatementService"); + mPackagesPathToBeDisabledForQSPA.add("/product/app/Calendar"); + } else { + mPackagesPathToBeDisabledForQSPA.add("/system_ext/app/HeadlessLauncher"); + } + } InstallPackageHelper(PackageManagerService pm) { @@ -3767,6 +3788,15 @@ final class InstallPackageHelper { cacher.cleanCachedResult(file); } + + if (mPackagesPathToBeDisabledForQSPA != null && + mPackagesPathToBeDisabledForQSPA.contains(file.toString())) { + // Ignore entries contained in {@link #mPackagesPathToBeDisabledForQSPA} + Slog.d(TAG, "QSPA is " + mQspaEnabled + " ignoring package for install : " + file); + continue; + } + + if (mPackagesToBeDisabled.values() != null && (mPackagesToBeDisabled.values().contains(file.toString()) || mPackagesToBeDisabled.values().stream().anyMatch(file.toString()::contains))) { -- cgit v1.2.3