From 947d63d1158d4727d382a952c8a677859ba1884c Mon Sep 17 00:00:00 2001 From: Patrick Baumann Date: Tue, 16 Jun 2020 13:50:58 -0700 Subject: [PATCH] Early exit when target app ID < FIRST_APP_UID This change ensures that we also grant visibility to the framework and other settings that are outside of the APPLICATION_UID space. Fixes: 159152185 Test: atest com.android.server.pm.UserManagerTest#testAddManagedProfile_withDisallowedPackages Change-Id: I00c8390dfa748f90c538a57243b472610886be7b --- services/core/java/com/android/server/pm/AppsFilter.java | 1 + .../src/com/android/server/pm/AppsFilterTest.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/AppsFilter.java b/services/core/java/com/android/server/pm/AppsFilter.java index cf02932404f85..50560ed346ef6 100644 --- a/services/core/java/com/android/server/pm/AppsFilter.java +++ b/services/core/java/com/android/server/pm/AppsFilter.java @@ -845,6 +845,7 @@ public class AppsFilter { try { int callingAppId = UserHandle.getAppId(callingUid); if (callingAppId < Process.FIRST_APPLICATION_UID + || targetPkgSetting.appId < Process.FIRST_APPLICATION_UID || callingAppId == targetPkgSetting.appId) { return false; } diff --git a/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java b/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java index eb6b043dbfd9c..26230949cda64 100644 --- a/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java @@ -806,7 +806,8 @@ public class AppsFilterTest { final SparseArray systemFilter = appsFilter.getVisibilityWhitelist(system, USER_ARRAY, mExisting); - assertThat(toList(systemFilter.get(SYSTEM_USER)), empty()); + assertThat(toList(systemFilter.get(SYSTEM_USER)), + contains(seesNothingAppId, hasProviderAppId, queriesProviderAppId)); final SparseArray seesNothingFilter = appsFilter.getVisibilityWhitelist(seesNothing, USER_ARRAY, mExisting);