Changes for March 2024
This commit is contained in:
@@ -0,0 +1,309 @@
|
||||
From f68ae539a97bd8f1ec566a34cf68f5ee4a14af00 Mon Sep 17 00:00:00 2001
|
||||
From: TogoFire <italomellopereira@gmail.com>
|
||||
Date: Fri, 6 Aug 2021 08:54:07 -0300
|
||||
Subject: [PATCH 1/2] Revert "[Wi-Fi] Remove 'Do not validate' option in CA
|
||||
certificate spinner"
|
||||
|
||||
This is not a definitive fix, so revert it. WPA2-Enterprise (802.1X) or
|
||||
WPA2-PSK.
|
||||
|
||||
[xawlw]:
|
||||
- Sometimes we can't connect to some Enterprise WiFi networks because we
|
||||
don't know its domain so let's revert this 'Security' feature
|
||||
- Read more about it here:
|
||||
https://www.xda-developers.com/android-11-break-enterprise-wifi-connection/
|
||||
|
||||
This reverts commit 33cde5dbeee934269f16d72e26e651d56a13733e.
|
||||
This reverts commit 94b8579607c6f1201cea9d6601e88cec897b2ff6.
|
||||
|
||||
Signed-off-by: TogoFire <italomellopereira@gmail.com>
|
||||
Signed-off-by: xawlw <abdulazizawlw@gmail.com>
|
||||
Change-Id: I3cec92b74a419b5463c5e5db496863e66d034703
|
||||
---
|
||||
res/layout/wifi_network_config.xml | 12 +++++++
|
||||
res/values/custom_strings.xml | 5 +++
|
||||
.../settings/wifi/WifiConfigController.java | 33 +++++++++++++------
|
||||
.../settings/wifi/WifiConfigController2.java | 33 +++++++++++++------
|
||||
4 files changed, 63 insertions(+), 20 deletions(-)
|
||||
create mode 100644 res/values/custom_strings.xml
|
||||
|
||||
diff --git a/res/layout/wifi_network_config.xml b/res/layout/wifi_network_config.xml
|
||||
index f91f7385c1..e7b8df3c2a 100644
|
||||
--- a/res/layout/wifi_network_config.xml
|
||||
+++ b/res/layout/wifi_network_config.xml
|
||||
@@ -206,6 +206,18 @@
|
||||
android:entries="@array/eap_ocsp_type"/>
|
||||
</LinearLayout>
|
||||
|
||||
+ <LinearLayout android:id="@+id/no_ca_cert_warning"
|
||||
+ android:layout_width="match_parent"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:visibility="gone"
|
||||
+ style="@style/wifi_item" >
|
||||
+ <TextView
|
||||
+ android:layout_width="wrap_content"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ style="@style/wifi_item_warning"
|
||||
+ android:text="@string/wifi_do_not_validate_eap_server_warning" />
|
||||
+ </LinearLayout>
|
||||
+
|
||||
<LinearLayout android:id="@+id/l_domain"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
|
||||
new file mode 100644
|
||||
index 0000000000..14462c36a4
|
||||
--- /dev/null
|
||||
+++ b/res/values/custom_strings.xml
|
||||
@@ -0,0 +1,5 @@
|
||||
+<?xml version="1.0" encoding="utf-8"?>
|
||||
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
+ <!-- Warning message displayed if user choses not to validate the EAP server -->
|
||||
+ <string name="wifi_do_not_validate_eap_server_warning">No certificate specified. Your connection will not be private.</string>
|
||||
+</resources>
|
||||
\ No newline at end of file
|
||||
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
|
||||
index 0c063db8a7..306576d102 100644
|
||||
--- a/src/com/android/settings/wifi/WifiConfigController.java
|
||||
+++ b/src/com/android/settings/wifi/WifiConfigController.java
|
||||
@@ -166,6 +166,7 @@ public class WifiConfigController implements TextWatcher,
|
||||
private String mMultipleCertSetString;
|
||||
private String mUseSystemCertsString;
|
||||
private String mDoNotProvideEapUserCertString;
|
||||
+ private String mDoNotValidateEapServerString;
|
||||
|
||||
private Spinner mSecuritySpinner;
|
||||
@VisibleForTesting Spinner mEapMethodSpinner;
|
||||
@@ -272,6 +273,8 @@ public class WifiConfigController implements TextWatcher,
|
||||
mUseSystemCertsString = mContext.getString(R.string.wifi_use_system_certs);
|
||||
mDoNotProvideEapUserCertString =
|
||||
mContext.getString(R.string.wifi_do_not_provide_eap_user_cert);
|
||||
+ mDoNotValidateEapServerString =
|
||||
+ mContext.getString(R.string.wifi_do_not_validate_eap_server);
|
||||
|
||||
mSsidScanButton = (ImageButton) mView.findViewById(R.id.ssid_scanner_button);
|
||||
mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
|
||||
@@ -544,7 +547,8 @@ public class WifiConfigController implements TextWatcher,
|
||||
// Disallow submit if the user has not selected a CA certificate for an EAP network
|
||||
// configuration.
|
||||
enabled = false;
|
||||
- } else if (mEapDomainView != null
|
||||
+ } else if (!caCertSelection.equals(mDoNotValidateEapServerString)
|
||||
+ && mEapDomainView != null
|
||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||
// Disallow submit if the user chooses to use a certificate for EAP server
|
||||
@@ -566,6 +570,7 @@ public class WifiConfigController implements TextWatcher,
|
||||
}
|
||||
|
||||
void showWarningMessagesIfAppropriate() {
|
||||
+ mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.GONE);
|
||||
mView.findViewById(R.id.no_user_cert_warning).setVisibility(View.GONE);
|
||||
mView.findViewById(R.id.no_domain_warning).setVisibility(View.GONE);
|
||||
mView.findViewById(R.id.ssid_too_long_warning).setVisibility(View.GONE);
|
||||
@@ -578,7 +583,13 @@ public class WifiConfigController implements TextWatcher,
|
||||
}
|
||||
if (mEapCaCertSpinner != null
|
||||
&& mView.findViewById(R.id.l_ca_cert).getVisibility() != View.GONE) {
|
||||
- if (mEapDomainView != null
|
||||
+ String caCertSelection = (String) mEapCaCertSpinner.getSelectedItem();
|
||||
+ if (caCertSelection.equals(mDoNotValidateEapServerString)) {
|
||||
+ // Display warning if user chooses not to validate the EAP server with a
|
||||
+ // user-supplied CA certificate in an EAP network configuration.
|
||||
+ mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.VISIBLE);
|
||||
+ } else if (!caCertSelection.equals(mUnspecifiedCertString)
|
||||
+ && mEapDomainView != null
|
||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||
// Display warning if user chooses to use a certificate without restricting the
|
||||
@@ -719,7 +730,8 @@ public class WifiConfigController implements TextWatcher,
|
||||
config.enterpriseConfig.setCaCertificateAliases(null);
|
||||
config.enterpriseConfig.setCaPath(null);
|
||||
config.enterpriseConfig.setDomainSuffixMatch(mEapDomainView.getText().toString());
|
||||
- if (caCert.equals(mUnspecifiedCertString)) {
|
||||
+ if (caCert.equals(mUnspecifiedCertString)
|
||||
+ || caCert.equals(mDoNotValidateEapServerString)) {
|
||||
// ca_cert already set to null, so do nothing.
|
||||
} else if (caCert.equals(mUseSystemCertsString)) {
|
||||
config.enterpriseConfig.setCaPath(SYSTEM_CA_STORE_PATH);
|
||||
@@ -753,7 +765,8 @@ public class WifiConfigController implements TextWatcher,
|
||||
}
|
||||
|
||||
// Only set OCSP option if there is a valid CA certificate.
|
||||
- if (caCert.equals(mUnspecifiedCertString)) {
|
||||
+ if (caCert.equals(mUnspecifiedCertString)
|
||||
+ || caCert.equals(mDoNotValidateEapServerString)) {
|
||||
config.enterpriseConfig.setOcsp(WifiEnterpriseConfig.OCSP_NONE);
|
||||
} else {
|
||||
config.enterpriseConfig.setOcsp(mEapOcspSpinner.getSelectedItemPosition());
|
||||
@@ -1057,7 +1070,7 @@ public class WifiConfigController implements TextWatcher,
|
||||
loadCertificates(
|
||||
mEapCaCertSpinner,
|
||||
androidKeystoreAliasLoader.getCaCertAliases(),
|
||||
- null /* noCertificateString */,
|
||||
+ mDoNotValidateEapServerString /* noCertificateString */,
|
||||
false /* showMultipleCerts */,
|
||||
true /* showUsePreinstalledCertOption */);
|
||||
loadCertificates(
|
||||
@@ -1141,7 +1154,7 @@ public class WifiConfigController implements TextWatcher,
|
||||
} else {
|
||||
String[] caCerts = enterpriseConfig.getCaCertificateAliases();
|
||||
if (caCerts == null) {
|
||||
- setSelection(mEapCaCertSpinner, mUnspecifiedCertString);
|
||||
+ setSelection(mEapCaCertSpinner, mDoNotValidateEapServerString);
|
||||
} else if (caCerts.length == 1) {
|
||||
setSelection(mEapCaCertSpinner, caCerts[0]);
|
||||
} else {
|
||||
@@ -1152,7 +1165,7 @@ public class WifiConfigController implements TextWatcher,
|
||||
loadCertificates(
|
||||
mEapCaCertSpinner,
|
||||
androidKeystoreAliasLoader.getCaCertAliases(),
|
||||
- null /* noCertificateString */,
|
||||
+ mDoNotValidateEapServerString /* noCertificateString */,
|
||||
true /* showMultipleCerts */,
|
||||
true /* showUsePreinstalledCertOption */);
|
||||
setSelection(mEapCaCertSpinner, mMultipleCertSetString);
|
||||
@@ -1285,7 +1298,8 @@ public class WifiConfigController implements TextWatcher,
|
||||
|
||||
if (mView.findViewById(R.id.l_ca_cert).getVisibility() != View.GONE) {
|
||||
String eapCertSelection = (String) mEapCaCertSpinner.getSelectedItem();
|
||||
- if (eapCertSelection.equals(mUnspecifiedCertString)) {
|
||||
+ if (eapCertSelection.equals(mDoNotValidateEapServerString)
|
||||
+ || eapCertSelection.equals(mUnspecifiedCertString)) {
|
||||
// Domain suffix matching is not relevant if the user hasn't chosen a CA
|
||||
// certificate yet, or chooses not to validate the EAP server.
|
||||
setDomainInvisible();
|
||||
@@ -1546,8 +1560,7 @@ public class WifiConfigController implements TextWatcher,
|
||||
}).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
- if (!TextUtils.isEmpty(noCertificateString)
|
||||
- && mAccessPointSecurity != AccessPoint.SECURITY_EAP_SUITE_B) {
|
||||
+ if (mAccessPointSecurity != AccessPoint.SECURITY_EAP_SUITE_B) {
|
||||
certs.add(noCertificateString);
|
||||
}
|
||||
|
||||
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
|
||||
index ab13405232..01353b38fc 100644
|
||||
--- a/src/com/android/settings/wifi/WifiConfigController2.java
|
||||
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
|
||||
@@ -172,6 +172,7 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
private String mUseSystemCertsString;
|
||||
private String mTrustOnFirstUse;
|
||||
private String mDoNotProvideEapUserCertString;
|
||||
+ private String mDoNotValidateEapServerString;
|
||||
@VisibleForTesting String mInstallCertsString;
|
||||
|
||||
private Spinner mSecuritySpinner;
|
||||
@@ -275,6 +276,8 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
mTrustOnFirstUse = mContext.getString(R.string.wifi_trust_on_first_use);
|
||||
mDoNotProvideEapUserCertString =
|
||||
mContext.getString(R.string.wifi_do_not_provide_eap_user_cert);
|
||||
+ mDoNotValidateEapServerString =
|
||||
+ mContext.getString(R.string.wifi_do_not_validate_eap_server);
|
||||
mInstallCertsString = mContext.getString(R.string.wifi_install_credentials);
|
||||
|
||||
mSsidScanButton = (ImageButton) mView.findViewById(R.id.ssid_scanner_button);
|
||||
@@ -528,7 +531,8 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
// Disallow submit if the user has not selected a CA certificate for an EAP network
|
||||
// configuration.
|
||||
enabled = false;
|
||||
- } else if (mEapDomainView != null
|
||||
+ } else if (!caCertSelection.equals(mDoNotValidateEapServerString)
|
||||
+ && mEapDomainView != null
|
||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||
// Disallow submit if the user chooses to use a certificate for EAP server
|
||||
@@ -550,6 +554,7 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
}
|
||||
|
||||
void showWarningMessagesIfAppropriate() {
|
||||
+ mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.GONE);
|
||||
mView.findViewById(R.id.no_user_cert_warning).setVisibility(View.GONE);
|
||||
mView.findViewById(R.id.no_domain_warning).setVisibility(View.GONE);
|
||||
mView.findViewById(R.id.ssid_too_long_warning).setVisibility(View.GONE);
|
||||
@@ -562,7 +567,13 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
}
|
||||
if (mEapCaCertSpinner != null
|
||||
&& mView.findViewById(R.id.l_ca_cert).getVisibility() != View.GONE) {
|
||||
- if (mEapDomainView != null
|
||||
+ String caCertSelection = (String) mEapCaCertSpinner.getSelectedItem();
|
||||
+ if (caCertSelection.equals(mDoNotValidateEapServerString)) {
|
||||
+ // Display warning if user chooses not to validate the EAP server with a
|
||||
+ // user-supplied CA certificate in an EAP network configuration.
|
||||
+ mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.VISIBLE);
|
||||
+ } else if (!caCertSelection.equals(mUnspecifiedCertString)
|
||||
+ && mEapDomainView != null
|
||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||
// Display warning if user chooses to use a certificate without restricting the
|
||||
@@ -710,7 +721,8 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
config.enterpriseConfig.setCaCertificateAliases(null);
|
||||
config.enterpriseConfig.setCaPath(null);
|
||||
config.enterpriseConfig.setDomainSuffixMatch(mEapDomainView.getText().toString());
|
||||
- if (caCert.equals(mUnspecifiedCertString)) {
|
||||
+ if (caCert.equals(mUnspecifiedCertString)
|
||||
+ || caCert.equals(mDoNotValidateEapServerString)) {
|
||||
// ca_cert already set to null, so do nothing.
|
||||
} else if (mIsTrustOnFirstUseSupported && caCert.equals(mTrustOnFirstUse)) {
|
||||
config.enterpriseConfig.enableTrustOnFirstUse(true);
|
||||
@@ -745,7 +757,8 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
}
|
||||
|
||||
// Only set OCSP option if there is a valid CA certificate.
|
||||
- if (caCert.equals(mUnspecifiedCertString)) {
|
||||
+ if (caCert.equals(mUnspecifiedCertString)
|
||||
+ || caCert.equals(mDoNotValidateEapServerString)) {
|
||||
config.enterpriseConfig.setOcsp(WifiEnterpriseConfig.OCSP_NONE);
|
||||
} else {
|
||||
config.enterpriseConfig.setOcsp(mEapOcspSpinner.getSelectedItemPosition());
|
||||
@@ -1045,7 +1058,7 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
loadCertificates(
|
||||
mEapCaCertSpinner,
|
||||
androidKeystoreAliasLoader.getCaCertAliases(),
|
||||
- null /* noCertificateString */,
|
||||
+ mDoNotValidateEapServerString /* noCertificateString */,
|
||||
false /* showMultipleCerts */,
|
||||
true /* showUsePreinstalledCertOption */);
|
||||
loadCertificates(
|
||||
@@ -1131,7 +1144,7 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
&& enterpriseConfig.isTrustOnFirstUseEnabled()) {
|
||||
setSelection(mEapCaCertSpinner, mTrustOnFirstUse);
|
||||
} else {
|
||||
- setSelection(mEapCaCertSpinner, mUnspecifiedCertString);
|
||||
+ setSelection(mEapCaCertSpinner, mDoNotValidateEapServerString);
|
||||
}
|
||||
} else if (caCerts.length == 1) {
|
||||
setSelection(mEapCaCertSpinner, caCerts[0]);
|
||||
@@ -1142,7 +1155,7 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
loadCertificates(
|
||||
mEapCaCertSpinner,
|
||||
androidKeystoreAliasLoader.getCaCertAliases(),
|
||||
- null /* noCertificateString */,
|
||||
+ mDoNotValidateEapServerString /* noCertificateString */,
|
||||
true /* showMultipleCerts */,
|
||||
true /* showUsePreinstalledCertOption */);
|
||||
setSelection(mEapCaCertSpinner, mMultipleCertSetString);
|
||||
@@ -1277,7 +1290,8 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
String eapCertSelection = (String) mEapCaCertSpinner.getSelectedItem();
|
||||
if (eapCertSelection.equals(mUnspecifiedCertString)
|
||||
|| (mIsTrustOnFirstUseSupported
|
||||
- && eapCertSelection.equals(mTrustOnFirstUse))) {
|
||||
+ && eapCertSelection.equals(mTrustOnFirstUse))
|
||||
+ || eapCertSelection.equals(mUnspecifiedCertString)) {
|
||||
// Domain suffix matching is not relevant if the user hasn't chosen a CA
|
||||
// certificate yet, or chooses not to validate the EAP server.
|
||||
setDomainInvisible();
|
||||
@@ -1550,8 +1564,7 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
}).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
- if (!TextUtils.isEmpty(noCertificateString)
|
||||
- && mWifiEntrySecurity != WifiEntry.SECURITY_EAP_SUITE_B) {
|
||||
+ if (mWifiEntrySecurity != WifiEntry.SECURITY_EAP_SUITE_B) {
|
||||
certs.add(noCertificateString);
|
||||
}
|
||||
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,191 @@
|
||||
From f6313909d7124630fc1146b72d847f19a026dcf6 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Fri, 16 Feb 2024 22:06:59 +0800
|
||||
Subject: [PATCH 2/2] Revert "[Wi-Fi] Check if domain field is not empty when
|
||||
users choose a ca certificate"
|
||||
|
||||
This reverts commit 8d5c8c2611adadbd5baf81d8157871005ff87497.
|
||||
---
|
||||
.../settings/wifi/WifiConfigController.java | 16 +++++-----
|
||||
.../settings/wifi/WifiConfigController2.java | 16 +++++-----
|
||||
.../wifi/WifiConfigController2Test.java | 29 -------------------
|
||||
.../wifi/WifiConfigControllerTest.java | 29 -------------------
|
||||
4 files changed, 18 insertions(+), 72 deletions(-)
|
||||
|
||||
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
|
||||
index 306576d102..53053c28ad 100644
|
||||
--- a/src/com/android/settings/wifi/WifiConfigController.java
|
||||
+++ b/src/com/android/settings/wifi/WifiConfigController.java
|
||||
@@ -547,11 +547,12 @@ public class WifiConfigController implements TextWatcher,
|
||||
// Disallow submit if the user has not selected a CA certificate for an EAP network
|
||||
// configuration.
|
||||
enabled = false;
|
||||
- } else if (!caCertSelection.equals(mDoNotValidateEapServerString)
|
||||
+ }
|
||||
+ if (caCertSelection.equals(mUseSystemCertsString)
|
||||
&& mEapDomainView != null
|
||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||
- // Disallow submit if the user chooses to use a certificate for EAP server
|
||||
+ // Disallow submit if the user chooses to use system certificates for EAP server
|
||||
// validation, but does not provide a domain.
|
||||
enabled = false;
|
||||
}
|
||||
@@ -588,12 +589,14 @@ public class WifiConfigController implements TextWatcher,
|
||||
// Display warning if user chooses not to validate the EAP server with a
|
||||
// user-supplied CA certificate in an EAP network configuration.
|
||||
mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.VISIBLE);
|
||||
- } else if (!caCertSelection.equals(mUnspecifiedCertString)
|
||||
+ }
|
||||
+ if (caCertSelection.equals(mUseSystemCertsString)
|
||||
&& mEapDomainView != null
|
||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||
- // Display warning if user chooses to use a certificate without restricting the
|
||||
- // server domain that these certificates can be used to validate.
|
||||
+ // Display warning if user chooses to use pre-installed public CA certificates
|
||||
+ // without restricting the server domain that these certificates can be used to
|
||||
+ // validate.
|
||||
mView.findViewById(R.id.no_domain_warning).setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
@@ -1793,8 +1796,7 @@ public class WifiConfigController implements TextWatcher,
|
||||
mContext.getResources().getStringArray(contentStringArrayResId));
|
||||
}
|
||||
|
||||
- @VisibleForTesting
|
||||
- ArrayAdapter<CharSequence> getSpinnerAdapter(
|
||||
+ private ArrayAdapter<CharSequence> getSpinnerAdapter(
|
||||
String[] contentStringArray) {
|
||||
ArrayAdapter<CharSequence> spinnerAdapter = new ArrayAdapter<>(mContext,
|
||||
android.R.layout.simple_spinner_item, contentStringArray);
|
||||
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
|
||||
index 01353b38fc..b08315c0f5 100644
|
||||
--- a/src/com/android/settings/wifi/WifiConfigController2.java
|
||||
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
|
||||
@@ -531,11 +531,12 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
// Disallow submit if the user has not selected a CA certificate for an EAP network
|
||||
// configuration.
|
||||
enabled = false;
|
||||
- } else if (!caCertSelection.equals(mDoNotValidateEapServerString)
|
||||
+ }
|
||||
+ if (caCertSelection.equals(mUseSystemCertsString)
|
||||
&& mEapDomainView != null
|
||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||
- // Disallow submit if the user chooses to use a certificate for EAP server
|
||||
+ // Disallow submit if the user chooses to use system certificates for EAP server
|
||||
// validation, but does not provide a domain.
|
||||
enabled = false;
|
||||
}
|
||||
@@ -572,12 +573,14 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
// Display warning if user chooses not to validate the EAP server with a
|
||||
// user-supplied CA certificate in an EAP network configuration.
|
||||
mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.VISIBLE);
|
||||
- } else if (!caCertSelection.equals(mUnspecifiedCertString)
|
||||
+ }
|
||||
+ if (caCertSelection.equals(mUseSystemCertsString)
|
||||
&& mEapDomainView != null
|
||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||
- // Display warning if user chooses to use a certificate without restricting the
|
||||
- // server domain that these certificates can be used to validate.
|
||||
+ // Display warning if user chooses to use pre-installed public CA certificates
|
||||
+ // without restricting the server domain that these certificates can be used to
|
||||
+ // validate.
|
||||
mView.findViewById(R.id.no_domain_warning).setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
@@ -1858,8 +1861,7 @@ public class WifiConfigController2 implements TextWatcher,
|
||||
mContext.getResources().getStringArray(contentStringArrayResId));
|
||||
}
|
||||
|
||||
- @VisibleForTesting
|
||||
- ArrayAdapter<CharSequence> getSpinnerAdapter(
|
||||
+ private ArrayAdapter<CharSequence> getSpinnerAdapter(
|
||||
String[] contentStringArray) {
|
||||
ArrayAdapter<CharSequence> spinnerAdapter = new ArrayAdapter<>(mContext,
|
||||
android.R.layout.simple_spinner_item, contentStringArray);
|
||||
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
|
||||
index 9139a285e1..d2de325d00 100644
|
||||
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
|
||||
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
|
||||
@@ -269,35 +269,6 @@ public class WifiConfigController2Test {
|
||||
assertThat(mController.isSubmittable()).isTrue();
|
||||
}
|
||||
|
||||
- @Test
|
||||
- public void isSubmittable_caCertWithoutDomain_shouldReturnFalse() {
|
||||
- when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
|
||||
- mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
|
||||
- WifiConfigUiBase2.MODE_CONNECT);
|
||||
- mView.findViewById(R.id.l_ca_cert).setVisibility(View.VISIBLE);
|
||||
- final Spinner eapCaCertSpinner = mView.findViewById(R.id.ca_cert);
|
||||
- eapCaCertSpinner.setAdapter(mController.getSpinnerAdapter(new String[]{"certificate"}));
|
||||
- eapCaCertSpinner.setSelection(0);
|
||||
- mView.findViewById(R.id.l_domain).setVisibility(View.VISIBLE);
|
||||
-
|
||||
- assertThat(mController.isSubmittable()).isFalse();
|
||||
- }
|
||||
-
|
||||
- @Test
|
||||
- public void isSubmittable_caCertWithDomain_shouldReturnTrue() {
|
||||
- when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
|
||||
- mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
|
||||
- WifiConfigUiBase2.MODE_CONNECT);
|
||||
- mView.findViewById(R.id.l_ca_cert).setVisibility(View.VISIBLE);
|
||||
- final Spinner eapCaCertSpinner = mView.findViewById(R.id.ca_cert);
|
||||
- eapCaCertSpinner.setAdapter(mController.getSpinnerAdapter(new String[]{"certificate"}));
|
||||
- eapCaCertSpinner.setSelection(0);
|
||||
- mView.findViewById(R.id.l_domain).setVisibility(View.VISIBLE);
|
||||
- ((TextView) mView.findViewById(R.id.domain)).setText("fakeDomain");
|
||||
-
|
||||
- assertThat(mController.isSubmittable()).isTrue();
|
||||
- }
|
||||
-
|
||||
@Test
|
||||
public void getSignalString_notReachable_shouldHaveNoSignalString() {
|
||||
when(mWifiEntry.getLevel()).thenReturn(WifiEntry.WIFI_LEVEL_UNREACHABLE);
|
||||
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
|
||||
index 8ecbaf64b1..a8fde6dd29 100644
|
||||
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
|
||||
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
|
||||
@@ -228,35 +228,6 @@ public class WifiConfigControllerTest {
|
||||
assertThat(mController.isSubmittable()).isTrue();
|
||||
}
|
||||
|
||||
- @Test
|
||||
- public void isSubmittable_caCertWithoutDomain_shouldReturnFalse() {
|
||||
- when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP);
|
||||
- mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
|
||||
- WifiConfigUiBase.MODE_CONNECT);
|
||||
- mView.findViewById(R.id.l_ca_cert).setVisibility(View.VISIBLE);
|
||||
- final Spinner eapCaCertSpinner = mView.findViewById(R.id.ca_cert);
|
||||
- eapCaCertSpinner.setAdapter(mController.getSpinnerAdapter(new String[]{"certificate"}));
|
||||
- eapCaCertSpinner.setSelection(0);
|
||||
- mView.findViewById(R.id.l_domain).setVisibility(View.VISIBLE);
|
||||
-
|
||||
- assertThat(mController.isSubmittable()).isFalse();
|
||||
- }
|
||||
-
|
||||
- @Test
|
||||
- public void isSubmittable_caCertWithDomain_shouldReturnTrue() {
|
||||
- when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP);
|
||||
- mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
|
||||
- WifiConfigUiBase.MODE_CONNECT);
|
||||
- mView.findViewById(R.id.l_ca_cert).setVisibility(View.VISIBLE);
|
||||
- final Spinner eapCaCertSpinner = mView.findViewById(R.id.ca_cert);
|
||||
- eapCaCertSpinner.setAdapter(mController.getSpinnerAdapter(new String[]{"certificate"}));
|
||||
- eapCaCertSpinner.setSelection(0);
|
||||
- mView.findViewById(R.id.l_domain).setVisibility(View.VISIBLE);
|
||||
- ((TextView) mView.findViewById(R.id.domain)).setText("fakeDomain");
|
||||
-
|
||||
- assertThat(mController.isSubmittable()).isTrue();
|
||||
- }
|
||||
-
|
||||
@Test
|
||||
public void getSignalString_notReachable_shouldHaveNoSignalString() {
|
||||
when(mAccessPoint.isReachable()).thenReturn(false);
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
From 1f423ec35afe9be5dcde2acf9a600190dd13f982 Mon Sep 17 00:00:00 2001
|
||||
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
|
||||
Date: Thu, 29 Dec 2022 15:08:49 +0000
|
||||
Subject: [PATCH] Simplify Securize to CheckBoxPreference and persist prop
|
||||
|
||||
For "Securize on-demand"
|
||||
---
|
||||
app/src/main/java/me/phh/treble/app/Misc.kt | 5 +++
|
||||
.../java/me/phh/treble/app/MiscSettings.kt | 33 -------------------
|
||||
app/src/main/res/xml/pref_misc.xml | 7 ++--
|
||||
3 files changed, 10 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/app/src/main/java/me/phh/treble/app/Misc.kt b/app/src/main/java/me/phh/treble/app/Misc.kt
|
||||
index cc01af2..fc59faf 100644
|
||||
--- a/app/src/main/java/me/phh/treble/app/Misc.kt
|
||||
+++ b/app/src/main/java/me/phh/treble/app/Misc.kt
|
||||
@@ -303,6 +303,10 @@ object Misc: EntryStartup {
|
||||
val value = sp.getBoolean(key, false)
|
||||
SystemProperties.set("persist.sys.phh.wifi_disable_sae", if (value) "true" else "false")
|
||||
}
|
||||
+ MiscSettings.securize -> {
|
||||
+ val value = sp.getBoolean(key, false)
|
||||
+ SystemProperties.set("persist.sys.phh.securize", if (value) "true" else "false")
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -330,5 +334,6 @@ object Misc: EntryStartup {
|
||||
spListener.onSharedPreferenceChanged(sp, MiscSettings.noHwcomposer)
|
||||
spListener.onSharedPreferenceChanged(sp, MiscSettings.storageFUSE)
|
||||
spListener.onSharedPreferenceChanged(sp, MiscSettings.dt2w)
|
||||
+ spListener.onSharedPreferenceChanged(sp, MiscSettings.securize)
|
||||
}
|
||||
}
|
||||
diff --git a/app/src/main/java/me/phh/treble/app/MiscSettings.kt b/app/src/main/java/me/phh/treble/app/MiscSettings.kt
|
||||
index 4ce9d97..f227ce1 100644
|
||||
--- a/app/src/main/java/me/phh/treble/app/MiscSettings.kt
|
||||
+++ b/app/src/main/java/me/phh/treble/app/MiscSettings.kt
|
||||
@@ -56,39 +56,6 @@ class MiscSettingsFragment : SettingsFragment() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
super.onCreatePreferences(savedInstanceState, rootKey)
|
||||
|
||||
- val securizePref = findPreference<Preference>(MiscSettings.securize)
|
||||
- securizePref!!.setOnPreferenceClickListener {
|
||||
- val builder = AlertDialog.Builder( this.getActivity() )
|
||||
- builder.setTitle(getString(R.string.remove_root))
|
||||
- builder.setMessage(getString(R.string.continue_question))
|
||||
-
|
||||
- builder.setPositiveButton(android.R.string.yes) { dialog, which ->
|
||||
-
|
||||
- var cmds = listOf(
|
||||
- arrayOf("/sbin/su", "-c", "/system/bin/phh-securize.sh"),
|
||||
- arrayOf("/system/xbin/su", "-c", "/system/bin/phh-securize.sh"),
|
||||
- arrayOf("/system/xbin/phh-su", "-c", "/system/bin/phh-securize.sh"),
|
||||
- arrayOf("/sbin/su", "0", "/system/bin/phh-securize.sh"),
|
||||
- arrayOf("/system/xbin/su", "0", "/system/bin/phh-securize.sh"),
|
||||
- arrayOf("/system/xbin/phh-su", "0", "/system/bin/phh-securize.sh")
|
||||
- )
|
||||
- for (cmd in cmds) {
|
||||
- try {
|
||||
- Runtime.getRuntime().exec(cmd).waitFor()
|
||||
- break
|
||||
- } catch (t: Throwable) {
|
||||
- Log.d("PHH", "Failed to exec \"" + cmd.joinToString(separator = " ") + "\", skipping")
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- builder.setNegativeButton(android.R.string.no) { dialog, which ->
|
||||
- }
|
||||
-
|
||||
- builder.show()
|
||||
- return@setOnPreferenceClickListener true
|
||||
- }
|
||||
-
|
||||
val removeTelephonyPref = findPreference<Preference>(MiscSettings.removeTelephony)
|
||||
removeTelephonyPref!!.setOnPreferenceClickListener {
|
||||
|
||||
diff --git a/app/src/main/res/xml/pref_misc.xml b/app/src/main/res/xml/pref_misc.xml
|
||||
index 9a12f16..3d6f7de 100644
|
||||
--- a/app/src/main/res/xml/pref_misc.xml
|
||||
+++ b/app/src/main/res/xml/pref_misc.xml
|
||||
@@ -193,8 +193,11 @@
|
||||
android:entryValues="@array/pref_misc_fod_color_values"
|
||||
android:key="key_misc_fod_color"
|
||||
android:title="Under-display fp color" />
|
||||
- <Preference android:title="Securize"
|
||||
- android:key="key_misc_securize" />
|
||||
+ <CheckBoxPreference
|
||||
+ android:defaultValue="false"
|
||||
+ android:key="key_misc_securize"
|
||||
+ android:title="Spoof system properties"
|
||||
+ android:summary="For better chances of passing SafetyNet\nMight cause bootloop on some devices" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="Debugging">
|
||||
<Preference android:title="Debug Sensors">
|
||||
--
|
||||
2.34.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user