Merge changes from topic "move_supplicant_conf_file"

* changes:
  wpa_supplicant(hidl): Use overlay conf file only if it exists
  wpa_supplicant(hidl): Check for template conf files in /system
  wpa_supplicant(hidl): Move conf files to /data/vendor/wifi/wpa
diff --git a/hostapd/hidl/1.0/hostapd.cpp b/hostapd/hidl/1.0/hostapd.cpp
index 3878037..ee8cfc8 100644
--- a/hostapd/hidl/1.0/hostapd.cpp
+++ b/hostapd/hidl/1.0/hostapd.cpp
@@ -140,13 +140,17 @@
 	std::string hw_mode_as_string;
 	switch (iface_params.channelParams.band) {
 	case IHostapd::Band::BAND_2_4_GHZ:
-		hw_mode_as_string = "g";
+		hw_mode_as_string = "hw_mode=g";
 		break;
 	case IHostapd::Band::BAND_5_GHZ:
-		hw_mode_as_string = "a";
+		hw_mode_as_string = "hw_mode=a\n"
+		    "ht_capab=[HT40+]\n"
+		    "vht_oper_chwidth=1";
 		break;
 	case IHostapd::Band::BAND_ANY:
-		hw_mode_as_string = "any";
+		hw_mode_as_string = "hw_mode=any\n"
+		    "ht_capab=[HT40+]\n"
+		    "vht_oper_chwidth=1";
 		break;
 	default:
 		wpa_printf(MSG_ERROR, "Invalid band");
@@ -163,7 +167,7 @@
 	    "%s\n"
 	    "ieee80211n=%d\n"
 	    "ieee80211ac=%d\n"
-	    "hw_mode=%s\n"
+	    "%s\n"
 	    "ignore_broadcast_ssid=%d\n"
 	    "wowlan_triggers=any\n"
 	    "%s\n",
diff --git a/src/crypto/tls_openssl.c b/src/crypto/tls_openssl.c
index 988c9d2..7243d9f 100644
--- a/src/crypto/tls_openssl.c
+++ b/src/crypto/tls_openssl.c
@@ -116,6 +116,20 @@
 #include <openssl/pem.h>
 #include <keystore/keystore_get.h>
 
+#include <log/log.h>
+#include <log/log_event_list.h>
+
+#define CERT_VALIDATION_FAILURE 210033
+
+static void log_cert_validation_failure(const char *reason)
+{
+	android_log_context ctx = create_android_logger(CERT_VALIDATION_FAILURE);
+	android_log_write_string8(ctx, reason);
+	android_log_write_list(ctx, LOG_ID_SECURITY);
+	android_log_destroy(&ctx);
+}
+
+
 static BIO * BIO_from_keystore(const char *key)
 {
 	BIO *bio = NULL;
@@ -1787,6 +1801,10 @@
 	struct wpabuf *cert = NULL;
 	struct tls_context *context = conn->context;
 
+#ifdef ANDROID
+	log_cert_validation_failure(err_str);
+#endif
+
 	if (context->event_cb == NULL)
 		return;
 
diff --git a/src/utils/os_unix.c b/src/utils/os_unix.c
index 3f6388d..381846a 100644
--- a/src/utils/os_unix.c
+++ b/src/utils/os_unix.c
@@ -341,22 +341,28 @@
 	gid_t groups[] = { ANDROID_SETGROUPS_OVERRIDE };
 
 	if (!gid_wifi || !uid_wifi) return -1;
+	setgroups(ARRAY_SIZE(groups), groups);
 #else /* ANDROID_SETGROUPS_OVERRIDE */
-	gid_t groups[3];
+	gid_t groups[4];
+	int group_idx = 0;
 
 	if (!gid_wifi || !uid_wifi) return -1;
-	groups[0] = gid_wifi;
+	groups[group_idx] = gid_wifi;
 
 	grp = getgrnam("inet");
-	groups[1] = grp ? grp->gr_gid : 0;
-	if (!groups[1]) return -1;
+	groups[++group_idx] = grp ? grp->gr_gid : 0;
+	if (!groups[group_idx]) return -1;
 
 	grp = getgrnam("keystore");
-	groups[2] = grp ? grp->gr_gid : 0;
-	if (!groups[2]) return -1;
-#endif /* ANDROID_SETGROUPS_OVERRIDE */
+	groups[++group_idx] = grp ? grp->gr_gid : 0;
+	if (!groups[group_idx]) return -1;
 
-	setgroups(ARRAY_SIZE(groups), groups);
+	grp = getgrnam("log");
+	groups[++group_idx] = grp ? grp->gr_gid : 0;
+	if (!groups[group_idx]) group_idx--;
+
+	setgroups(group_idx + 1, groups);
+#endif /* ANDROID_SETGROUPS_OVERRIDE */
 
 	prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);
 
diff --git a/wpa_supplicant/eap_proxy_qmi.mk b/wpa_supplicant/eap_proxy_qmi.mk
index fe0a4a9..535be77 100644
--- a/wpa_supplicant/eap_proxy_qmi.mk
+++ b/wpa_supplicant/eap_proxy_qmi.mk
@@ -32,6 +32,6 @@
 L_CFLAGS += -DCONFIG_EAP_PROXY_MSM8994_TARGET
 endif
 
-#ANDROID_SETGROUPS_OVERRIDE := AID_RADIO AID_WIFI AID_KEYSTORE AID_DIAG AID_INET AID_QCOM_DIAG AID_NET_RAW
-L_CFLAGS += -DANDROID_SETGROUPS_OVERRIDE=1001,1010,1017,2002,1003,3009,3004
+#ANDROID_SETGROUPS_OVERRIDE := AID_RADIO AID_WIFI AID_KEYSTORE AID_DIAG AID_INET AID_QCOM_DIAG AID_NET_RAW AID_LOG
+L_CFLAGS += -DANDROID_SETGROUPS_OVERRIDE=1001,1010,1017,2002,1003,3009,3004,1007
 endif