Initial changes for WiFi Bringup [2/2]
Changes include most of the configurations from msm8953_64
project but cleaned up, sorted and aligned.
* Add WiFi HAL service as well.
* Move WiFi and Tethering related overlay configs
to RROs.
Issue: FP3-A11#226
Change-Id: I4e0230e5adf28ce969b1d2508d2d882ce415f51b
diff --git a/common/base.mk b/common/base.mk
index 1784772..d2838b8 100644
--- a/common/base.mk
+++ b/common/base.mk
@@ -51,14 +51,6 @@
QTI_TELEPHONY_UTILS += qti_telephony_utils.xml
-#HOSTAPD
-HOSTAPD := hostapd
-HOSTAPD += hostapd.accept
-HOSTAPD += hostapd.deny
-HOSTAPD += hostapd_cli
-HOSTAPD += hostapd_default.conf
-
-
#INIT
INIT := fstab.qcom
INIT += init.class_main.sh
@@ -118,12 +110,6 @@
STK := Stk
-#WPA
-WPA := wpa_supplicant.conf
-WPA += wpa_cli
-WPA += wpa_supplicant
-
-
#ZLIB
ZLIB_HOST := minigzip
@@ -138,9 +124,7 @@
#WLAN
-WLAN := prima_wlan.ko
-WLAN += pronto_wlan.ko
-WLAN += qca_cld_wlan.ko
+WLAN := pronto_wlan.ko
ifneq ($(TARGET_HAS_LOW_RAM),true)
@@ -178,7 +162,6 @@
PRODUCT_PACKAGES += $(DELAUN)
PRODUCT_PACKAGES += $(E2FSPROGS)
PRODUCT_PACKAGES += $(HIDL_WRAPPER)
-PRODUCT_PACKAGES += $(HOSTAPD)
PRODUCT_PACKAGES += $(INIT)
PRODUCT_PACKAGES += $(IPROUTE2)
PRODUCT_PACKAGES += $(IPTABLES)
@@ -190,7 +173,6 @@
PRODUCT_PACKAGES += $(STK)
PRODUCT_PACKAGES += $(TINY_ALSA_TEST_APPS)
PRODUCT_PACKAGES += $(WLAN)
-PRODUCT_PACKAGES += $(WPA)
PRODUCT_PACKAGES += librs_jni
PRODUCT_PACKAGES += libion
diff --git a/device.mk b/device.mk
index 4e83d3b..8f1f067 100644
--- a/device.mk
+++ b/device.mk
@@ -482,6 +482,49 @@
android.hardware.vibrator@1.0-service
+# WiFi
+# WLAN drivers
+PRODUCT_COPY_FILES += \
+ $(FP_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini \
+ $(FP_PATH)/wifi/WCNSS_wlan_dictionary.dat:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_wlan_dictionary.dat \
+ $(FP_PATH)/wifi/WCNSS_qcom_wlan_nv.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/wlan/prima/WCNSS_qcom_wlan_nv.bin # From Android 10
+
+# Flag to check if wcnss_service is built from source
+TARGET_USE_WCNSS_HAL := false
+
+# If building from source then drop proprietary dependency
+ifeq ($(TARGET_USE_WCNSS_HAL),true)
+TARGET_USES_QCOM_WCNSS_QMI := false
+endif
+
+# WiFi HAL
+PRODUCT_PACKAGES += \
+ android.hardware.wifi@1.0-service
+
+# WiFi Components
+PRODUCT_PACKAGES += \
+ hostapd \
+ hostapd.accept \
+ hostapd.deny \
+ hostapd_cli \
+ hostapd_default.conf \
+ libnl \
+ libqsap_sdk \
+ libwcnss_qmi \
+ libwifi-hal-qcom \
+ libwpa_client \
+ p2p_supplicant_overlay.conf \
+ vendor.qti.hardware.wifi.supplicant@1.0.vendor \
+ wcnss_service \
+ wificond \
+ wpa_cli \
+ wpa_supplicant.conf \
+ wpa_supplicant \
+ wpa_supplicant_overlay.conf \
+ WifiOverlay \
+ TetheringConfigOverlay
+
+
# Call the proprietary setup
# Call this in the end so that flags if required can be utilized.
$(call inherit-product, device/fairphone/fp3-proprietary/device-vendor.mk)
diff --git a/overlay/frameworks/opt/net/wifi/service/res/values/config.xml b/overlay/frameworks/opt/net/wifi/service/res/values/config.xml
deleted file mode 100644
index 24e3c8d..0000000
--- a/overlay/frameworks/opt/net/wifi/service/res/values/config.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--Copyright (c) 2021, The Linux Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
- * Neither the name of The Linux Foundation nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--->
-
-<resources>
-
- <!-- Enable ACS (auto channel selection) for Wifi hotspot (SAP) -->
- <bool translatable="false" name="config_wifi_softap_acs_supported">false</bool>
-
- <!-- Enable 802.11ac for Wifi hotspot (SAP) -->
- <bool translatable="false" name="config_wifi_softap_ieee80211ac_supported">false</bool>
-
-</resources>
diff --git a/rro_overlays/TetheringOverlay/Android.bp b/rro_overlays/TetheringOverlay/Android.bp
new file mode 100644
index 0000000..05acd79
--- /dev/null
+++ b/rro_overlays/TetheringOverlay/Android.bp
@@ -0,0 +1,6 @@
+runtime_resource_overlay {
+ name: "TetheringConfigOverlay",
+ theme: "TetheringConfigOverlay",
+ sdk_version: "current",
+ vendor: true
+}
diff --git a/rro_overlays/TetheringOverlay/AndroidManifest.xml b/rro_overlays/TetheringOverlay/AndroidManifest.xml
new file mode 100644
index 0000000..9fc99bb
--- /dev/null
+++ b/rro_overlays/TetheringOverlay/AndroidManifest.xml
@@ -0,0 +1,11 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.networkstack.tethering.fairphone.FP3"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:hasCode="false" />
+ <overlay
+ android:targetPackage="com.android.networkstack.tethering"
+ android:targetName="TetheringConfig"
+ android:isStatic="true"
+ android:priority="0"/>
+</manifest>
diff --git a/rro_overlays/TetheringOverlay/res/values/config.xml b/rro_overlays/TetheringOverlay/res/values/config.xml
new file mode 100644
index 0000000..024ce35
--- /dev/null
+++ b/rro_overlays/TetheringOverlay/res/values/config.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2020, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Dhcp range (min, max) to use for tethering purposes -->
+ <!-- USB is 192.168.42.1 and 255.255.255.0
+ Wifi is 192.168.43.1 and 255.255.255.0
+ BT is limited to max default of 5 connections. 192.168.44.1 to 192.168.48.1
+ with 255.255.255.0
+ P2P is 192.168.49.1 and 255.255.255.0
+ Wigig is 192.168.50.1 and 255.255.255.0
+ Wigig P2P is 192.168.51.1 and 255.255.255.0
+ -->
+ <string-array translatable="false" name="config_tether_dhcp_range">
+ <item>192.168.42.2</item>
+ <item>192.168.42.254</item>
+ <item>192.168.43.2</item>
+ <item>192.168.43.254</item>
+ <item>192.168.44.2</item>
+ <item>192.168.44.254</item>
+ <item>192.168.45.2</item>
+ <item>192.168.45.254</item>
+ <item>192.168.46.2</item>
+ <item>192.168.46.254</item>
+ <item>192.168.47.2</item>
+ <item>192.168.47.254</item>
+ <item>192.168.48.2</item>
+ <item>192.168.48.254</item>
+ <item>192.168.49.2</item>
+ <item>192.168.49.254</item>
+ <item>192.168.50.2</item>
+ <item>192.168.50.254</item>
+ <item>192.168.51.2</item>
+ <item>192.168.51.254</item>
+ </string-array>
+
+ <!-- Array of ConnectivityManager.TYPE_xxxx values allowable for tethering -->
+ <!-- Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
+ <!== [0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ <item>0</item>
+ <item>1</item>
+ <item>5</item>
+ <item>7</item>
+ </integer-array>
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
+ USB interfaces. If the device doesn't want to support tethering over USB this should
+ be empty. An example would be "usb.*" -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ <item>"usb\\d"</item>
+ <item>"rndis\\d"</item>
+ </string-array>
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
+ Wifi interfaces. If the device doesn't want to support tethering over Wifi this
+ should be empty. An example would be "softap.*" -->
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ <item>"wlan\\d"</item>
+ <item>"wigig0"</item>
+ <item>"softap0"</item>
+ </string-array>
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
+ bluetooth interfaces. If the device doesn't want to support tethering over bluetooth this
+ should be empty. -->
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ <item>"bnep\\d"</item>
+ <item>"bt-pan"</item>
+ </string-array>
+</resources>
diff --git a/rro_overlays/WifiOverlay/Android.bp b/rro_overlays/WifiOverlay/Android.bp
new file mode 100644
index 0000000..c602c22
--- /dev/null
+++ b/rro_overlays/WifiOverlay/Android.bp
@@ -0,0 +1,6 @@
+runtime_resource_overlay {
+ name: "WifiOverlay",
+ theme: "WifiOverlay",
+ sdk_version: "current",
+ vendor: true
+}
diff --git a/rro_overlays/WifiOverlay/AndroidManifest.xml b/rro_overlays/WifiOverlay/AndroidManifest.xml
new file mode 100644
index 0000000..3ec43e8
--- /dev/null
+++ b/rro_overlays/WifiOverlay/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- Pixel specific wifi overlays -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.wifi.resources.fairphone.FP3"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:hasCode="false" />
+ <overlay
+ android:targetPackage="com.android.wifi.resources"
+ android:targetName="WifiCustomization"
+ android:isStatic="true"
+ android:priority="0"/>
+</manifest>
diff --git a/rro_overlays/WifiOverlay/res/values/config.xml b/rro_overlays/WifiOverlay/res/values/config.xml
new file mode 100644
index 0000000..b29019f
--- /dev/null
+++ b/rro_overlays/WifiOverlay/res/values/config.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. Do not translate.
+ NOTE: The naming convention is "config_camelCaseValue". Some legacy
+ entries do not follow the convention, but all new entries should. -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
+ <bool translatable="false" name="config_wifi_dual_band_support">true</bool>
+
+ <!-- Boolean indicating whether the wifi chipset supports background scanning mechanism.
+ This mechanism allows the host to remain in suspend state and the dongle to actively
+ scan and wake the host when a configured SSID is detected by the dongle. This chipset
+ capability can provide power savings when wifi needs to be always kept on. -->
+ <bool translatable="false" name="config_wifi_background_scan_support">true</bool>
+
+ <!-- Wifi driver supports batched scan -->
+ <bool translatable="false" name="config_wifi_batched_scan_supported">true</bool>
+
+ <!-- Boolean indicating whether or not to revert to default country code when cellular
+ radio is unable to find any MCC information to infer wifi country code from -->
+ <bool translatable="false" name="config_wifi_revert_country_code_on_cellular_loss">true</bool>
+
+ <!-- Enable ACS (auto channel selection) for Wifi hotspot (SAP) -->
+ <bool translatable="false" name="config_wifi_softap_acs_supported">false</bool>
+
+ <!-- Enable 802.11ac for Wifi hotspot (SAP) -->
+ <bool translatable="false" name="config_wifi_softap_ieee80211ac_supported">false</bool>
+
+ <!-- Boolean indicating whether or not wifi should turn off when emergency call is made -->
+ <bool translatable="false" name="config_wifi_turn_off_during_emergency_call">true</bool>
+
+ <!-- Enable WPA2 to WPA3 auto-upgrade -->
+ <bool translatable="false" name="config_wifiSaeUpgradeEnabled">false</bool>
+</resources>