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
This commit is contained in:
Patrick Baumann
2020-06-16 13:50:58 -07:00
parent 7ecbe5b576
commit 947d63d115
2 changed files with 3 additions and 1 deletions

View File

@@ -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;
}

View File

@@ -806,7 +806,8 @@ public class AppsFilterTest {
final SparseArray<int[]> 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<int[]> seesNothingFilter =
appsFilter.getVisibilityWhitelist(seesNothing, USER_ARRAY, mExisting);