Merge "Move bootloader_override property" into udc-dev am: f58ea4671e

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22234234

Change-Id: Ia4d95a05268432874a40cfe4f905d28c269b30ec
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Florian Mayer
2023-04-07 20:54:07 +00:00
committed by Automerger Merge Worker
2 changed files with 17 additions and 21 deletions

View File

@@ -17,6 +17,7 @@
package com.android.settings.security; package com.android.settings.security;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.text.TextUtils;
import com.android.internal.os.Zygote; import com.android.internal.os.Zygote;
import com.android.settings.R; import com.android.settings.R;
@@ -25,18 +26,15 @@ import com.android.settings.core.BasePreferenceController;
import java.util.Arrays; import java.util.Arrays;
public class MemtagHelper { public class MemtagHelper {
public static final String DEVICE_CONFIG_PROP =
"persist.device_config.runtime_native_boot.bootloader_override";
public static boolean isForcedOff() { public static boolean isForcedOff() {
return "force_off" return TextUtils.equals("force_on", SystemProperties.get(DEVICE_CONFIG_PROP));
.equals(
SystemProperties.get(
"persist.device_config.memory_safety_native_boot.bootloader_override"));
} }
public static boolean isForcedOn() { public static boolean isForcedOn() {
return "force_on" return TextUtils.equals("force_on", SystemProperties.get(DEVICE_CONFIG_PROP));
.equals(
SystemProperties.get(
"persist.device_config.memory_safety_native_boot.bootloader_override"));
} }
public static boolean isChecked() { public static boolean isChecked() {

View File

@@ -33,8 +33,6 @@ import org.robolectric.shadows.ShadowSystemProperties;
public class MemtagHelperTest { public class MemtagHelperTest {
private final String mMemtagProperty = "arm64.memtag.bootctl"; private final String mMemtagProperty = "arm64.memtag.bootctl";
private final String mMemtagSupportedProperty = "ro.arm64.memtag.bootctl_settings_toggle"; private final String mMemtagSupportedProperty = "ro.arm64.memtag.bootctl_settings_toggle";
private final String mDeviceConfigOverride =
"persist.device_config.memory_safety_native_boot.bootloader_override";
@Test @Test
public void isChecked_empty_isFalse() { public void isChecked_empty_isFalse() {
@@ -80,7 +78,7 @@ public class MemtagHelperTest {
@Test @Test
public void getAvailabilityStatus_isForcedOff_isDISABLED_DEPENDENT_SETTING() { public void getAvailabilityStatus_isForcedOff_isDISABLED_DEPENDENT_SETTING() {
ShadowSystemProperties.override(mDeviceConfigOverride, "force_off"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off");
ShadowSystemProperties.override(mMemtagSupportedProperty, "true"); ShadowSystemProperties.override(mMemtagSupportedProperty, "true");
assertThat(MemtagHelper.getAvailabilityStatus()) assertThat(MemtagHelper.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING); .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
@@ -88,7 +86,7 @@ public class MemtagHelperTest {
@Test @Test
public void getAvailabilityStatus_isForcedOn_isDISABLED_DEPENDENT_SETTING() { public void getAvailabilityStatus_isForcedOn_isDISABLED_DEPENDENT_SETTING() {
ShadowSystemProperties.override(mDeviceConfigOverride, "force_on"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on");
ShadowSystemProperties.override(mMemtagSupportedProperty, "true"); ShadowSystemProperties.override(mMemtagSupportedProperty, "true");
assertThat(MemtagHelper.getAvailabilityStatus()) assertThat(MemtagHelper.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING); .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
@@ -96,7 +94,7 @@ public class MemtagHelperTest {
@Test @Test
public void getAvailabilityStatus_isUnsupported_isUNSUPPORTED_ON_DEVICE() { public void getAvailabilityStatus_isUnsupported_isUNSUPPORTED_ON_DEVICE() {
ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "");
ShadowSystemProperties.override(mMemtagSupportedProperty, "false"); ShadowSystemProperties.override(mMemtagSupportedProperty, "false");
assertThat(MemtagHelper.getAvailabilityStatus()) assertThat(MemtagHelper.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE); .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
@@ -127,7 +125,7 @@ public class MemtagHelperTest {
@Config(shadows = {ZygoteShadow.class}) @Config(shadows = {ZygoteShadow.class})
public void getSummary_memtagAndZygoteSupportsMemoryTagging_memtag_on() { public void getSummary_memtagAndZygoteSupportsMemoryTagging_memtag_on() {
ZygoteShadow.setSupportsMemoryTagging(true); ZygoteShadow.setSupportsMemoryTagging(true);
ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "");
ShadowSystemProperties.override(mMemtagProperty, "memtag"); ShadowSystemProperties.override(mMemtagProperty, "memtag");
assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_on); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_on);
} }
@@ -136,7 +134,7 @@ public class MemtagHelperTest {
@Config(shadows = {ZygoteShadow.class}) @Config(shadows = {ZygoteShadow.class})
public void getSummary_noMemtagAndZygoteSupportsMemoryTagging_memtag_off_pending() { public void getSummary_noMemtagAndZygoteSupportsMemoryTagging_memtag_off_pending() {
ZygoteShadow.setSupportsMemoryTagging(true); ZygoteShadow.setSupportsMemoryTagging(true);
ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "");
ShadowSystemProperties.override(mMemtagProperty, ""); ShadowSystemProperties.override(mMemtagProperty, "");
assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_off_pending); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_off_pending);
} }
@@ -145,7 +143,7 @@ public class MemtagHelperTest {
@Config(shadows = {ZygoteShadow.class}) @Config(shadows = {ZygoteShadow.class})
public void getSummary_noMemtagAndNoZygoteSupportsMemoryTagging_memtag_off() { public void getSummary_noMemtagAndNoZygoteSupportsMemoryTagging_memtag_off() {
ZygoteShadow.setSupportsMemoryTagging(false); ZygoteShadow.setSupportsMemoryTagging(false);
ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "");
ShadowSystemProperties.override(mMemtagProperty, ""); ShadowSystemProperties.override(mMemtagProperty, "");
assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_off); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_off);
} }
@@ -154,7 +152,7 @@ public class MemtagHelperTest {
@Config(shadows = {ZygoteShadow.class}) @Config(shadows = {ZygoteShadow.class})
public void getSummary_memtagAndNoZygoteSupportsMemoryTagging_memtag_on_pending() { public void getSummary_memtagAndNoZygoteSupportsMemoryTagging_memtag_on_pending() {
ZygoteShadow.setSupportsMemoryTagging(false); ZygoteShadow.setSupportsMemoryTagging(false);
ShadowSystemProperties.override(mDeviceConfigOverride, ""); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "");
ShadowSystemProperties.override(mMemtagProperty, "memtag"); ShadowSystemProperties.override(mMemtagProperty, "memtag");
assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_on_pending); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_on_pending);
} }
@@ -163,7 +161,7 @@ public class MemtagHelperTest {
@Config(shadows = {ZygoteShadow.class}) @Config(shadows = {ZygoteShadow.class})
public void getSummary_forceOffOverride_memtag_force_off() { public void getSummary_forceOffOverride_memtag_force_off() {
ZygoteShadow.setSupportsMemoryTagging(false); ZygoteShadow.setSupportsMemoryTagging(false);
ShadowSystemProperties.override(mDeviceConfigOverride, "force_off"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off");
ShadowSystemProperties.override(mMemtagProperty, "memtag"); ShadowSystemProperties.override(mMemtagProperty, "memtag");
assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_off); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_off);
} }
@@ -172,20 +170,20 @@ public class MemtagHelperTest {
@Config(shadows = {ZygoteShadow.class}) @Config(shadows = {ZygoteShadow.class})
public void getSummary_forceOffOverride_memtag_force_on() { public void getSummary_forceOffOverride_memtag_force_on() {
ZygoteShadow.setSupportsMemoryTagging(false); ZygoteShadow.setSupportsMemoryTagging(false);
ShadowSystemProperties.override(mDeviceConfigOverride, "force_on"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on");
ShadowSystemProperties.override(mMemtagProperty, "memtag"); ShadowSystemProperties.override(mMemtagProperty, "memtag");
assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_on); assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_on);
} }
@Test @Test
public void isForcedOn_forceOnOverride_isTrue() { public void isForcedOn_forceOnOverride_isTrue() {
ShadowSystemProperties.override(mDeviceConfigOverride, "force_on"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on");
assertThat(MemtagHelper.isForcedOn()).isTrue(); assertThat(MemtagHelper.isForcedOn()).isTrue();
} }
@Test @Test
public void isForcedOff_forceOffOverride_isTrue() { public void isForcedOff_forceOffOverride_isTrue() {
ShadowSystemProperties.override(mDeviceConfigOverride, "force_off"); ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off");
assertThat(MemtagHelper.isForcedOff()).isTrue(); assertThat(MemtagHelper.isForcedOff()).isTrue();
} }
} }