From 091f514bf53a1b292a94198853f02730fc7d6198 Mon Sep 17 00:00:00 2001 From: Yo Chiang Date: Wed, 13 Jan 2021 12:31:54 +0800 Subject: [PATCH] Remove feature flag "settings_dynamic_system" The API surface of com.android.dynsystem is already protected by privileged permission android.permission.INSTALL_DYNAMIC_SYSTEM, which is only granted to system apps or priv apps. Thus the feature flag check here is redundant, because eligible callers of this API (system app) can also set the feature flag. Bug: 176795908 Test: Presubmit Test: Test DSU installation Intent Change-Id: Iedac8763372ef6f11754d3f272f70753fb3d4829 --- core/api/test-current.txt | 1 - core/java/android/util/FeatureFlagUtils.java | 2 -- .../android/dynsystem/BootCompletedReceiver.java | 9 +-------- .../com/android/dynsystem/VerificationActivity.java | 13 ------------- 4 files changed, 1 insertion(+), 24 deletions(-) diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 1422561e33470..c1eb36a5e3883 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -1939,7 +1939,6 @@ package android.util { method public static java.util.Map getAllFeatureFlags(); method public static boolean isEnabled(android.content.Context, String); method public static void setEnabled(android.content.Context, String, boolean); - field public static final String DYNAMIC_SYSTEM = "settings_dynamic_system"; field public static final String FFLAG_OVERRIDE_PREFIX = "sys.fflag.override."; field public static final String FFLAG_PREFIX = "sys.fflag."; field public static final String HEARING_AID_SETTINGS = "settings_bluetooth_hearing_aid"; diff --git a/core/java/android/util/FeatureFlagUtils.java b/core/java/android/util/FeatureFlagUtils.java index a5ca9ef5b887b..b22921233f055 100644 --- a/core/java/android/util/FeatureFlagUtils.java +++ b/core/java/android/util/FeatureFlagUtils.java @@ -40,7 +40,6 @@ public class FeatureFlagUtils { public static final String PERSIST_PREFIX = "persist." + FFLAG_OVERRIDE_PREFIX; public static final String HEARING_AID_SETTINGS = "settings_bluetooth_hearing_aid"; public static final String SCREENRECORD_LONG_PRESS = "settings_screenrecord_long_press"; - public static final String DYNAMIC_SYSTEM = "settings_dynamic_system"; public static final String SETTINGS_WIFITRACKER2 = "settings_wifitracker2"; /** @hide */ public static final String SETTINGS_DO_NOT_RESTORE_PRESERVED = @@ -54,7 +53,6 @@ public class FeatureFlagUtils { DEFAULT_FLAGS = new HashMap<>(); DEFAULT_FLAGS.put("settings_audio_switcher", "true"); DEFAULT_FLAGS.put("settings_systemui_theme", "true"); - DEFAULT_FLAGS.put(DYNAMIC_SYSTEM, "false"); DEFAULT_FLAGS.put(HEARING_AID_SETTINGS, "false"); DEFAULT_FLAGS.put(SCREENRECORD_LONG_PRESS, "false"); DEFAULT_FLAGS.put("settings_wifi_details_datausage_header", "false"); diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/BootCompletedReceiver.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/BootCompletedReceiver.java index 06c52942e671a..35bc490180e80 100644 --- a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/BootCompletedReceiver.java +++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/BootCompletedReceiver.java @@ -19,11 +19,9 @@ package com.android.dynsystem; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import android.os.SystemProperties; import android.os.UserHandle; import android.os.image.DynamicSystemClient; import android.os.image.DynamicSystemManager; -import android.util.FeatureFlagUtils; /** @@ -48,7 +46,7 @@ public class BootCompletedReceiver extends BroadcastReceiver { boolean isInUse = (dynSystem != null) && dynSystem.isInUse(); - if (!isInUse && !featureFlagEnabled()) { + if (!isInUse) { return; } @@ -58,9 +56,4 @@ public class BootCompletedReceiver extends BroadcastReceiver { startServiceIntent.setAction(DynamicSystemClient.ACTION_NOTIFY_IF_IN_USE); context.startServiceAsUser(startServiceIntent, UserHandle.SYSTEM); } - - private boolean featureFlagEnabled() { - return SystemProperties.getBoolean( - FeatureFlagUtils.PERSIST_PREFIX + FeatureFlagUtils.DYNAMIC_SYSTEM, false); - } } diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/VerificationActivity.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/VerificationActivity.java index 82ea7449bf6df..64e42cc595ec9 100644 --- a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/VerificationActivity.java +++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/VerificationActivity.java @@ -22,10 +22,8 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.os.SystemProperties; import android.os.UserHandle; import android.os.image.DynamicSystemClient; -import android.util.FeatureFlagUtils; import android.util.Log; /** @@ -46,12 +44,6 @@ public class VerificationActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (!featureFlagEnabled()) { - Log.w(TAG, FeatureFlagUtils.DYNAMIC_SYSTEM + " not enabled; activity aborted."); - finish(); - return; - } - KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); if (km != null) { @@ -101,11 +93,6 @@ public class VerificationActivity extends Activity { startServiceAsUser(intent, UserHandle.SYSTEM); } - private boolean featureFlagEnabled() { - return SystemProperties.getBoolean( - FeatureFlagUtils.PERSIST_PREFIX + FeatureFlagUtils.DYNAMIC_SYSTEM, false); - } - static boolean isVerified(String url) { if (url == null) return true; return sVerifiedUrl != null && sVerifiedUrl.equals(url);