aboutsummaryrefslogtreecommitdiff
path: root/rootdir
diff options
context:
space:
mode:
authorDavide Garberi <dade.garberi@gmail.com>2019-03-02 13:23:14 +0100
committerDavide Garberi <dade.garberi@gmail.com>2019-03-02 13:56:05 +0100
commit95f4617bec43046ca6d418b606175978eea22be2 (patch)
treeb9706466e41c6c85131d25696b7f7abf74c763ab /rootdir
parent56a0d4e8bca5cb53407e9d615ed5566e87f34c2b (diff)
msm8996-common: Set the hardware wlan mac using wcg_mac_tool
* Bin extracted from ZUI * Add init.wlan.sh to check if the mac address in wlan_mac.bin is already correct, if not correct it * Run both the bins on boot completed as wcg can't run earlier * Label both the bins and address their denials Change-Id: I7a8001465ec9c3d69bd228efa57dddfdd8e3c6f3
Diffstat (limited to 'rootdir')
-rw-r--r--rootdir/Android.mk8
-rw-r--r--rootdir/bin/init.wlan.sh24
-rw-r--r--rootdir/etc/init.qcom.rc18
3 files changed, 50 insertions, 0 deletions
diff --git a/rootdir/Android.mk b/rootdir/Android.mk
index 6f61c5b..c7b6f0a 100644
--- a/rootdir/Android.mk
+++ b/rootdir/Android.mk
@@ -10,6 +10,14 @@ LOCAL_SRC_FILES := bin/init.qcom.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
+include $(CLEAR_VARS)
+LOCAL_MODULE := init.wlan.sh
+LOCAL_MODULE_TAGS := optional eng
+LOCAL_MODULE_CLASS := ETC
+LOCAL_SRC_FILES := bin/init.wlan.sh
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
+include $(BUILD_PREBUILT)
+
# Common init scripts
include $(CLEAR_VARS)
diff --git a/rootdir/bin/init.wlan.sh b/rootdir/bin/init.wlan.sh
new file mode 100644
index 0000000..36c0430
--- /dev/null
+++ b/rootdir/bin/init.wlan.sh
@@ -0,0 +1,24 @@
+#! /vendor/bin/sh
+
+#
+# Copyright (C) 2019 The LineageOS 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.
+#
+
+# Set the proper hardware based wlan mac
+if [[ ! -f /persist/wlan_mac.bin ]] || [[ $(cat /persist/wlan_mac.bin | grep Intf0MacAddress | sed 's/Intf0MacAddress=//') != $(getprop sys.wifimac | sed 's/://g') ]]; then
+ wifi_mac=$(getprop sys.wifimac | sed 's/://g');
+echo "Intf0MacAddress=$wifi_mac
+END" > /persist/wlan_mac.bin
+fi;
diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc
index dc95d51..5d1e1ae 100644
--- a/rootdir/etc/init.qcom.rc
+++ b/rootdir/etc/init.qcom.rc
@@ -574,6 +574,24 @@ service vendor.ppd /vendor/bin/mm-pp-dpps
disabled
writepid /dev/cpuset/system-background/tasks
+service wcg_mac_tool /vendor/bin/wcg_mac_tool
+ class late_start
+ group root
+ user root
+ disabled
+ oneshot
+
+service wlan-sh /vendor/bin/init.wlan.sh
+ class late_start
+ user root
+ group root
+ disabled
+ oneshot
+
+on property:sys.boot_completed=1
+ start wcg_mac_tool
+ start wlan-sh
+
on property:init.svc.vendor.hwcomposer-2-1=stopped
stop vendor.ppd