From 4d81eae95fe9b0265faee7fffafdc9487c856569 Mon Sep 17 00:00:00 2001 From: Andy CrossGate Yan Date: Sat, 17 Dec 2022 14:30:52 +0000 Subject: [PATCH 8/8] TrebleSettings: Securize on-demand Change-Id: I76f54620277ccdc41636d74d1afa6330c382ce6a --- res/values/strings.xml | 6 +++ res/xml/treble_settings.xml | 10 ++++ .../treble/SecurizePreferenceController.java | 53 +++++++++++++++++++ .../settings/treble/TrebleSettings.java | 1 + 4 files changed, 70 insertions(+) create mode 100644 src/com/android/settings/treble/SecurizePreferenceController.java diff --git a/res/values/strings.xml b/res/values/strings.xml index 6230aae707..62062b5fe8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8508,6 +8508,8 @@ Display IMS + + System UI @@ -8532,6 +8534,10 @@ IMS APK installed. Reboot required. Override VoLTE availability + + Spoof system properties + + For better chances of passing SafetyNet\nMight cause bootloop on some devices Override navigation bar availability diff --git a/res/xml/treble_settings.xml b/res/xml/treble_settings.xml index 250a8ee75a..1f24352421 100644 --- a/res/xml/treble_settings.xml +++ b/res/xml/treble_settings.xml @@ -57,6 +57,16 @@ + + + + + + diff --git a/src/com/android/settings/treble/SecurizePreferenceController.java b/src/com/android/settings/treble/SecurizePreferenceController.java new file mode 100644 index 0000000000..0b59bbad81 --- /dev/null +++ b/src/com/android/settings/treble/SecurizePreferenceController.java @@ -0,0 +1,53 @@ +package com.android.settings.treble; + +import android.content.Context; +import android.os.SystemProperties; + +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; +import androidx.preference.SwitchPreference; + +import com.android.settings.core.BasePreferenceController; + +public class SecurizePreferenceController extends BasePreferenceController + implements Preference.OnPreferenceChangeListener { + + private static final String SECURIZE_KEY = "securize"; + private static final String SECURIZE_PROPERTY = "persist.sys.treble.securize"; + + private SwitchPreference mSwitchPreference; + + public SecurizePreferenceController(Context context) { + super(context, SECURIZE_KEY); + } + + @Override + public int getAvailabilityStatus() { + return AVAILABLE; + } + + @Override + public String getPreferenceKey() { + return SECURIZE_KEY; + } + + @Override + public void displayPreference(PreferenceScreen screen) { + mSwitchPreference = screen.findPreference(getPreferenceKey()); + super.displayPreference(screen); + } + + @Override + public void updateState(Preference preference) { + boolean checked = SystemProperties.getBoolean(SECURIZE_PROPERTY, false); + mSwitchPreference.setChecked(checked); + } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + SystemProperties.set(SECURIZE_PROPERTY, String.valueOf((boolean) newValue)); + mSwitchPreference.setChecked((boolean) newValue); + return true; + } + +} diff --git a/src/com/android/settings/treble/TrebleSettings.java b/src/com/android/settings/treble/TrebleSettings.java index 634b7ce3ce..149c18f231 100644 --- a/src/com/android/settings/treble/TrebleSettings.java +++ b/src/com/android/settings/treble/TrebleSettings.java @@ -41,6 +41,7 @@ public class TrebleSettings extends DashboardFragment { controllers.add(new OverrideMinimumBrightnessPreferenceController(context)); controllers.add(new InstallImsApkPreferenceController(context)); controllers.add(new OverrideVolteAvailabilityPreferenceController(context)); + controllers.add(new SecurizePreferenceController(context)); controllers.add(new OverrideNavbarAvailabilityPreferenceController(context)); return controllers; } -- 2.34.1