diff --git a/src/com/android/settings/development/DevelopmentMemtagPreferenceController.java b/src/com/android/settings/development/DevelopmentMemtagPreferenceController.java index 751ccbae83d..c73c717a8cd 100644 --- a/src/com/android/settings/development/DevelopmentMemtagPreferenceController.java +++ b/src/com/android/settings/development/DevelopmentMemtagPreferenceController.java @@ -48,6 +48,9 @@ public class DevelopmentMemtagPreferenceController extends TogglePreferenceContr @Override public int getAvailabilityStatus() { + if (MemtagHelper.isForcedOff() || MemtagHelper.isForcedOn()) { + return BasePreferenceController.DISABLED_DEPENDENT_SETTING; + } return DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext) && SystemProperties.getBoolean("ro.arm64.memtag.bootctl_supported", false) ? BasePreferenceController.AVAILABLE diff --git a/src/com/android/settings/security/MemtagHelper.java b/src/com/android/settings/security/MemtagHelper.java index 9fd74f329ff..b04dcf9dd86 100644 --- a/src/com/android/settings/security/MemtagHelper.java +++ b/src/com/android/settings/security/MemtagHelper.java @@ -25,14 +25,14 @@ import com.android.settings.core.BasePreferenceController; import java.util.Arrays; public class MemtagHelper { - private static boolean isForcedOff() { + public static boolean isForcedOff() { return "force_off" .equals( SystemProperties.get( "persist.device_config.memory_safety_native_boot.bootloader_override")); } - private static boolean isForcedOn() { + public static boolean isForcedOn() { return "force_on" .equals( SystemProperties.get( diff --git a/tests/robotests/src/com/android/settings/security/MemtagHelperTest.java b/tests/robotests/src/com/android/settings/security/MemtagHelperTest.java index 3d38bbc86b6..4ef7de44ad7 100644 --- a/tests/robotests/src/com/android/settings/security/MemtagHelperTest.java +++ b/tests/robotests/src/com/android/settings/security/MemtagHelperTest.java @@ -176,4 +176,16 @@ public class MemtagHelperTest { ShadowSystemProperties.override(mMemtagProperty, "memtag"); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_on); } + + @Test + public void isForcedOn_forceOnOverride_isTrue() { + ShadowSystemProperties.override(mDeviceConfigOverride, "force_on"); + assertThat(MemtagHelper.isForcedOn()).isTrue(); + } + + @Test + public void isForcedOff_forceOffOverride_isTrue() { + ShadowSystemProperties.override(mDeviceConfigOverride, "force_off"); + assertThat(MemtagHelper.isForcedOff()).isTrue(); + } }