summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/AppsFilter.java1
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java3
2 files changed, 3 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/AppsFilter.java b/services/core/java/com/android/server/pm/AppsFilter.java
index 036db5356bee..cd6b98d759f1 100644
--- a/services/core/java/com/android/server/pm/AppsFilter.java
+++ b/services/core/java/com/android/server/pm/AppsFilter.java
@@ -861,6 +861,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 eb6b043dbfd9..26230949cda6 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<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);