Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d04eb377 authored by Patrick Baumann's avatar Patrick Baumann Committed by Android (Google) Code Review
Browse files

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

parents 4b53e60c 697c2f94
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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
+20 −2
Original line number Diff line number Diff line
@@ -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 =