diff options
author | 2020-02-18 22:02:24 +0000 | |
---|---|---|
committer | 2020-02-18 22:02:24 +0000 | |
commit | 6565f9636a66aa322bc16a453dd6dc3f70af6646 (patch) | |
tree | da3d85052c535982835ae8e57d31ac436e7de7bc | |
parent | c7d6a8c1aa221d3e0389ba0552abddae130f2c79 (diff) | |
parent | f2fe03f588b97458b0a4d738669de052f06f52fb (diff) |
Merge "Adds app enumeration feature"
-rw-r--r-- | core/java/android/content/pm/PackageManager.java | 12 | ||||
-rw-r--r-- | core/java/com/android/server/SystemConfig.java | 4 | ||||
-rw-r--r-- | services/core/java/com/android/server/pm/AppsFilter.java | 8 |
3 files changed, 20 insertions, 4 deletions
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 03ed373b91c1..5a56b0e50853 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -3023,6 +3023,18 @@ public abstract class PackageManager { 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. * diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java index 578c0cc23a74..3378c073eace 100644 --- a/core/java/com/android/server/SystemConfig.java +++ b/core/java/com/android/server/SystemConfig.java @@ -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); } diff --git a/services/core/java/com/android/server/pm/AppsFilter.java b/services/core/java/com/android/server/pm/AppsFilter.java index 0fb889c8da22..a1250cb8849f 100644 --- a/services/core/java/com/android/server/pm/AppsFilter.java +++ b/services/core/java/com/android/server/pm/AppsFilter.java @@ -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); } } }); |