RM6785: Load SoC specific Wi-Fi HAL
* The Wi-Fi HAL has a factory set of methods
that can dynamically load SoC specific
Wi-Fi HAL implementations on the fly.
Signed-off-by: electimon <electimon@gmail.com>
Change-Id: Ib1e243f741a2a953eb60c5f1e5d67e706390610f
diff --git a/RM6785.mk b/RM6785.mk
index 373cf57..6b92947 100644
--- a/RM6785.mk
+++ b/RM6785.mk
@@ -347,8 +347,9 @@
WifiOverlayRM6785 \
hostapd \
wpa_supplicant \
- android.hardware.wifi-service.RM6785
+ android.hardware.wifi-service-lazy
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/wifi/txpowerctrl.cfg:$(TARGET_COPY_OUT_VENDOR)/firmware/txpowerctrl.cfg \
+ $(LOCAL_PATH)/configs/wifi/vendor_hals.xml:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/vendor_hals/vendor_hals.xml \
$(LOCAL_PATH)/configs/wifi/wifi.cfg:$(TARGET_COPY_OUT_VENDOR)/firmware/wifi.cfg
diff --git a/aidl/wifi/Android.bp b/aidl/wifi/Android.bp
deleted file mode 100644
index 41d45b3..0000000
--- a/aidl/wifi/Android.bp
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// Copyright (C) 2023-2024 The LineageOS Project
-//
-// SPDX-License-Identifier: Apache-2.0
-//
-
-cc_binary {
- name: "android.hardware.wifi-service.RM6785",
- vintf_fragments: ["android.hardware.wifi-service.RM6785.xml"],
- relative_install_path: "hw",
- proprietary: true,
- cppflags: [
- "-Wall",
- "-Werror",
- "-Wextra",
- ],
- include_dirs: ["frameworks/opt/net/wifi/libwifi_hal/include"],
- header_libs: ["libhardware_legacy_headers"],
- srcs: ["service.cpp"],
- shared_libs: [
- "libbase",
- "libbinder_ndk",
- "libcutils",
- "liblog",
- "libnl",
- "libutils",
- "libwifi-hal-mtk",
- "libwifi-system-iface",
- "libxml2",
- "android.hardware.wifi-V2-ndk",
- ],
- static_libs: ["android.hardware.wifi-service-lib"],
- init_rc: ["android.hardware.wifi-service.RM6785.rc"],
-}
diff --git a/aidl/wifi/android.hardware.wifi-service.RM6785.rc b/aidl/wifi/android.hardware.wifi-service.RM6785.rc
deleted file mode 100644
index 8675981..0000000
--- a/aidl/wifi/android.hardware.wifi-service.RM6785.rc
+++ /dev/null
@@ -1,6 +0,0 @@
-service vendor.wifi_hal_legacy /vendor/bin/hw/android.hardware.wifi-service.RM6785
- interface aidl android.hardware.wifi.IWifi/default
- class hal
- capabilities NET_ADMIN NET_RAW SYS_MODULE
- user wifi
- group wifi gps
diff --git a/aidl/wifi/android.hardware.wifi-service.RM6785.xml b/aidl/wifi/android.hardware.wifi-service.RM6785.xml
deleted file mode 120000
index fce80ba..0000000
--- a/aidl/wifi/android.hardware.wifi-service.RM6785.xml
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../hardware/interfaces/wifi/aidl/default/android.hardware.wifi-service.xml
\ No newline at end of file
diff --git a/aidl/wifi/service.cpp b/aidl/wifi/service.cpp
deleted file mode 120000
index 67afc76..0000000
--- a/aidl/wifi/service.cpp
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../hardware/interfaces/wifi/aidl/default/service.cpp
\ No newline at end of file
diff --git a/configs/wifi/vendor_hals.xml b/configs/wifi/vendor_hals.xml
new file mode 100644
index 0000000..735bf97
--- /dev/null
+++ b/configs/wifi/vendor_hals.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <WifiVendorHal version="1">
+ <path>/vendor/lib64/libwifi-hal-mtk.so</path>
+ <primary>1</primary>
+</WifiVendorHal>
diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts
index 9bf7bfc..4ff8efc 100644
--- a/sepolicy/vendor/file_contexts
+++ b/sepolicy/vendor/file_contexts
@@ -3,7 +3,6 @@
/(vendor|system/vendor)/bin/hw/android\.hardware\.biometrics\.fingerprint@[0-9]\.[0-9]-service\.RM6785 u:object_r:hal_fingerprint_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.light-service.RM6785 u:object_r:hal_light_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.power-service\.RM6785-libperfmgr u:object_r:hal_power_default_exec:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.wifi-service\.RM6785 u:object_r:hal_wifi_default_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.lineage\.touch@[0-9]\.[0-9]-service\.RM6785 u:object_r:hal_lineage_touch_default_exec:s0
# Devices