From db8767f1b910996816fbb003da65bbef65982a88 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Mon, 20 Mar 2023 21:06:48 +0000 Subject: [PATCH] Add package cache handling to PermissionService. Since it's also in PermissionManagerServiceImpl. The other corkPackageInfoCache() call in PermissionManagerServiceImpl.updateAllPermissions() is skipped because we are already properly batching the change notifications and there will only be one invalidation call. Bug: 263504888 Test: presubmit Change-Id: I03246bb359f72321dfa930a83c582572d4c6a00a --- .../permission/access/permission/PermissionService.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/permission/java/com/android/server/permission/access/permission/PermissionService.kt b/services/permission/java/com/android/server/permission/access/permission/PermissionService.kt index b58016ef0296d..84ced1f723219 100644 --- a/services/permission/java/com/android/server/permission/access/permission/PermissionService.kt +++ b/services/permission/java/com/android/server/permission/access/permission/PermissionService.kt @@ -142,6 +142,12 @@ class PermissionService( userManagerInternal = LocalServices.getService(UserManagerInternal::class.java) userManagerService = UserManagerService.getInstance() + // The package info cache is the cache for package and permission information. + // Disable the package info and package permission caches locally but leave the + // checkPermission cache active. + PackageManager.invalidatePackageInfoCache(); + PermissionManager.disablePackageNamePermissionCache(); + handlerThread = ServiceThread(LOG_TAG, Process.THREAD_PRIORITY_BACKGROUND, true) .apply { start() } handler = Handler(handlerThread.looper)