Loading services/core/java/com/android/server/pm/AppsFilterImpl.java +3 −2 Original line number Diff line number Diff line Loading @@ -176,8 +176,9 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable, private void onChanged() { // App visibility may have changed, which means that earlier fetches from these caches may // be invalid. PackageManager.invalidatePackageInfoCache(); ApplicationPackageManager.invalidateGetPackagesForUidCache(); final int invalidationReason = PackageMetrics.INVALIDATION_REASON_APP_FILTER_CHANGE; PackageManagerService.invalidatePackageInfoCache(invalidationReason); PackageManagerService.invalidateGetPackagesForUidCache(invalidationReason); ApplicationPackageManager.invalidateQueryIntentActivitiesCache(); dispatchChange(this); } Loading services/core/java/com/android/server/pm/DeletePackageHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ import android.annotation.Nullable; import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.app.ApplicationExitInfo; import android.app.ApplicationPackageManager; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.Flags; Loading Loading @@ -265,7 +264,8 @@ final class DeletePackageHelper { mPm.updateInstantAppInstallerLocked(packageName); } } ApplicationPackageManager.invalidateGetPackagesForUidCache(); PackageManagerService.invalidateGetPackagesForUidCache( PackageMetrics.INVALIDATION_REASON_DELETE_PACKAGE); } if (res) { Loading services/core/java/com/android/server/pm/InstallPackageHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -104,7 +104,6 @@ import android.annotation.UserIdInt; import android.apex.ApexInfo; import android.app.AppOpsManager; import android.app.ApplicationExitInfo; import android.app.ApplicationPackageManager; import android.app.BroadcastOptions; import android.app.admin.DevicePolicyManagerInternal; import android.app.backup.IBackupManager; Loading Loading @@ -2536,7 +2535,8 @@ final class InstallPackageHelper { } installRequest.onCommitFinished(); } ApplicationPackageManager.invalidateGetPackagesForUidCache(); PackageManagerService.invalidateGetPackagesForUidCache( PackageMetrics.INVALIDATION_REASON_INSTALL_PACKAGE); } @GuardedBy("mPm.mLock") Loading services/core/java/com/android/server/pm/InstallingSession.java +2 −1 Original line number Diff line number Diff line Loading @@ -626,7 +626,8 @@ class InstallingSession { } catch (PackageManagerException e) { request.setError("APEX installation failed", e); } PackageManagerService.invalidatePackageInfoCache(); PackageManagerService.invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_INSTALL_APEX_PACKAGE); ApplicationPackageManager.invalidateQueryIntentActivitiesCache(); mPm.notifyInstallObserver(request); } Loading services/core/java/com/android/server/pm/PackageManagerService.java +27 −8 Original line number Diff line number Diff line Loading @@ -768,7 +768,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService // disable all package caches that shouldn't apply within system server PackageManager.disableApplicationInfoCache(); PackageManager.disablePackageInfoCache(); ApplicationPackageManager.invalidateGetPackagesForUidCache(); invalidateGetPackagesForUidCache( PackageMetrics.INVALIDATION_REASON_DISABLE_PACKAGE_CACHES); ApplicationPackageManager.disableGetPackagesForUidCache(); ApplicationPackageManager.invalidateHasSystemFeatureCache(); PackageManager.corkPackageInfoCache(); Loading Loading @@ -1050,9 +1051,21 @@ public class PackageManagerService implements PackageSender, TestUtilityService * Invalidate the package info cache, which includes updating the cached computer. * @hide */ public static void invalidatePackageInfoCache() { public static void invalidatePackageInfoCache(int invalidationReason) { PackageManager.invalidatePackageInfoCache(); onChanged(); PackageMetrics.reportCacheInvalidationEvent( PackageMetrics.CACHE_TYPE_APPLICATION_AND_PACKAGE_INFO, invalidationReason); } /** * Invalidate the get packages for UID cache, which includes updating the cached computer. * @hide */ public static void invalidateGetPackagesForUidCache(int invalidationReason) { ApplicationPackageManager.invalidateGetPackagesForUidCache(); PackageMetrics.reportCacheInvalidationEvent( PackageMetrics.CACHE_TYPE_GET_PACKAGES_FOR_UID, invalidationReason); } private final Watcher mWatcher = new Watcher() { Loading Loading @@ -1581,7 +1594,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService // We normally invalidate when we write settings, but in cases where we delay and // coalesce settings writes, this strategy would have us invalidate the cache too late. // Invalidating on schedule addresses this problem. invalidatePackageInfoCache(); invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_SCHEDULE_WRITE_SETTINGS); ApplicationPackageManager.invalidateQueryIntentActivitiesCache(); if (!mHandler.hasMessages(WRITE_SETTINGS)) { mHandler.sendEmptyMessageDelayed(WRITE_SETTINGS, WRITE_SETTINGS_DELAY); Loading @@ -1589,7 +1603,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService } void scheduleWritePackageListLocked(int userId) { invalidatePackageInfoCache(); invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_SCHEDULE_WRITE_PACKAGE_LIST); ApplicationPackageManager.invalidateQueryIntentActivitiesCache(); if (!mHandler.hasMessages(WRITE_PACKAGE_LIST)) { Message msg = mHandler.obtainMessage(WRITE_PACKAGE_LIST); Loading @@ -1604,7 +1619,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService } void scheduleWritePackageRestrictions(@CanBeALL @UserIdInt int userId) { invalidatePackageInfoCache(); invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_SCHEDULE_WRITE_PACKAGE_RESTRICTIONS); if (userId == USER_ALL) { synchronized (mDirtyUsers) { for (int aUserId : mUserManager.getUserIds()) { Loading Loading @@ -1985,7 +2001,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService mPackageMonitorCallbackHelper = testParams.packageMonitorCallbackHelper; registerObservers(false); invalidatePackageInfoCache(); invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_PACKAGE_MANAGER_SERVICE_INIT); } public PackageManagerService(PackageManagerServiceInjector injector, boolean factoryTest, Loading Loading @@ -7551,7 +7568,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService } } invalidatePackageInfoCache(); invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_ENABLE_OVERLAY_PACKAGES); } private boolean canSetOverlayPaths(OverlayPaths origPaths, OverlayPaths newPaths) { Loading Loading @@ -7738,7 +7756,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService } if (accessGranted) { ApplicationPackageManager.invalidateGetPackagesForUidCache(); invalidateGetPackagesForUidCache( PackageMetrics.INVALIDATION_REASON_GRANT_IMPLICIT_ACCESS); } } Loading Loading
services/core/java/com/android/server/pm/AppsFilterImpl.java +3 −2 Original line number Diff line number Diff line Loading @@ -176,8 +176,9 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable, private void onChanged() { // App visibility may have changed, which means that earlier fetches from these caches may // be invalid. PackageManager.invalidatePackageInfoCache(); ApplicationPackageManager.invalidateGetPackagesForUidCache(); final int invalidationReason = PackageMetrics.INVALIDATION_REASON_APP_FILTER_CHANGE; PackageManagerService.invalidatePackageInfoCache(invalidationReason); PackageManagerService.invalidateGetPackagesForUidCache(invalidationReason); ApplicationPackageManager.invalidateQueryIntentActivitiesCache(); dispatchChange(this); } Loading
services/core/java/com/android/server/pm/DeletePackageHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ import android.annotation.Nullable; import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.app.ApplicationExitInfo; import android.app.ApplicationPackageManager; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.Flags; Loading Loading @@ -265,7 +264,8 @@ final class DeletePackageHelper { mPm.updateInstantAppInstallerLocked(packageName); } } ApplicationPackageManager.invalidateGetPackagesForUidCache(); PackageManagerService.invalidateGetPackagesForUidCache( PackageMetrics.INVALIDATION_REASON_DELETE_PACKAGE); } if (res) { Loading
services/core/java/com/android/server/pm/InstallPackageHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -104,7 +104,6 @@ import android.annotation.UserIdInt; import android.apex.ApexInfo; import android.app.AppOpsManager; import android.app.ApplicationExitInfo; import android.app.ApplicationPackageManager; import android.app.BroadcastOptions; import android.app.admin.DevicePolicyManagerInternal; import android.app.backup.IBackupManager; Loading Loading @@ -2536,7 +2535,8 @@ final class InstallPackageHelper { } installRequest.onCommitFinished(); } ApplicationPackageManager.invalidateGetPackagesForUidCache(); PackageManagerService.invalidateGetPackagesForUidCache( PackageMetrics.INVALIDATION_REASON_INSTALL_PACKAGE); } @GuardedBy("mPm.mLock") Loading
services/core/java/com/android/server/pm/InstallingSession.java +2 −1 Original line number Diff line number Diff line Loading @@ -626,7 +626,8 @@ class InstallingSession { } catch (PackageManagerException e) { request.setError("APEX installation failed", e); } PackageManagerService.invalidatePackageInfoCache(); PackageManagerService.invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_INSTALL_APEX_PACKAGE); ApplicationPackageManager.invalidateQueryIntentActivitiesCache(); mPm.notifyInstallObserver(request); } Loading
services/core/java/com/android/server/pm/PackageManagerService.java +27 −8 Original line number Diff line number Diff line Loading @@ -768,7 +768,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService // disable all package caches that shouldn't apply within system server PackageManager.disableApplicationInfoCache(); PackageManager.disablePackageInfoCache(); ApplicationPackageManager.invalidateGetPackagesForUidCache(); invalidateGetPackagesForUidCache( PackageMetrics.INVALIDATION_REASON_DISABLE_PACKAGE_CACHES); ApplicationPackageManager.disableGetPackagesForUidCache(); ApplicationPackageManager.invalidateHasSystemFeatureCache(); PackageManager.corkPackageInfoCache(); Loading Loading @@ -1050,9 +1051,21 @@ public class PackageManagerService implements PackageSender, TestUtilityService * Invalidate the package info cache, which includes updating the cached computer. * @hide */ public static void invalidatePackageInfoCache() { public static void invalidatePackageInfoCache(int invalidationReason) { PackageManager.invalidatePackageInfoCache(); onChanged(); PackageMetrics.reportCacheInvalidationEvent( PackageMetrics.CACHE_TYPE_APPLICATION_AND_PACKAGE_INFO, invalidationReason); } /** * Invalidate the get packages for UID cache, which includes updating the cached computer. * @hide */ public static void invalidateGetPackagesForUidCache(int invalidationReason) { ApplicationPackageManager.invalidateGetPackagesForUidCache(); PackageMetrics.reportCacheInvalidationEvent( PackageMetrics.CACHE_TYPE_GET_PACKAGES_FOR_UID, invalidationReason); } private final Watcher mWatcher = new Watcher() { Loading Loading @@ -1581,7 +1594,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService // We normally invalidate when we write settings, but in cases where we delay and // coalesce settings writes, this strategy would have us invalidate the cache too late. // Invalidating on schedule addresses this problem. invalidatePackageInfoCache(); invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_SCHEDULE_WRITE_SETTINGS); ApplicationPackageManager.invalidateQueryIntentActivitiesCache(); if (!mHandler.hasMessages(WRITE_SETTINGS)) { mHandler.sendEmptyMessageDelayed(WRITE_SETTINGS, WRITE_SETTINGS_DELAY); Loading @@ -1589,7 +1603,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService } void scheduleWritePackageListLocked(int userId) { invalidatePackageInfoCache(); invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_SCHEDULE_WRITE_PACKAGE_LIST); ApplicationPackageManager.invalidateQueryIntentActivitiesCache(); if (!mHandler.hasMessages(WRITE_PACKAGE_LIST)) { Message msg = mHandler.obtainMessage(WRITE_PACKAGE_LIST); Loading @@ -1604,7 +1619,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService } void scheduleWritePackageRestrictions(@CanBeALL @UserIdInt int userId) { invalidatePackageInfoCache(); invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_SCHEDULE_WRITE_PACKAGE_RESTRICTIONS); if (userId == USER_ALL) { synchronized (mDirtyUsers) { for (int aUserId : mUserManager.getUserIds()) { Loading Loading @@ -1985,7 +2001,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService mPackageMonitorCallbackHelper = testParams.packageMonitorCallbackHelper; registerObservers(false); invalidatePackageInfoCache(); invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_PACKAGE_MANAGER_SERVICE_INIT); } public PackageManagerService(PackageManagerServiceInjector injector, boolean factoryTest, Loading Loading @@ -7551,7 +7568,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService } } invalidatePackageInfoCache(); invalidatePackageInfoCache( PackageMetrics.INVALIDATION_REASON_ENABLE_OVERLAY_PACKAGES); } private boolean canSetOverlayPaths(OverlayPaths origPaths, OverlayPaths newPaths) { Loading Loading @@ -7738,7 +7756,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService } if (accessGranted) { ApplicationPackageManager.invalidateGetPackagesForUidCache(); invalidateGetPackagesForUidCache( PackageMetrics.INVALIDATION_REASON_GRANT_IMPLICIT_ACCESS); } } Loading