Merge "Only allow system apps to be forceQueryable" into rvc-qpr-dev am: d04eb377a8

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12481757

Change-Id: If617ac2788a047a1e12b68f29cffa480f3282d4d
This commit is contained in:
Patrick Baumann
2020-09-10 16:29:09 +00:00
committed by Automerger Merge Worker
2 changed files with 22 additions and 4 deletions

View File

@@ -547,9 +547,9 @@ public class AppsFilter {
final boolean newIsForceQueryable = final boolean newIsForceQueryable =
mForceQueryable.contains(newPkgSetting.appId) mForceQueryable.contains(newPkgSetting.appId)
/* shared user that is already force queryable */ /* shared user that is already force queryable */
|| newPkg.isForceQueryable() || newPkgSetting.forceQueryableOverride /* adb override */
|| newPkgSetting.forceQueryableOverride
|| (newPkgSetting.isSystem() && (mSystemAppsQueryable || (newPkgSetting.isSystem() && (mSystemAppsQueryable
|| newPkg.isForceQueryable()
|| ArrayUtils.contains(mForceQueryableByDevicePackageNames, || ArrayUtils.contains(mForceQueryableByDevicePackageNames,
newPkg.getPackageName()))); newPkg.getPackageName())));
if (newIsForceQueryable if (newIsForceQueryable

View File

@@ -365,7 +365,25 @@ public class AppsFilterTest {
} }
@Test @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,
setting -> setting.setPkgFlags(ApplicationInfo.FLAG_SYSTEM));
PackageSetting calling = simulateAddPackage(appsFilter,
pkg("com.some.other.package"), DUMMY_CALLING_APPID);
assertFalse(appsFilter.shouldFilterApplication(DUMMY_CALLING_APPID, calling, target,
SYSTEM_USER));
}
@Test
public void testForceQueryable_NonSystemFilters() throws Exception {
final AppsFilter appsFilter = final AppsFilter appsFilter =
new AppsFilter(mStateProvider, mFeatureConfigMock, new String[]{}, false, null); new AppsFilter(mStateProvider, mFeatureConfigMock, new String[]{}, false, null);
simulateAddBasicAndroid(appsFilter); simulateAddBasicAndroid(appsFilter);
@@ -376,7 +394,7 @@ public class AppsFilterTest {
PackageSetting calling = simulateAddPackage(appsFilter, PackageSetting calling = simulateAddPackage(appsFilter,
pkg("com.some.other.package"), DUMMY_CALLING_APPID); pkg("com.some.other.package"), DUMMY_CALLING_APPID);
assertFalse(appsFilter.shouldFilterApplication(DUMMY_CALLING_APPID, calling, target, assertTrue(appsFilter.shouldFilterApplication(DUMMY_CALLING_APPID, calling, target,
SYSTEM_USER)); SYSTEM_USER));
} }