Loading src/com/android/settings/security/MemtagHelper.java +6 −8 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.security; import android.os.SystemProperties; import android.text.TextUtils; import com.android.internal.os.Zygote; import com.android.settings.R; Loading @@ -25,18 +26,15 @@ import com.android.settings.core.BasePreferenceController; import java.util.Arrays; public class MemtagHelper { public static final String DEVICE_CONFIG_PROP = "persist.device_config.runtime_native_boot.bootloader_override"; public static boolean isForcedOff() { return "force_off" .equals( SystemProperties.get( "persist.device_config.memory_safety_native_boot.bootloader_override")); return TextUtils.equals("force_on", SystemProperties.get(DEVICE_CONFIG_PROP)); } public static boolean isForcedOn() { return "force_on" .equals( SystemProperties.get( "persist.device_config.memory_safety_native_boot.bootloader_override")); return TextUtils.equals("force_on", SystemProperties.get(DEVICE_CONFIG_PROP)); } public static boolean isChecked() { Loading tests/robotests/src/com/android/settings/security/MemtagHelperTest.java +11 −13 Original line number Diff line number Diff line Loading @@ -33,8 +33,6 @@ import org.robolectric.shadows.ShadowSystemProperties; public class MemtagHelperTest { private final String mMemtagProperty = "arm64.memtag.bootctl"; private final String mMemtagSupportedProperty = "ro.arm64.memtag.bootctl_settings_toggle"; private final String mDeviceConfigOverride = "persist.device_config.memory_safety_native_boot.bootloader_override"; @Test public void isChecked_empty_isFalse() { Loading Loading @@ -80,7 +78,7 @@ public class MemtagHelperTest { @Test public void getAvailabilityStatus_isForcedOff_isDISABLED_DEPENDENT_SETTING() { ShadowSystemProperties.override(mDeviceConfigOverride, "force_off"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off"); ShadowSystemProperties.override(mMemtagSupportedProperty, "true"); assertThat(MemtagHelper.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING); Loading @@ -88,7 +86,7 @@ public class MemtagHelperTest { @Test public void getAvailabilityStatus_isForcedOn_isDISABLED_DEPENDENT_SETTING() { ShadowSystemProperties.override(mDeviceConfigOverride, "force_on"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on"); ShadowSystemProperties.override(mMemtagSupportedProperty, "true"); assertThat(MemtagHelper.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING); Loading @@ -96,7 +94,7 @@ public class MemtagHelperTest { @Test public void getAvailabilityStatus_isUnsupported_isUNSUPPORTED_ON_DEVICE() { ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, ""); ShadowSystemProperties.override(mMemtagSupportedProperty, "false"); assertThat(MemtagHelper.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE); Loading Loading @@ -127,7 +125,7 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_memtagAndZygoteSupportsMemoryTagging_memtag_on() { ZygoteShadow.setSupportsMemoryTagging(true); ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, ""); ShadowSystemProperties.override(mMemtagProperty, "memtag"); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_on); } Loading @@ -136,7 +134,7 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_noMemtagAndZygoteSupportsMemoryTagging_memtag_off_pending() { ZygoteShadow.setSupportsMemoryTagging(true); ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, ""); ShadowSystemProperties.override(mMemtagProperty, ""); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_off_pending); } Loading @@ -145,7 +143,7 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_noMemtagAndNoZygoteSupportsMemoryTagging_memtag_off() { ZygoteShadow.setSupportsMemoryTagging(false); ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, ""); ShadowSystemProperties.override(mMemtagProperty, ""); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_off); } Loading @@ -154,7 +152,7 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_memtagAndNoZygoteSupportsMemoryTagging_memtag_on_pending() { ZygoteShadow.setSupportsMemoryTagging(false); ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, ""); ShadowSystemProperties.override(mMemtagProperty, "memtag"); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_on_pending); } Loading @@ -163,7 +161,7 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_forceOffOverride_memtag_force_off() { ZygoteShadow.setSupportsMemoryTagging(false); ShadowSystemProperties.override(mDeviceConfigOverride, "force_off"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off"); ShadowSystemProperties.override(mMemtagProperty, "memtag"); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_off); } Loading @@ -172,20 +170,20 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_forceOffOverride_memtag_force_on() { ZygoteShadow.setSupportsMemoryTagging(false); ShadowSystemProperties.override(mDeviceConfigOverride, "force_on"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on"); ShadowSystemProperties.override(mMemtagProperty, "memtag"); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_on); } @Test public void isForcedOn_forceOnOverride_isTrue() { ShadowSystemProperties.override(mDeviceConfigOverride, "force_on"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on"); assertThat(MemtagHelper.isForcedOn()).isTrue(); } @Test public void isForcedOff_forceOffOverride_isTrue() { ShadowSystemProperties.override(mDeviceConfigOverride, "force_off"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off"); assertThat(MemtagHelper.isForcedOff()).isTrue(); } } Loading
src/com/android/settings/security/MemtagHelper.java +6 −8 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.security; import android.os.SystemProperties; import android.text.TextUtils; import com.android.internal.os.Zygote; import com.android.settings.R; Loading @@ -25,18 +26,15 @@ import com.android.settings.core.BasePreferenceController; import java.util.Arrays; public class MemtagHelper { public static final String DEVICE_CONFIG_PROP = "persist.device_config.runtime_native_boot.bootloader_override"; public static boolean isForcedOff() { return "force_off" .equals( SystemProperties.get( "persist.device_config.memory_safety_native_boot.bootloader_override")); return TextUtils.equals("force_on", SystemProperties.get(DEVICE_CONFIG_PROP)); } public static boolean isForcedOn() { return "force_on" .equals( SystemProperties.get( "persist.device_config.memory_safety_native_boot.bootloader_override")); return TextUtils.equals("force_on", SystemProperties.get(DEVICE_CONFIG_PROP)); } public static boolean isChecked() { Loading
tests/robotests/src/com/android/settings/security/MemtagHelperTest.java +11 −13 Original line number Diff line number Diff line Loading @@ -33,8 +33,6 @@ import org.robolectric.shadows.ShadowSystemProperties; public class MemtagHelperTest { private final String mMemtagProperty = "arm64.memtag.bootctl"; private final String mMemtagSupportedProperty = "ro.arm64.memtag.bootctl_settings_toggle"; private final String mDeviceConfigOverride = "persist.device_config.memory_safety_native_boot.bootloader_override"; @Test public void isChecked_empty_isFalse() { Loading Loading @@ -80,7 +78,7 @@ public class MemtagHelperTest { @Test public void getAvailabilityStatus_isForcedOff_isDISABLED_DEPENDENT_SETTING() { ShadowSystemProperties.override(mDeviceConfigOverride, "force_off"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off"); ShadowSystemProperties.override(mMemtagSupportedProperty, "true"); assertThat(MemtagHelper.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING); Loading @@ -88,7 +86,7 @@ public class MemtagHelperTest { @Test public void getAvailabilityStatus_isForcedOn_isDISABLED_DEPENDENT_SETTING() { ShadowSystemProperties.override(mDeviceConfigOverride, "force_on"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on"); ShadowSystemProperties.override(mMemtagSupportedProperty, "true"); assertThat(MemtagHelper.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING); Loading @@ -96,7 +94,7 @@ public class MemtagHelperTest { @Test public void getAvailabilityStatus_isUnsupported_isUNSUPPORTED_ON_DEVICE() { ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, ""); ShadowSystemProperties.override(mMemtagSupportedProperty, "false"); assertThat(MemtagHelper.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE); Loading Loading @@ -127,7 +125,7 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_memtagAndZygoteSupportsMemoryTagging_memtag_on() { ZygoteShadow.setSupportsMemoryTagging(true); ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, ""); ShadowSystemProperties.override(mMemtagProperty, "memtag"); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_on); } Loading @@ -136,7 +134,7 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_noMemtagAndZygoteSupportsMemoryTagging_memtag_off_pending() { ZygoteShadow.setSupportsMemoryTagging(true); ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, ""); ShadowSystemProperties.override(mMemtagProperty, ""); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_off_pending); } Loading @@ -145,7 +143,7 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_noMemtagAndNoZygoteSupportsMemoryTagging_memtag_off() { ZygoteShadow.setSupportsMemoryTagging(false); ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, ""); ShadowSystemProperties.override(mMemtagProperty, ""); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_off); } Loading @@ -154,7 +152,7 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_memtagAndNoZygoteSupportsMemoryTagging_memtag_on_pending() { ZygoteShadow.setSupportsMemoryTagging(false); ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, ""); ShadowSystemProperties.override(mMemtagProperty, "memtag"); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_on_pending); } Loading @@ -163,7 +161,7 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_forceOffOverride_memtag_force_off() { ZygoteShadow.setSupportsMemoryTagging(false); ShadowSystemProperties.override(mDeviceConfigOverride, "force_off"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off"); ShadowSystemProperties.override(mMemtagProperty, "memtag"); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_off); } Loading @@ -172,20 +170,20 @@ public class MemtagHelperTest { @Config(shadows = {ZygoteShadow.class}) public void getSummary_forceOffOverride_memtag_force_on() { ZygoteShadow.setSupportsMemoryTagging(false); ShadowSystemProperties.override(mDeviceConfigOverride, "force_on"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on"); ShadowSystemProperties.override(mMemtagProperty, "memtag"); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_on); } @Test public void isForcedOn_forceOnOverride_isTrue() { ShadowSystemProperties.override(mDeviceConfigOverride, "force_on"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on"); assertThat(MemtagHelper.isForcedOn()).isTrue(); } @Test public void isForcedOff_forceOffOverride_isTrue() { ShadowSystemProperties.override(mDeviceConfigOverride, "force_off"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off"); assertThat(MemtagHelper.isForcedOff()).isTrue(); } }