From 0cec718059451a6d3e11879811580ee21a1cceb9 Mon Sep 17 00:00:00 2001 From: JW Wang Date: Wed, 6 Jul 2022 16:39:57 +0800 Subject: Don't add APEX keysets to KeySetManagerService There are orphaned keysets during boot because APEX package settings are not persisted. This will also improve boot time as we don't create keysets for APEX. Bug: 225756739 Test: presubmit Change-Id: I7b781b26b45d0e08be9a1e8750dbee2b2c5fdb6f --- .../core/java/com/android/server/pm/InstallPackageHelper.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index e2bf4a46653b..08f095288e18 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -473,9 +473,13 @@ final class InstallPackageHelper { mApexManager.registerApkInApex(pkg); } - // Add the package's KeySets to the global KeySetManagerService - KeySetManagerService ksms = mPm.mSettings.getKeySetManagerService(); - ksms.addScannedPackageLPw(pkg); + // Don't add keysets for APEX as their package settings are not persisted and will + // result in orphaned keysets. + if ((scanFlags & SCAN_AS_APEX) == 0) { + // Add the package's KeySets to the global KeySetManagerService + KeySetManagerService ksms = mPm.mSettings.getKeySetManagerService(); + ksms.addScannedPackageLPw(pkg); + } final Computer snapshot = mPm.snapshotComputer(); mPm.mComponentResolver.addAllComponents(pkg, chatty, mPm.mSetupWizardPackage, snapshot); -- cgit v1.2.3-59-g8ed1b