diff --git a/res/values/strings.xml b/res/values/strings.xml index b89fe3a271d..3c54d1abc65 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1789,6 +1789,8 @@ Kernel version Build number + + SELinux status Not available @@ -4062,6 +4064,11 @@ from their cell phone carrier. The use of the string is similar to the string "system_update_settings_list_item_title" in this project. [CHAR LIMIT=25] --> Additional system updates + + Disabled + Permissive + Enforcing diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml index b156c11be82..324deaaa34c 100644 --- a/res/xml/device_info_settings.xml +++ b/res/xml/device_info_settings.xml @@ -125,4 +125,10 @@ android:title="@string/build_number" android:summary="@string/device_info_default"/> + + + diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 7d8b805e8ab..384786207d4 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -23,6 +23,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Build; import android.os.Bundle; +import android.os.SELinux; import android.os.SystemClock; import android.os.SystemProperties; import android.preference.Preference; @@ -53,9 +54,11 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { private static final String KEY_COPYRIGHT = "copyright"; private static final String KEY_SYSTEM_UPDATE_SETTINGS = "system_update_settings"; private static final String PROPERTY_URL_SAFETYLEGAL = "ro.url.safetylegal"; + private static final String PROPERTY_SELINUX_STATUS = "ro.build.selinux"; private static final String KEY_KERNEL_VERSION = "kernel_version"; private static final String KEY_BUILD_NUMBER = "build_number"; private static final String KEY_DEVICE_MODEL = "device_model"; + private static final String KEY_SELINUX_STATUS = "selinux_status"; private static final String KEY_BASEBAND_VERSION = "baseband_version"; private static final String KEY_FIRMWARE_VERSION = "firmware_version"; private static final String KEY_UPDATE_SETTING = "additional_system_update_settings"; @@ -79,6 +82,18 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { setStringSummary(KEY_BUILD_NUMBER, Build.DISPLAY); findPreference(KEY_KERNEL_VERSION).setSummary(getFormattedKernelVersion()); + if (!SELinux.isSELinuxEnabled()) { + String status = getResources().getString(R.string.selinux_status_disabled); + setStringSummary(KEY_SELINUX_STATUS, status); + } else if (!SELinux.isSELinuxEnforced()) { + String status = getResources().getString(R.string.selinux_status_permissive); + setStringSummary(KEY_SELINUX_STATUS, status); + } + + // Remove selinux information if property is not present + removePreferenceIfPropertyMissing(getPreferenceScreen(), KEY_SELINUX_STATUS, + PROPERTY_SELINUX_STATUS); + // Remove Safety information preference if PROPERTY_URL_SAFETYLEGAL is not set removePreferenceIfPropertyMissing(getPreferenceScreen(), "safetylegal", PROPERTY_URL_SAFETYLEGAL);