Development Options: toggle binderized hals
This allows for quick performance testing and also for a better
dogfooding experience.
Bug: 34256441
Test: Verification with getprop.
Change-Id: I81c5e0b1044d4569a6fe55a4b30f7e21c4465fc2
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 877da58..1af24a7 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7370,6 +7370,9 @@
<!-- Name of the setting to disable the automatic update -->
<string name="ota_disable_automatic_update">Automatic system updates</string>
+ <!-- Name of the setting to enable hal binderization -->
+ <string name="enable_hal_binderization">Binderized HALs (requires reboot)</string>
+
<!-- Label for category for data usage [CHAR LIMIT=30] -->
<string name="usage">Usage</string>
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index b655865..eebf47d 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -91,6 +91,10 @@
android:summary="@string/color_temperature_desc" />
<SwitchPreference
+ android:key="enable_hal_binderization"
+ android:title="@string/enable_hal_binderization" />
+
+ <SwitchPreference
android:key="ota_disable_automatic_update"
android:title="@string/ota_disable_automatic_update" />
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index c673676..d13dba3 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -222,6 +222,8 @@
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 @@
private ListPreference mBluetoothSelectA2dpLdacPlaybackQuality;
private SwitchPreference mOtaDisableAutomaticUpdate;
+ private SwitchPreference mEnableHalBinderization;
private SwitchPreference mWifiAllowScansWithTraffic;
private SwitchPreference mStrictMode;
private SwitchPreference mPointerLocation;
@@ -522,6 +525,8 @@
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 @@
updateShowAllANRsOptions();
updateVerifyAppsOverUsbOptions();
updateOtaDisableAutomaticUpdateOptions();
+ updateEnableHalBinderizationOptions();
updateBugreportOptions();
updateForceRtlOptions();
updateLogdSizeValues();
@@ -1040,6 +1046,17 @@
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 @@
writeVerifyAppsOverUsbOptions();
} else if (preference == mOtaDisableAutomaticUpdate) {
writeOtaDisableAutomaticUpdateOptions();
+ } else if (preference == mEnableHalBinderization) {
+ writeEnableHalBinderizationOptions();
} else if (preference == mStrictMode) {
writeStrictModeVisualOptions();
} else if (preference == mPointerLocation) {