summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Patrick Baumann <patb@google.com> 2020-02-18 22:02:24 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-02-18 22:02:24 +0000
commit6565f9636a66aa322bc16a453dd6dc3f70af6646 (patch)
treeda3d85052c535982835ae8e57d31ac436e7de7bc
parentc7d6a8c1aa221d3e0389ba0552abddae130f2c79 (diff)
parentf2fe03f588b97458b0a4d738669de052f06f52fb (diff)
Merge "Adds app enumeration feature"
-rw-r--r--core/java/android/content/pm/PackageManager.java12
-rw-r--r--core/java/com/android/server/SystemConfig.java4
-rw-r--r--services/core/java/com/android/server/pm/AppsFilter.java8
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);
}
}
});