From b739414901d9cd13eda7c644e2873edf41fa9215 Mon Sep 17 00:00:00 2001 From: Chris Dearman <chris.dearman@imgtec.com> Date: Thu, 25 Feb 2016 11:21:51 -0800 Subject: [PATCH] Set WiFi MAC addresses from OTP data Bug:27479111 Change-Id: I44ede163dfed607d103fc81da2b21694976c5508 --- peripheral/wifi/uccp420/Android.mk | 10 ++++++++++ peripheral/wifi/uccp420/peripheral.mk | 8 ++++++++ peripheral/wifi/uccp420/sepolicy/file_contexts | 1 + peripheral/wifi/uccp420/sepolicy/wifisetmac.te | 12 ++++++++++++ peripheral/wifi/uccp420/uccp420.rc | 3 ++- peripheral/wifi/uccp420/wifisetmac | 11 +++++++++++ 6 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 peripheral/wifi/uccp420/sepolicy/file_contexts create mode 100644 peripheral/wifi/uccp420/sepolicy/wifisetmac.te create mode 100755 peripheral/wifi/uccp420/wifisetmac diff --git a/peripheral/wifi/uccp420/Android.mk b/peripheral/wifi/uccp420/Android.mk index 590659d..1471e52 100644 --- a/peripheral/wifi/uccp420/Android.mk +++ b/peripheral/wifi/uccp420/Android.mk @@ -32,4 +32,14 @@ LOCAL_MODULE_TAGS := optional include $(BUILD_SHARED_LIBRARY) +include $(CLEAR_VARS) + +LOCAL_MODULE := wifisetmac +LOCAL_SRC_FILES := wifisetmac +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := EXECUTABLES +LOCAL_MODULE_PATH := $(TARGET_OUT)/bin + +include $(BUILD_PREBUILT) + endif diff --git a/peripheral/wifi/uccp420/peripheral.mk b/peripheral/wifi/uccp420/peripheral.mk index 708d995..97ea19e 100644 --- a/peripheral/wifi/uccp420/peripheral.mk +++ b/peripheral/wifi/uccp420/peripheral.mk @@ -14,6 +14,8 @@ # limitations under the License. # +LOCAL_PATH := hardware/bsp/imagination/peripheral/wifi/uccp420 + # UCCP420 WIFI Firmware UCCP420_WIFI_FW_SRC = vendor/bsp/imagination/peripheral/wifi/uccp420_firmware UCCP420_WIFI_FW_DST = system/vendor/firmware/img/uccp420wlan @@ -22,5 +24,11 @@ PRODUCT_COPY_FILES += \ $(UCCP420_WIFI_FW_SRC)/v4_5_8/MAC_LOADER.ldr:$(UCCP420_WIFI_FW_DST)/MAC_LOADER.ldr \ $(UCCP420_WIFI_FW_SRC)/v4_5_8/MCP_LOADER.ldr:$(UCCP420_WIFI_FW_DST)/MCP_LOADER.ldr +BOARD_SEPOLICY_DIRS += \ + $(LOCAL_PATH)/sepolicy + +DEVICE_PACKAGES += \ + wifisetmac + WIFI_DRIVER_HAL_MODULE := wifi_driver.$(soc_name) WIFI_DRIVER_HAL_PERIPHERAL := uccp420 diff --git a/peripheral/wifi/uccp420/sepolicy/file_contexts b/peripheral/wifi/uccp420/sepolicy/file_contexts new file mode 100644 index 0000000..c62793f --- /dev/null +++ b/peripheral/wifi/uccp420/sepolicy/file_contexts @@ -0,0 +1 @@ +/system/bin/wifisetmac u:object_r:wifisetmac_exec:s0 diff --git a/peripheral/wifi/uccp420/sepolicy/wifisetmac.te b/peripheral/wifi/uccp420/sepolicy/wifisetmac.te new file mode 100644 index 0000000..415a726 --- /dev/null +++ b/peripheral/wifi/uccp420/sepolicy/wifisetmac.te @@ -0,0 +1,12 @@ +# Domain for wifisetmac +type wifisetmac, domain; +type wifisetmac_exec, exec_type, file_type; + +brillo_domain(wifisetmac) +allow_crash_reporter(wifisetmac) + +allow wifisetmac shell_exec:file read; +allow wifisetmac proc:file write; +allow wifisetmac system_file:file execute_no_trans; +allow wifisetmac mtd_device:dir search; +allow wifisetmac mtd_device:chr_file { rw_file_perms }; diff --git a/peripheral/wifi/uccp420/uccp420.rc b/peripheral/wifi/uccp420/uccp420.rc index fe4657c..72a731a 100644 --- a/peripheral/wifi/uccp420/uccp420.rc +++ b/peripheral/wifi/uccp420/uccp420.rc @@ -1,5 +1,6 @@ -# bcsp configuration +# uucp420 configuration # Tell the kernel driver where to find the firmware on early-boot write /sys/module/firmware_class/parameters/path /vendor/firmware + exec /system/bin/wifisetmac diff --git a/peripheral/wifi/uccp420/wifisetmac b/peripheral/wifi/uccp420/wifisetmac new file mode 100755 index 0000000..08e845a --- /dev/null +++ b/peripheral/wifi/uccp420/wifisetmac @@ -0,0 +1,11 @@ +#!/system/bin/sh +# +# Initialize WiFi MAC addresses + +if [ -x /system/bin/proddata ]; then + mac0=`proddata read MAC_0` + mac1=`proddata read MAC_1` + echo "vif_macs=$mac0$mac1" > /proc/uccp420/params +fi + +exit 0 -- GitLab