From 562d16373bcc056097aff93c5c056d1f82f1e8f3 Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Thu, 3 May 2018 15:45:34 -0700 Subject: Allowed developers enabling test channels through adb By removing the 'force disabling test alert' flag check, this will allow devleopers to enable test channels through adb. Note this has no effect to the end user because when the 'force disabling test alert' flag is set, the toggle is hidden in the settings and it's off by default. The following command can enable test alerts through adb. adb root adb shell sed -i 's/enable_test_alerts\" value=\"false/enable_test_alerts\" value=\"true/' /data/user_de/0/com.android.cellbroadcastreceiver/shared_prefs/com.android.cellbroadcastreceiver_preferences.xml Test: Manual Bug: 77937838 Change-Id: I4070561240c8a8f4a94838beb387e78e07a85191 --- .../cellbroadcastreceiver/CellBroadcastAlertService.java | 8 -------- .../cellbroadcastreceiver/CellBroadcastConfigService.java | 9 +-------- .../android/cellbroadcastreceiver/CellBroadcastSettings.java | 10 +++++----- 3 files changed, 6 insertions(+), 21 deletions(-) diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java index 6323ad5e0..38750030b 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java @@ -364,11 +364,6 @@ public class CellBroadcastAlertService extends Service { boolean emergencyAlertEnabled = prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_ALERTS_MASTER_TOGGLE, true); - // Check if ETWS/CMAS test message is forced to disabled on the device. - boolean forceDisableEtwsCmasTest = - CellBroadcastSettings.isFeatureEnabled(this, - CarrierConfigManager.KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL, false); - boolean enableAreaUpdateInfoAlerts = Resources.getSystem().getBoolean( com.android.internal.R.bool.config_showAreaUpdateInfoSettings) && prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_AREA_UPDATE_INFO_ALERTS, @@ -376,7 +371,6 @@ public class CellBroadcastAlertService extends Service { if (message.isEtwsTestMessage()) { return emergencyAlertEnabled && - !forceDisableEtwsCmasTest && PreferenceManager.getDefaultSharedPreferences(this) .getBoolean(CellBroadcastSettings.KEY_ENABLE_TEST_ALERTS, false); } @@ -429,7 +423,6 @@ public class CellBroadcastAlertService extends Service { return false; } else if (range.mAlertType == AlertType.TEST) { return emergencyAlertEnabled - && !forceDisableEtwsCmasTest && PreferenceManager.getDefaultSharedPreferences(this) .getBoolean(CellBroadcastSettings.KEY_ENABLE_TEST_ALERTS, false); @@ -478,7 +471,6 @@ public class CellBroadcastAlertService extends Service { || CellBroadcastChannelManager.checkCellBroadcastChannelRange(subId, channel, R.array.operator_defined_alert_range_strings, this)) { return emergencyAlertEnabled - && !forceDisableEtwsCmasTest && PreferenceManager.getDefaultSharedPreferences(this) .getBoolean(CellBroadcastSettings.KEY_ENABLE_TEST_ALERTS, false); diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java index 35f290530..95d715451 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java @@ -23,7 +23,6 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.preference.PreferenceManager; -import android.telephony.CarrierConfigManager; import android.telephony.SmsManager; import android.telephony.SubscriptionManager; import android.util.Log; @@ -147,12 +146,7 @@ public class CellBroadcastConfigService extends IntentService { boolean enableCmasAmberAlerts = enableAlertsMasterToggle && prefs.getBoolean( CellBroadcastSettings.KEY_ENABLE_CMAS_AMBER_ALERTS, true); - // Check if ETWS/CMAS test message is forced disabled on the device. - boolean forceDisableEtwsCmasTest = - CellBroadcastSettings.isFeatureEnabled(this, - CarrierConfigManager.KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL, false); - - boolean enableTestAlerts = !forceDisableEtwsCmasTest && enableAlertsMasterToggle + boolean enableTestAlerts = enableAlertsMasterToggle && prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_TEST_ALERTS, false); boolean enableAreaUpdateInfoAlerts = Resources.getSystem().getBoolean( @@ -175,7 +169,6 @@ public class CellBroadcastConfigService extends IntentService { log("enableCmasExtremeAlerts = " + enableCmasExtremeAlerts); log("enableCmasSevereAlerts = " + enableCmasExtremeAlerts); log("enableCmasAmberAlerts = " + enableCmasAmberAlerts); - log("forceDisableEtwsCmasTest = " + forceDisableEtwsCmasTest); log("enableTestAlerts = " + enableTestAlerts); log("enableAreaUpdateInfoAlerts = " + enableAreaUpdateInfoAlerts); log("enablePublicSafetyMessagesChannelAlerts = " diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java index 25503cb97..803a4363b 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java @@ -273,9 +273,6 @@ public class CellBroadcastSettings extends Activity { initReminderIntervalList(); - boolean forceDisableEtwsCmasTest = CellBroadcastSettings.isFeatureEnabled(getContext(), - CarrierConfigManager.KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL, false); - boolean emergencyAlertOnOffOptionEnabled = isFeatureEnabled(getContext(), CarrierConfigManager.KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL, false); @@ -293,8 +290,11 @@ public class CellBroadcastSettings extends Activity { if (mMasterToggle != null) preferenceScreen.removePreference(mMasterToggle); } - // Show alert settings and ETWS categories for ETWS builds and developer mode. - if (forceDisableEtwsCmasTest || !enableDevSettings || !isTestAlertsAvailable()) { + boolean hideTestAlertMenu = CellBroadcastSettings.isFeatureEnabled(getContext(), + CarrierConfigManager.KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL, false); + + // Check if we want to hide the test alert toggle. + if (hideTestAlertMenu || !enableDevSettings || !isTestAlertsAvailable()) { if (mTestCheckBox != null) { mAlertCategory.removePreference(mTestCheckBox); } -- cgit v1.2.3