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) {