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

Commit f2fe03f5 authored by Patrick Baumann's avatar Patrick Baumann
Browse files

Adds app enumeration feature

This change adds a new app enumeration feature to system features.

Test: atest AppEnumerationTests
Bug: 149399359
Change-Id: Iaf181a54819343d5531d14142a844acda02b10e5
parent 02e829dd
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -3022,6 +3022,18 @@ public abstract class PackageManager {
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TUNER = "android.hardware.tv.tuner";

    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: The device has
     * the necessary changes to support app enumeration.
     *
     * @hide
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_APP_ENUMERATION = "android.software.app_enumeration";

    /** @hide */
    public static final boolean APP_ENUMERATION_ENABLED_BY_DEFAULT = true;

    /**
     * Extra field name for the URI to a verification file. Passed to a package
     * verifier.
+4 −0
Original line number Diff line number Diff line
@@ -1160,6 +1160,10 @@ public class SystemConfig {
            addFeature(PackageManager.FEATURE_INCREMENTAL_DELIVERY, 0);
        }

        if (PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT) {
            addFeature(PackageManager.FEATURE_APP_ENUMERATION, 0);
        }

        for (String featureName : mUnavailableFeatures) {
            removeFeature(featureName);
        }
+4 −4
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ public class AppsFilter {
    // Logs all filtering instead of enforcing
    private static final boolean DEBUG_ALLOW_ALL = false;
    private static final boolean DEBUG_LOGGING = false;
    private static final boolean FEATURE_ENABLED_BY_DEFAULT = true;

    /**
     * This contains a list of app UIDs that are implicitly queryable because another app explicitly
@@ -135,7 +134,8 @@ public class AppsFilter {
    private static class FeatureConfigImpl implements FeatureConfig {
        private static final String FILTERING_ENABLED_NAME = "package_query_filtering_enabled";
        private final PackageManagerService.Injector mInjector;
        private volatile boolean mFeatureEnabled = FEATURE_ENABLED_BY_DEFAULT;
        private volatile boolean mFeatureEnabled =
                PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT;

        private FeatureConfigImpl(PackageManagerService.Injector injector) {
            mInjector = injector;
@@ -145,14 +145,14 @@ public class AppsFilter {
        public void onSystemReady() {
            mFeatureEnabled = DeviceConfig.getBoolean(
                    NAMESPACE_PACKAGE_MANAGER_SERVICE, FILTERING_ENABLED_NAME,
                    FEATURE_ENABLED_BY_DEFAULT);
                    PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT);
            DeviceConfig.addOnPropertiesChangedListener(
                    NAMESPACE_PACKAGE_MANAGER_SERVICE, FgThread.getExecutor(),
                    properties -> {
                        if (properties.getKeyset().contains(FILTERING_ENABLED_NAME)) {
                            synchronized (FeatureConfigImpl.this) {
                                mFeatureEnabled = properties.getBoolean(FILTERING_ENABLED_NAME,
                                        FEATURE_ENABLED_BY_DEFAULT);
                                        PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT);
                            }
                        }
                    });