From c88eb224fa9d2394af338cf0204c783c9f9b041e Mon Sep 17 00:00:00 2001 From: Arvind Kumar Date: Thu, 7 Apr 2022 08:56:17 +0530 Subject: Disable following application at runtime Disable following application from installation at runtime for QSPA enabled targets. 1- SystemUI 2- Launcher 3- PrintSpooler 4- StatementService 5- Calendar CRs-Fixed: 3206324 Change-Id: Ifd2c172f2582deb57fb131a9cdeb1eba11a29cf5 --- .../android/server/pm/PackageManagerService.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 70ecaa7a458c..3014b89651a1 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -895,6 +895,13 @@ public class PackageManagerService extends IPackageManager.Stub */ 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.config.qspa.apps", false); + /** * Tracks new system packages [received in an OTA] that we expect to * find updated user-installed versions. Keys are package name, values @@ -7400,6 +7407,12 @@ public class PackageManagerService extends IPackageManager.Stub readListOfPackagesToBeDisabled(); t.traceEnd(); + mPackagesPathToBeDisabledForQSPA.add("/system_ext/priv-app/SystemUI"); + mPackagesPathToBeDisabledForQSPA.add("/system_ext/priv-app/Launcher3QuickStep"); + mPackagesPathToBeDisabledForQSPA.add("/system/app/PrintSpooler"); + mPackagesPathToBeDisabledForQSPA.add("/system/priv-app/StatementService"); + mPackagesPathToBeDisabledForQSPA.add("/product/app/Calendar"); + // Create sub-components that provide services / data. Order here is important. t.traceBegin("createSubComponents"); @@ -12061,6 +12074,15 @@ public class PackageManagerService extends IPackageManager.Stub continue; } + if (mQspaEnabled) { + if (mPackagesPathToBeDisabledForQSPA != null && + mPackagesPathToBeDisabledForQSPA.contains(file.toString())) { + // Ignore entries contained in {@link #mPackagesPathToBeDisabledForQSPA} + Slog.d(TAG, "QSPA enabled ignoring package for install : " + file); + continue; + } + } + if (mPackagesToBeDisabled.values() != null && mPackagesToBeDisabled.values().contains(file.toString())) { // Ignore entries contained in {@link #mPackagesToBeDisabled} -- cgit v1.2.3