diff options
| author | 2020-09-30 22:13:11 +0000 | |
|---|---|---|
| committer | 2020-09-30 22:13:11 +0000 | |
| commit | c0e064f8482e8545c658e2f28bc8654898ef502c (patch) | |
| tree | 214105f30980c6081b876359ea8cbc850bee6640 | |
| parent | 4c42b5ee98c06b5ef218ac6c26aae58dd595f91f (diff) | |
| parent | 304d3b95c59a79a3cf00c9bcb7e79903e338f71d (diff) | |
Merge "Only allow system apps to be forceQueryable" am: 34108ebb9e am: 775db18508 am: 304d3b95c5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1443136
Change-Id: I8fcc111d329d1681224f49bfa3d8a3ffcde7548c
| -rw-r--r-- | services/core/java/com/android/server/pm/AppsFilter.java | 4 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java | 22 | 
2 files changed, 22 insertions, 4 deletions
| diff --git a/services/core/java/com/android/server/pm/AppsFilter.java b/services/core/java/com/android/server/pm/AppsFilter.java index c3c2e5e65103..069a00f03a1d 100644 --- a/services/core/java/com/android/server/pm/AppsFilter.java +++ b/services/core/java/com/android/server/pm/AppsFilter.java @@ -547,9 +547,9 @@ public class AppsFilter {          final boolean newIsForceQueryable =                  mForceQueryable.contains(newPkgSetting.appId)                          /* shared user that is already force queryable */ -                        || newPkg.isForceQueryable() -                        || newPkgSetting.forceQueryableOverride +                        || newPkgSetting.forceQueryableOverride /* adb override */                          || (newPkgSetting.isSystem() && (mSystemAppsQueryable +                        || newPkg.isForceQueryable()                          || ArrayUtils.contains(mForceQueryableByDevicePackageNames,                          newPkg.getPackageName())));          if (newIsForceQueryable 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 26230949cda6..37aedac8f28e 100644 --- a/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java @@ -365,14 +365,15 @@ public class AppsFilterTest {      }      @Test -    public void testForceQueryable_DoesntFilter() throws Exception { +    public void testForceQueryable_SystemDoesntFilter() throws Exception {          final AppsFilter appsFilter =                  new AppsFilter(mStateProvider, mFeatureConfigMock, new String[]{}, false, null);          simulateAddBasicAndroid(appsFilter);          appsFilter.onSystemReady();          PackageSetting target = simulateAddPackage(appsFilter, -                pkg("com.some.package").setForceQueryable(true), DUMMY_TARGET_APPID); +                pkg("com.some.package").setForceQueryable(true), DUMMY_TARGET_APPID, +                setting -> setting.setPkgFlags(ApplicationInfo.FLAG_SYSTEM));          PackageSetting calling = simulateAddPackage(appsFilter,                  pkg("com.some.other.package"), DUMMY_CALLING_APPID); @@ -380,6 +381,23 @@ public class AppsFilterTest {                  SYSTEM_USER));      } + +    @Test +    public void testForceQueryable_NonSystemFilters() throws Exception { +        final AppsFilter appsFilter = +                new AppsFilter(mStateProvider, mFeatureConfigMock, new String[]{}, false, null); +        simulateAddBasicAndroid(appsFilter); +        appsFilter.onSystemReady(); + +        PackageSetting target = simulateAddPackage(appsFilter, +                pkg("com.some.package").setForceQueryable(true), DUMMY_TARGET_APPID); +        PackageSetting calling = simulateAddPackage(appsFilter, +                pkg("com.some.other.package"), DUMMY_CALLING_APPID); + +        assertTrue(appsFilter.shouldFilterApplication(DUMMY_CALLING_APPID, calling, target, +                SYSTEM_USER)); +    } +      @Test      public void testForceQueryableByDevice_SystemCaller_DoesntFilter() throws Exception {          final AppsFilter appsFilter = |