[Feature]add MT2731_MP2_MR2_SVN388 baseline version
Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/src/connectivity/network_cfg/wifi_mac/Android.mk b/src/connectivity/network_cfg/wifi_mac/Android.mk
new file mode 100644
index 0000000..97990f0
--- /dev/null
+++ b/src/connectivity/network_cfg/wifi_mac/Android.mk
@@ -0,0 +1,9 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+LOCAL_MODULE := wifi_bt_mac_write
+LOCAL_MODULE_TAGS := optional
+LOCAL_CFLAGS += -Wall
+LOCAL_SRC_FILES := main.c
+LOCAL_C_INCLUDES = $(LOCAL_PATH)/../wifi_mac
+$(warning $(LOCAL_C_INCLUDES))
+include $(BUILD_EXECUTABLE)
diff --git a/src/connectivity/network_cfg/wifi_mac/COPYING b/src/connectivity/network_cfg/wifi_mac/COPYING
new file mode 100644
index 0000000..8acc0e7
--- /dev/null
+++ b/src/connectivity/network_cfg/wifi_mac/COPYING
@@ -0,0 +1,31 @@
+Copyright Statement:
+
+This software/firmware and related documentation ("MediaTek Software") are
+protected under relevant copyright laws. The information contained herein is
+confidential and proprietary to MediaTek Inc. and/or its licensors. Without
+the prior written permission of MediaTek inc. and/or its licensors, any
+reproduction, modification, use or disclosure of MediaTek Software, and
+information contained herein, in whole or in part, shall be strictly
+prohibited.
+
+MediaTek Inc. (C) <YEAR> All rights reserved.
+
+BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
+ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
+WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
+NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH
+RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
+INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES
+TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
+RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
+OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MEDIATEK
+SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE
+RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S
+ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE
+RELEASED HEREUNDER WILL BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE
+MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
+CHARGE PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
diff --git a/src/connectivity/network_cfg/wifi_mac/Makefile b/src/connectivity/network_cfg/wifi_mac/Makefile
new file mode 100644
index 0000000..23d1f02
--- /dev/null
+++ b/src/connectivity/network_cfg/wifi_mac/Makefile
@@ -0,0 +1,23 @@
+#
+# Makefile for libwifitest
+#
+
+# definitions
+# ------------------------------------------------------------------------------
+CFLAGS = -pipe -g -Os $(EXTRA_CFLAGS)
+
+# library info
+# ------------------------------------------------------------------------------
+
+# wifitest tool info
+PROGRAM = wifi_bt_mac_write
+# objects
+# ------------------------------------------------------------------------------
+
+# compiling and linking
+# ------------------------------------------------------------------------------
+all: $(PROGRAM)
+clean:
+ -rm -f $(OBJS) $(LIB) $(PROGRAM)
+$(PROGRAM): main.c
+ $(CC) -L . -lm -o $@ $<
diff --git a/src/connectivity/network_cfg/wifi_mac/README b/src/connectivity/network_cfg/wifi_mac/README
new file mode 100644
index 0000000..f550023
--- /dev/null
+++ b/src/connectivity/network_cfg/wifi_mac/README
@@ -0,0 +1,27 @@
+This directory contains Wi-Fi test tool function
+
+
+WHAT IT DOES?
+=============
+It provide test tool for Wi-Fi HW related test
+
+
+HOW IT WAS BUILT?
+==================
+It needs the following libs from AOSP:
+1. libcutils
+
+and the following libs from MediaTek:
+1. libwifitest
+
+All source/dependency modules of this module are already put in
+'hardware/mediatek/wlan/wifi_hw_test_tool' folder.
+
+
+HOW TO USE IT?
+==============
+Files in this directory is used for Wi-Fi test tool
+
+
+All the source code of this directory were written by MediaTek co..
+
diff --git a/src/connectivity/network_cfg/wifi_mac/main.c b/src/connectivity/network_cfg/wifi_mac/main.c
new file mode 100644
index 0000000..0f3412f
--- /dev/null
+++ b/src/connectivity/network_cfg/wifi_mac/main.c
@@ -0,0 +1,141 @@
+
+/******************************************************************************
+* C O M P I L E R F L A G S
+*******************************************************************************
+*/
+
+/******************************************************************************
+* E X T E R N A L R E F E R E N C E S
+*******************************************************************************
+*/
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/sendfile.h>
+#include <fcntl.h>
+#include <linux/types.h>
+#include <limits.h>
+#include <getopt.h>
+#include <errno.h>
+#include <time.h>
+
+/******************************************************************************
+* C O N S T A N T S
+*******************************************************************************
+*/
+/* !defined(ANDROID) */
+
+
+/******************************************************************************
+* D A T A T Y P E S
+*******************************************************************************
+*/
+
+/******************************************************************************
+* M A C R O S
+*******************************************************************************
+*/
+
+/******************************************************************************
+* F U N C T I O N D E C L A R A T I O N S
+*******************************************************************************
+*/
+
+/******************************************************************************
+* P U B L I C D A T A
+*******************************************************************************
+*/
+
+/******************************************************************************
+* P R I V A T E D A T A
+*******************************************************************************
+*/
+char EEPROM_PATH[64] = "/data/misc/connectivity/EEPROM_MT7668.bin";
+
+/******************************************************************************
+* F U N C T I O N S
+*******************************************************************************
+*/
+int main(int argc, char *argv[]) {
+ FILE *fh = NULL, *frandom = NULL;
+ long random_value = 0;
+ int rc;
+ unsigned char uacEEPROMImage[6];
+
+ fh = fopen(EEPROM_PATH, "rb+");
+ if(fh != NULL) {
+ /*Check WIFI Mac address*/
+ fseek(fh, 0x4, SEEK_SET);
+ fread(uacEEPROMImage, sizeof(unsigned char), 6, fh);
+ if(uacEEPROMImage[0] == 0 && uacEEPROMImage[1] == 0 &&
+ uacEEPROMImage[2] == 0 && uacEEPROMImage[3] == 0 &&
+ uacEEPROMImage[4] == 0 && uacEEPROMImage[5] == 0)
+ {
+ //time(&timep);
+ /*Get Random value*/
+ frandom = fopen("/dev/urandom", "rb");
+ if (frandom == NULL) {
+ printf("Could not open /dev/urandom.\n");
+ return -1;
+ }
+
+ rc = fread(&random_value, 1, sizeof(long), frandom);
+ fclose(frandom);
+
+ //random_value = random();
+ printf("Time:%x\n", random_value);
+ uacEEPROMImage[0] = 0x00;
+ uacEEPROMImage[1] = 0x08;
+ uacEEPROMImage[2] = 0x22;
+ uacEEPROMImage[3] = random_value >> 16;
+ uacEEPROMImage[4] = random_value >> 8;
+ uacEEPROMImage[5] = random_value;
+
+ fseek(fh, 0x4, SEEK_SET);
+ fwrite(uacEEPROMImage, sizeof(unsigned char), 6, fh);
+ }
+
+ /*Check BT Mac Address*/
+ fseek(fh, 0x384, SEEK_SET);
+ fread(uacEEPROMImage, sizeof(unsigned char), 6, fh);
+ if(uacEEPROMImage[0] == 0 && uacEEPROMImage[1] == 0 &&
+ uacEEPROMImage[2] == 0 && uacEEPROMImage[3] == 0 &&
+ uacEEPROMImage[4] == 0 && uacEEPROMImage[5] == 0)
+ {
+ if (random_value == 0) {
+ frandom = fopen("/dev/urandom", "rb");
+ if (frandom == NULL) {
+ printf("Could not open /dev/urandom.\n");
+ return -1;
+ }
+
+ rc = fread(&random_value, 1, sizeof(long), frandom);
+ fclose(frandom);
+
+ uacEEPROMImage[0] = 0x00;
+ uacEEPROMImage[1] = 0x08;
+ uacEEPROMImage[2] = 0x22;
+ uacEEPROMImage[3] = random_value >> 16;
+ uacEEPROMImage[4] = random_value >> 8;
+ uacEEPROMImage[5] = random_value;
+ }
+ else {
+ uacEEPROMImage[0] = 0x00;
+ uacEEPROMImage[1] = 0x08;
+ uacEEPROMImage[2] = 0x22;
+ uacEEPROMImage[3] = random_value >> 16;
+ uacEEPROMImage[4] = random_value >> 8;
+ uacEEPROMImage[5] = random_value + 1;
+ }
+
+ fseek(fh, 0x384, SEEK_SET);
+ fwrite(uacEEPROMImage, sizeof(unsigned char), 6, fh);
+ }
+
+ fclose(fh);
+ }
+ return 0;
+}
diff --git a/src/connectivity/network_cfg/wifi_mac/wifi_bt_mac_write.service b/src/connectivity/network_cfg/wifi_mac/wifi_bt_mac_write.service
new file mode 100644
index 0000000..852f7d2
--- /dev/null
+++ b/src/connectivity/network_cfg/wifi_mac/wifi_bt_mac_write.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=wifi_bt_mac_write
+After=data-ubi-mnt.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=no
+ExecStart=/usr/sbin/wifi_bt_mac_write
+
+[Install]
+Alias=pwrwifid
+WantedBy=multi-user.target