From d15bb75af67df53f7335bdb7d7468f387848d6fe Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Tue, 13 Sep 2016 16:38:31 -0700 Subject: [PATCH] Add remote control of Instant Apps Bug: 31470039 Test: manual Change-Id: I82eb47f4d24fb88d0f264eca1176aec55364867c --- core/java/android/provider/Settings.java | 10 ++++++++++ .../com/android/server/pm/PackageManagerService.java | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 79f11513e7989..4d2c581fe3291 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -8673,6 +8673,16 @@ public final class Settings { public static final String EPHEMERAL_COOKIE_MAX_SIZE_BYTES = "ephemeral_cookie_max_size_bytes"; + /** + * Toggle to enable/disable the entire ephemeral feature. By default, ephemeral is + * enabled. Set to zero to disable. + *

+ * Type: int (0 for false, 1 for true) + * + * @hide + */ + public static final String ENABLE_EPHEMERAL_FEATURE = "enable_ephemeral_feature"; + /** * A mask applied to the ephemeral hash to generate the hash prefix. *

diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 783db051f8de1..dfcddd2e211a2 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -109,6 +109,7 @@ import android.app.admin.SecurityLog; import android.app.backup.IBackupManager; import android.content.BroadcastReceiver; import android.content.ComponentName; +import android.content.ContentResolver; import android.content.Context; import android.content.IIntentReceiver; import android.content.Intent; @@ -4807,7 +4808,12 @@ public class PackageManagerService extends IPackageManager.Stub { if (!mSystemReady) { return true; } - return Secure.getInt(mContext.getContentResolver(), Secure.WEB_ACTION_ENABLED, 1) == 0; + // we can't get a content resolver until the system is ready; these checks must happen last + final ContentResolver resolver = mContext.getContentResolver(); + if (Global.getInt(resolver, Global.ENABLE_EPHEMERAL_FEATURE, 1) == 0) { + return true; + } + return Secure.getInt(resolver, Secure.WEB_ACTION_ENABLED, 1) == 0; } private boolean isEphemeralAllowed(