diff --git a/res/values/strings.xml b/res/values/strings.xml index 877da582145..1af24a7a75e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -7370,6 +7370,9 @@ Automatic system updates + + Binderized HALs (requires reboot) + Usage diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml index b65586557d0..eebf47d7487 100644 --- a/res/xml/development_prefs.xml +++ b/res/xml/development_prefs.xml @@ -90,6 +90,10 @@ android:title="@string/color_temperature" android:summary="@string/color_temperature_desc" /> + + diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index c673676545c..d13dba30628 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -222,6 +222,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment private static final String KEY_CONVERT_FBE = "convert_to_file_encryption"; private static final String OTA_DISABLE_AUTOMATIC_UPDATE_KEY = "ota_disable_automatic_update"; + private static final String ENABLE_HAL_BINDERIZATION_KEY = "enable_hal_binderization"; + private static final String ENABLE_HAL_BINDERIZATION_PROPERTY = "persist.hal.binderization"; private static final int RESULT_DEBUG_APP = 1000; private static final int RESULT_MOCK_LOCATION_APP = 1001; @@ -284,6 +286,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment private ListPreference mBluetoothSelectA2dpLdacPlaybackQuality; private SwitchPreference mOtaDisableAutomaticUpdate; + private SwitchPreference mEnableHalBinderization; private SwitchPreference mWifiAllowScansWithTraffic; private SwitchPreference mStrictMode; private SwitchPreference mPointerLocation; @@ -522,6 +525,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment mOtaDisableAutomaticUpdate = findAndInitSwitchPref(OTA_DISABLE_AUTOMATIC_UPDATE_KEY); + mEnableHalBinderization = findAndInitSwitchPref(ENABLE_HAL_BINDERIZATION_KEY); + mColorModePreference = (ColorModePreference) findPreference(KEY_COLOR_MODE); mColorModePreference.updateCurrentAndSupported(); if (mColorModePreference.getColorModeCount() < 2) { @@ -751,6 +756,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment updateShowAllANRsOptions(); updateVerifyAppsOverUsbOptions(); updateOtaDisableAutomaticUpdateOptions(); + updateEnableHalBinderizationOptions(); updateBugreportOptions(); updateForceRtlOptions(); updateLogdSizeValues(); @@ -1040,6 +1046,17 @@ public class DevelopmentSettings extends RestrictedSettingsFragment mOtaDisableAutomaticUpdate.isChecked() ? 0 : 1); } + private void updateEnableHalBinderizationOptions() { + updateSwitchPreference(mEnableHalBinderization, + SystemProperties.getBoolean(ENABLE_HAL_BINDERIZATION_PROPERTY, false)); + } + + private void writeEnableHalBinderizationOptions() { + SystemProperties.set(ENABLE_HAL_BINDERIZATION_PROPERTY, + mEnableHalBinderization.isChecked() ? "true" : "false"); + pokeSystemProperties(); + } + private boolean enableVerifierSetting() { final ContentResolver cr = getActivity().getContentResolver(); if (Settings.Global.getInt(cr, Settings.Global.ADB_ENABLED, 0) == 0) { @@ -2398,6 +2415,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment writeVerifyAppsOverUsbOptions(); } else if (preference == mOtaDisableAutomaticUpdate) { writeOtaDisableAutomaticUpdateOptions(); + } else if (preference == mEnableHalBinderization) { + writeEnableHalBinderizationOptions(); } else if (preference == mStrictMode) { writeStrictModeVisualOptions(); } else if (preference == mPointerLocation) {