diff --git a/BoardConfig.mk b/BoardConfig.mk
index aaa3e5f..a49c192 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -198,7 +198,18 @@ DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \
# VNDK
BOARD_VNDK_VERSION := current
-# Wifi
+# Wi-Fi
+WPA_SUPPLICANT_VERSION := VER_0_8_X
+BOARD_WPA_SUPPLICANT_DRIVER := NL80211
+BOARD_HOSTAPD_DRIVER := NL80211
+WIFI_DRIVER_FW_PATH_PARAM := /dev/wmtWifi
+WIFI_DRIVER_FW_PATH_STA := STA
+WIFI_DRIVER_FW_PATH_AP := AP
+WIFI_DRIVER_FW_PATH_P2P := P2P
+WIFI_DRIVER_STATE_CTRL_PARAM := /dev/wmtWifi
+WIFI_DRIVER_STATE_ON := 1
+WIFI_DRIVER_STATE_OFF := 0
+WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
WIFI_HIDL_FEATURE_DUAL_INTERFACE := true
# Inherit the proprietary files
diff --git a/configs/wifi/vendor_hals/vendor_hals.xml b/configs/wifi/vendor_hals/vendor_hals.xml
new file mode 100644
index 0000000..735bf97
--- /dev/null
+++ b/configs/wifi/vendor_hals/vendor_hals.xml
@@ -0,0 +1,5 @@
+
+
+ /vendor/lib64/libwifi-hal-mtk.so
+ 1
+
diff --git a/device.mk b/device.mk
index 76d9069..4dd5737 100644
--- a/device.mk
+++ b/device.mk
@@ -481,30 +481,17 @@ PRODUCT_PACKAGES += \
# Wi-Fi
PRODUCT_PACKAGES += \
- android.hardware.wifi.supplicant@1.0.vendor \
- android.hardware.wifi.supplicant@1.1.vendor \
- android.hardware.wifi.supplicant@1.2.vendor \
- android.hardware.wifi.supplicant@1.3.vendor \
- android.hardware.wifi.supplicant@1.4.vendor \
- android.hardware.wifi.hostapd@1.0.vendor \
- android.hardware.wifi.hostapd@1.1.vendor \
- android.hardware.wifi.hostapd@1.2.vendor \
- android.hardware.wifi.hostapd@1.3.vendor \
+ wpa_supplicant \
+ hostapd \
+ android.hardware.wifi@1.0-service-lazy
+
+PRODUCT_PACKAGES += \
android.hardware.tetheroffload.config@1.0.vendor \
android.hardware.tetheroffload.control@1.0.vendor \
android.hardware.tetheroffload.control@1.1.vendor
-PRODUCT_PACKAGES += \
- android.hardware.wifi@1.0-service-lazy.rosemary
-
-PRODUCT_PACKAGES += \
- libkeystore-wifi-hidl \
- libkeystore-engine-wifi-hidl
-
PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/configs/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \
- $(LOCAL_PATH)/configs/wifi/wpa_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf \
- $(LOCAL_PATH)/configs/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf
+ $(call find-copy-subdir-files,*,$(LOCAL_PATH)/configs/wifi/,$(TARGET_COPY_OUT_VENDOR)/etc/wifi)
# Inherit the proprietary files
$(call inherit-product, vendor/xiaomi/rosemary/rosemary-vendor.mk)
diff --git a/proprietary-files.txt b/proprietary-files.txt
index 595c28d..b298ab0 100644
--- a/proprietary-files.txt
+++ b/proprietary-files.txt
@@ -2584,6 +2584,15 @@ vendor/lib64/vendor.microtrust.hardware.soter@1.0.so
vendor/lib/hw/sound_trigger.primary.default.so
vendor/lib64/hw/sound_trigger.primary.default.so
+# Tether Offload
+vendor/bin/hw/tetheroffloadservice
+vendor/bin/netdagent
+vendor/etc/init/netdagent.rc
+vendor/etc/init/tetheroffloadservice.rc
+vendor/lib64/libforkexecwrap.so
+vendor/lib64/libifcutils_mtk.so
+vendor/lib64/vendor.mediatek.hardware.netdagent@1.0.so
+
# TEE
vendor/bin/teei_daemon
vendor/etc/init/microtrust.rc
@@ -2669,20 +2678,12 @@ vendor/etc/init/android.hardware.usb@1.2-service-mediatekv2.rc
vendor/etc/vintf/manifest/android.hardware.usb@1.2-service-mediatekv2.xml
# WiFi
-vendor/bin/hw/hostapd
-vendor/bin/hw/tetheroffloadservice
-vendor/bin/hw/wpa_supplicant
vendor/bin/wlan_assistant
vendor/bin/wmt_launcher
vendor/bin/wmt_loader
-vendor/etc/init/android.hardware.wifi.supplicant-service.rc
-vendor/etc/init/hostapd.android.rc
vendor/etc/init/init.wlan_drv.rc
vendor/etc/init/init.wmt_drv.rc
-vendor/etc/init/tetheroffloadservice.rc
vendor/etc/init/wlan_assistant.rc
--vendor/etc/vintf/manifest/android.hardware.wifi.hostapd.xml
--vendor/etc/vintf/manifest/android.hardware.wifi.supplicant.xml
vendor/lib/libapmonitor_vendor.so
vendor/lib/meta_wifi_data.so
vendor/lib/vendor.mediatek.hardware.apmonitor@2.0.so
diff --git a/vendor.prop b/vendor.prop
index 4970864..0924a74 100644
--- a/vendor.prop
+++ b/vendor.prop
@@ -273,6 +273,7 @@ persist.vendor.connsys.patch.version=-1
persist.vendor.connsys.dynamic.dump=0
vendor.connsys.driver.ready=no
ro.vendor.mtk_wfd_support=1
+ro.vendor.wlan.chrdev=wmt_chrdev_wifi
ro.vendor.wlan.gen=gen4m
ro.vendor.wfd.iframesize.level=0
ro.vendor.connsys.dedicated.log=1
diff --git a/wifi/Android.mk b/wifi/Android.mk
deleted file mode 100644
index 8ae1355..0000000
--- a/wifi/Android.mk
+++ /dev/null
@@ -1,57 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := android.hardware.wifi@1.0-service-lazy.rosemary.rc
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := android.hardware.wifi@1.0-service.rosemary.xml
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/vintf/manifest
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
-
-LOCAL_PATH := hardware/interfaces/wifi/1.6/default
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := android.hardware.wifi@1.0-service-lazy.rosemary
-LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_PROPRIETARY_MODULE := true
-LOCAL_CPPFLAGS := -Wall -Werror -Wextra
-LOCAL_CFLAGS := -DLAZY_SERVICE
-LOCAL_C_INCLUDES := frameworks/opt/net/wifi/libwifi_hal/include
-LOCAL_HEADER_LIBRARIES := libhardware_legacy_headers
-
-LOCAL_REQUIRED_MODULES := \
- android.hardware.wifi@1.0-service-lazy.rosemary.rc \
- android.hardware.wifi@1.0-service.rosemary.xml
-
-LOCAL_SRC_FILES := \
- service.cpp
-
-LOCAL_SHARED_LIBRARIES := \
- libbase \
- libcutils \
- libhidlbase \
- liblog \
- libnl \
- libutils \
- libwifi-hal-mtk \
- libwifi-system-iface \
- libxml2 \
- android.hardware.wifi@1.0 \
- android.hardware.wifi@1.1 \
- android.hardware.wifi@1.2 \
- android.hardware.wifi@1.3 \
- android.hardware.wifi@1.4 \
- android.hardware.wifi@1.5 \
- android.hardware.wifi@1.6
-
-LOCAL_STATIC_LIBRARIES := android.hardware.wifi@1.0-service-lib
-
-include $(BUILD_EXECUTABLE)
diff --git a/wifi/android.hardware.wifi@1.0-service-lazy.rosemary.rc b/wifi/android.hardware.wifi@1.0-service-lazy.rosemary.rc
deleted file mode 100644
index 5de716a..0000000
--- a/wifi/android.hardware.wifi@1.0-service-lazy.rosemary.rc
+++ /dev/null
@@ -1,14 +0,0 @@
-service vendor.wifi_hal_legacy /vendor/bin/hw/android.hardware.wifi@1.0-service-lazy.rosemary
- interface android.hardware.wifi@1.0::IWifi default
- interface android.hardware.wifi@1.1::IWifi default
- interface android.hardware.wifi@1.2::IWifi default
- interface android.hardware.wifi@1.3::IWifi default
- interface android.hardware.wifi@1.4::IWifi default
- interface android.hardware.wifi@1.5::IWifi default
- interface android.hardware.wifi@1.6::IWifi default
- oneshot
- disabled
- class hal
- capabilities NET_ADMIN NET_RAW SYS_MODULE
- user wifi
- group wifi gps
diff --git a/wifi/android.hardware.wifi@1.0-service.rosemary.xml b/wifi/android.hardware.wifi@1.0-service.rosemary.xml
deleted file mode 100644
index 771fbaa..0000000
--- a/wifi/android.hardware.wifi@1.0-service.rosemary.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- android.hardware.wifi
- hwbinder
- 1.6
-
- IWifi
- default
-
-
-