diff options
author | 2021-05-19 01:58:08 +0000 | |
---|---|---|
committer | 2021-05-19 01:58:08 +0000 | |
commit | ce8a8e8d014c49e75c72c999ca44817219d89efc (patch) | |
tree | 99bbdc141bedb66a060f595b2dd5351f34486902 | |
parent | eea27600d3ed6678035b05da6b661e7f8799ef6f (diff) | |
parent | 9f81aba7cab766385b78327aff5ad56cedf15ed5 (diff) |
Merge "Fix LauncherApps package removed Callback failed on multi-users" into sc-dev
-rw-r--r-- | services/core/java/com/android/server/pm/LauncherAppsService.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java index 47d16295e6a7..de9add0d0b37 100644 --- a/services/core/java/com/android/server/pm/LauncherAppsService.java +++ b/services/core/java/com/android/server/pm/LauncherAppsService.java @@ -25,6 +25,7 @@ import static android.content.pm.LauncherApps.FLAG_CACHE_BUBBLE_SHORTCUTS; import static android.content.pm.LauncherApps.FLAG_CACHE_NOTIFICATION_SHORTCUTS; import static android.content.pm.LauncherApps.FLAG_CACHE_PEOPLE_TILE_SHORTCUTS; +import android.annotation.AppIdInt; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; @@ -1232,12 +1233,12 @@ public class LauncherAppsService extends SystemService { cookie.user.getIdentifier()); } - /** Returns whether or not the given UID is in allow list */ - private static boolean isCallingUidAllowed(int[] allowList, int callingUid) { - if (allowList == null) { + /** Returns whether or not the given appId is in allow list */ + private static boolean isCallingAppIdAllowed(int[] appIdAllowList, @AppIdInt int appId) { + if (appIdAllowList == null) { return true; } - return Arrays.binarySearch(allowList, callingUid) > -1; + return Arrays.binarySearch(appIdAllowList, appId) > -1; } private String[] getFilteredPackageNames(String[] packageNames, BroadcastCookie cookie) { @@ -1432,7 +1433,7 @@ public class LauncherAppsService extends SystemService { // Handle onPackageRemoved. if (Intent.ACTION_PACKAGE_REMOVED_INTERNAL.equals(action)) { final String packageName = getPackageName(intent); - final int[] allowList = + final int[] appIdAllowList = intent.getIntArrayExtra(Intent.EXTRA_VISIBILITY_ALLOW_LIST); // If {@link #EXTRA_REPLACING} is true, that will be onPackageChanged case. if (packageName != null && !intent.getBooleanExtra( @@ -1448,7 +1449,8 @@ public class LauncherAppsService extends SystemService { if (!isEnabledProfileOf(cookie.user, user, "onPackageRemoved")) { continue; } - if (!isCallingUidAllowed(allowList, cookie.callingUid)) { + if (!isCallingAppIdAllowed(appIdAllowList, UserHandle.getAppId( + cookie.callingUid))) { continue; } try { |