[Feature]add MT2731_MP2_MR2_SVN388 baseline version
Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/meta/meta-mediatek-ivt/recipes-platform/platform-libs/files/libhardware.patch b/meta/meta-mediatek-ivt/recipes-platform/platform-libs/files/libhardware.patch
new file mode 100644
index 0000000..f2a8553
--- /dev/null
+++ b/meta/meta-mediatek-ivt/recipes-platform/platform-libs/files/libhardware.patch
@@ -0,0 +1,344 @@
+diff --git a/hardware/libhardware_legacy/wifi/wifi.c b/hardware/libhardware_legacy/wifi/wifi.c
+old mode 100644
+new mode 100755
+index 880f6fc..7e9aa80
+--- a/hardware/libhardware_legacy/wifi/wifi.c
++++ b/hardware/libhardware_legacy/wifi/wifi.c
+@@ -33,17 +33,17 @@
+ #include "cutils/log.h"
+ #include "cutils/memory.h"
+ #include "cutils/misc.h"
+-#include "cutils/properties.h"
++//#include "cutils/properties.h"
+ #include "private/android_filesystem_config.h"
+
+ #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
+-#include <sys/_system_properties.h>
++//#include <sys/_system_properties.h>
+
+-extern int do_dhcp();
++//extern int do_dhcp();
+ extern int ifc_init();
+ extern void ifc_close();
+-extern char *dhcp_lasterror();
+-extern void get_dhcp_info();
++//extern char *dhcp_lasterror();
++//extern void get_dhcp_info();
+ extern int init_module(void *, unsigned long, const char *);
+ extern int delete_module(const char *, unsigned int);
+ void wifi_close_sockets();
+@@ -64,6 +64,9 @@ int wpa_ctrl_recv(struct wpa_ctrl *ctrl, char *reply, size_t *reply_len)
+ int wpa_ctrl_get_fd(struct wpa_ctrl *ctrl) { return 0; }
+ #endif
+
++#define PROPERTY_VALUE_MAX 100
++#define PROPERTY_KEY_MAX 100
++
+ static struct wpa_ctrl *ctrl_conn;
+ static struct wpa_ctrl *monitor_conn;
+
+@@ -168,6 +171,7 @@ static int rmmod(const char *modname)
+ return ret;
+ }
+
++#if 0
+ int do_dhcp_request(int *ipaddr, int *gateway, int *mask,
+ int *dns1, int *dns2, int *server, int *lease) {
+ /* For test driver, always report success */
+@@ -189,6 +193,7 @@ int do_dhcp_request(int *ipaddr, int *gateway, int *mask,
+ const char *get_dhcp_error_string() {
+ return dhcp_lasterror();
+ }
++#endif
+
+ #ifdef WIFI_DRIVER_STATE_CTRL_PARAM
+ int wifi_change_driver_state(const char *state)
+@@ -199,13 +204,13 @@ int wifi_change_driver_state(const char *state)
+
+ if (!state)
+ return -1;
+- fd = TEMP_FAILURE_RETRY(open(WIFI_DRIVER_STATE_CTRL_PARAM, O_WRONLY));
++ fd = (open(WIFI_DRIVER_STATE_CTRL_PARAM, O_WRONLY);
+ if (fd < 0) {
+ ALOGE("Failed to open driver state control param (%s)", strerror(errno));
+ return -1;
+ }
+ len = strlen(state) + 1;
+- if (TEMP_FAILURE_RETRY(write(fd, state, len)) != len) {
++ if ((write(fd, state, len)) != len) {
+ ALOGE("Failed to write driver state control param (%s)", strerror(errno));
+ ret = -1;
+ }
+@@ -221,8 +226,8 @@ int is_wifi_driver_loaded() {
+ char line[sizeof(DRIVER_MODULE_TAG)+10];
+ #endif
+
+- if (!property_get(DRIVER_PROP_NAME, driver_status, NULL)
+- || strcmp(driver_status, "ok") != 0) {
++ if (!/*property_get(DRIVER_PROP_NAME, driver_status, NULL)
++ || */strcmp(driver_status, "ok") != 0) {
+ return 0; /* driver not loaded */
+ }
+ #ifdef WIFI_DRIVER_MODULE_PATH
+@@ -234,7 +239,7 @@ int is_wifi_driver_loaded() {
+ */
+ if ((proc = fopen(MODULE_FILE, "r")) == NULL) {
+ ALOGW("Could not open %s: %s", MODULE_FILE, strerror(errno));
+- property_set(DRIVER_PROP_NAME, "unloaded");
++ //property_set(DRIVER_PROP_NAME, "unloaded");
+ return 0;
+ }
+ while ((fgets(line, sizeof(line), proc)) != NULL) {
+@@ -244,7 +249,7 @@ int is_wifi_driver_loaded() {
+ }
+ }
+ fclose(proc);
+- property_set(DRIVER_PROP_NAME, "unloaded");
++ //property_set(DRIVER_PROP_NAME, "unloaded");
+ return 0;
+ #else
+ return 1;
+@@ -266,14 +271,14 @@ int wifi_load_driver()
+
+ if (strcmp(FIRMWARE_LOADER,"") == 0) {
+ /* usleep(WIFI_DRIVER_LOADER_DELAY); */
+- property_set(DRIVER_PROP_NAME, "ok");
++ //property_set(DRIVER_PROP_NAME, "ok");
+ }
+ else {
+- property_set("ctl.start", FIRMWARE_LOADER);
++ //property_set("ctl.start", FIRMWARE_LOADER);
+ }
+ sched_yield();
+ while (count-- > 0) {
+- if (property_get(DRIVER_PROP_NAME, driver_status, NULL)) {
++ if (/*property_get(DRIVER_PROP_NAME, driver_status, NULL)*/) {
+ if (strcmp(driver_status, "ok") == 0)
+ return 0;
+ else if (strcmp(driver_status, "failed") == 0) {
+@@ -283,7 +288,7 @@ int wifi_load_driver()
+ }
+ usleep(200000);
+ }
+- property_set(DRIVER_PROP_NAME, "timeout");
++ //property_set(DRIVER_PROP_NAME, "timeout");
+ wifi_unload_driver();
+ return -1;
+ #else
+@@ -295,7 +300,7 @@ int wifi_load_driver()
+ if (wifi_change_driver_state(WIFI_DRIVER_STATE_ON) < 0)
+ return -1;
+ #endif
+- property_set(DRIVER_PROP_NAME, "ok");
++ //property_set(DRIVER_PROP_NAME, "ok");
+ return 0;
+ #endif
+ }
+@@ -325,7 +330,7 @@ int wifi_unload_driver()
+ return -1;
+ }
+ #endif
+- property_set(DRIVER_PROP_NAME, "unloaded");
++ //property_set(DRIVER_PROP_NAME, "unloaded");
+ return 0;
+ #endif
+ }
+@@ -344,13 +349,13 @@ int ensure_entropy_file_exists()
+ }
+ return 0;
+ }
+- destfd = TEMP_FAILURE_RETRY(open(SUPP_ENTROPY_FILE, O_CREAT|O_RDWR, 0660));
++ destfd = (open(SUPP_ENTROPY_FILE, O_CREAT|O_RDWR, 0660));
+ if (destfd < 0) {
+ ALOGE("Cannot create \"%s\": %s", SUPP_ENTROPY_FILE, strerror(errno));
+ return -1;
+ }
+
+- if (TEMP_FAILURE_RETRY(write(destfd, dummy_key, sizeof(dummy_key))) != sizeof(dummy_key)) {
++ if ((write(destfd, dummy_key, sizeof(dummy_key))) != sizeof(dummy_key)) {
+ ALOGE("Error writing \"%s\": %s", SUPP_ENTROPY_FILE, strerror(errno));
+ close(destfd);
+ return -1;
+@@ -395,20 +400,20 @@ int ensure_config_file_exists(const char *config_file)
+ return -1;
+ }
+
+- srcfd = TEMP_FAILURE_RETRY(open(SUPP_CONFIG_TEMPLATE, O_RDONLY));
++ srcfd = (open(SUPP_CONFIG_TEMPLATE, O_RDONLY));
+ if (srcfd < 0) {
+ ALOGE("Cannot open \"%s\": %s", SUPP_CONFIG_TEMPLATE, strerror(errno));
+ return -1;
+ }
+
+- destfd = TEMP_FAILURE_RETRY(open(config_file, O_CREAT|O_RDWR, 0660));
++ destfd = (open(config_file, O_CREAT|O_RDWR, 0660));
+ if (destfd < 0) {
+ close(srcfd);
+ ALOGE("Cannot create \"%s\": %s", config_file, strerror(errno));
+ return -1;
+ }
+
+- while ((nread = TEMP_FAILURE_RETRY(read(srcfd, buf, sizeof(buf)))) != 0) {
++ while ((nread = (read(srcfd, buf, sizeof(buf)))) != 0) {
+ if (nread < 0) {
+ ALOGE("Error reading \"%s\": %s", SUPP_CONFIG_TEMPLATE, strerror(errno));
+ close(srcfd);
+@@ -416,7 +421,7 @@ int ensure_config_file_exists(const char *config_file)
+ unlink(config_file);
+ return -1;
+ }
+- TEMP_FAILURE_RETRY(write(destfd, buf, nread));
++ (write(destfd, buf, nread));
+ }
+
+ close(destfd);
+@@ -443,7 +448,7 @@ int wifi_start_supplicant(int p2p_supported)
+ {
+ char supp_status[PROPERTY_VALUE_MAX] = {'\0'};
+ int count = 200; /* wait at most 20 seconds for completion */
+- const prop_info *pi;
++ //const prop_info *pi;
+ unsigned serial = 0, i;
+
+ if (p2p_supported) {
+@@ -462,8 +467,8 @@ int wifi_start_supplicant(int p2p_supported)
+ }
+
+ /* Check whether already running */
+- if (property_get(supplicant_prop_name, supp_status, NULL)
+- && strcmp(supp_status, "running") == 0) {
++ if (/*property_get(supplicant_prop_name, supp_status, NULL)
++ && */strcmp(supp_status, "running") == 0) {
+ return 0;
+ }
+
+@@ -490,23 +495,20 @@ int wifi_start_supplicant(int p2p_supported)
+ * it starts in the stopped state and never manages to start
+ * running at all.
+ */
+- pi = __system_property_find(supplicant_prop_name);
++ /*pi = __system_property_find(supplicant_prop_name);
+ if (pi != NULL) {
+ serial = __system_property_serial(pi);
+- }
+- property_get("wifi.interface", primary_iface, WIFI_TEST_INTERFACE);
++ }*/
++ //property_get("wifi.interface", primary_iface, WIFI_TEST_INTERFACE);
+
+- property_set("ctl.start", supplicant_name);
++ //property_set("ctl.start", supplicant_name);
+ sched_yield();
+-
++/*
+ while (count-- > 0) {
+ if (pi == NULL) {
+ pi = __system_property_find(supplicant_prop_name);
+ }
+ if (pi != NULL) {
+- /*
+- * property serial updated means that init process is scheduled
+- * after we sched_yield, further property status checking is based on this */
+ if (__system_property_serial(pi) != serial) {
+ __system_property_read(pi, NULL, supp_status);
+ if (strcmp(supp_status, "running") == 0) {
+@@ -517,7 +519,7 @@ int wifi_start_supplicant(int p2p_supported)
+ }
+ }
+ usleep(100000);
+- }
++ }*/
+ return -1;
+ }
+
+@@ -535,16 +537,16 @@ int wifi_stop_supplicant(int p2p_supported)
+ }
+
+ /* Check whether supplicant already stopped */
+- if (property_get(supplicant_prop_name, supp_status, NULL)
+- && strcmp(supp_status, "stopped") == 0) {
++ if (/*property_get(supplicant_prop_name, supp_status, NULL)
++ &&*/ strcmp(supp_status, "stopped") == 0) {
+ return 0;
+ }
+
+- property_set("ctl.stop", supplicant_name);
++ //property_set("ctl.stop", supplicant_name);
+ sched_yield();
+
+ while (count-- > 0) {
+- if (property_get(supplicant_prop_name, supp_status, NULL)) {
++ if (/*property_get(supplicant_prop_name, supp_status, NULL)*/1) {
+ if (strcmp(supp_status, "stopped") == 0)
+ return 0;
+ }
+@@ -559,8 +561,8 @@ int wifi_connect_on_socket_path(const char *path)
+ char supp_status[PROPERTY_VALUE_MAX] = {'\0'};
+
+ /* Make sure supplicant is running */
+- if (!property_get(supplicant_prop_name, supp_status, NULL)
+- || strcmp(supp_status, "running") != 0) {
++ if (!/*property_get(supplicant_prop_name, supp_status, NULL)
++ ||*/ strcmp(supp_status, "running") != 0) {
+ ALOGE("Supplicant not running, cannot connect");
+ return -1;
+ }
+@@ -618,7 +620,7 @@ int wifi_send_command(const char *cmd, char *reply, size_t *reply_len)
+ if (ret == -2) {
+ ALOGD("'%s' command timed out.\n", cmd);
+ /* unblocks the monitor receive socket for termination */
+- TEMP_FAILURE_RETRY(write(exit_sockets[0], "T", 1));
++ (write(exit_sockets[0], "T", 1));
+ return -2;
+ } else if (ret < 0 || strncmp(reply, "FAIL", 4) == 0) {
+ return -1;
+@@ -631,13 +633,14 @@ int wifi_send_command(const char *cmd, char *reply, size_t *reply_len)
+
+ int wifi_supplicant_connection_active()
+ {
++ #if 0
+ char supp_status[PROPERTY_VALUE_MAX] = {'\0'};
+
+- if (property_get(supplicant_prop_name, supp_status, NULL)) {
++ if (/*property_get(supplicant_prop_name, supp_status, NULL)*/1) {
+ if (strcmp(supp_status, "stopped") == 0)
+ return -1;
+ }
+-
++ #endif
+ return 0;
+ }
+
+@@ -653,7 +656,7 @@ int wifi_ctrl_recv(char *reply, size_t *reply_len)
+ rfds[1].fd = exit_sockets[1];
+ rfds[1].events |= POLLIN;
+ do {
+- res = TEMP_FAILURE_RETRY(poll(rfds, 2, 30000));
++ res = (poll(rfds, 2, 30000));
+ if (res < 0) {
+ ALOGE("Error poll = %d", res);
+ return res;
+@@ -785,7 +788,7 @@ void wifi_close_supplicant_connection()
+ wifi_close_sockets();
+
+ while (count-- > 0) {
+- if (property_get(supplicant_prop_name, supp_status, NULL)) {
++ if (/*property_get(supplicant_prop_name, supp_status, NULL)*/1) {
+ if (strcmp(supp_status, "stopped") == 0)
+ return;
+ }
+@@ -819,13 +822,13 @@ int wifi_change_fw_path(const char *fwpath)
+
+ if (!fwpath)
+ return ret;
+- fd = TEMP_FAILURE_RETRY(open(WIFI_DRIVER_FW_PATH_PARAM, O_WRONLY));
++ fd = (open(WIFI_DRIVER_FW_PATH_PARAM, O_WRONLY));
+ if (fd < 0) {
+ ALOGE("Failed to open wlan fw path param (%s)", strerror(errno));
+ return -1;
+ }
+ len = strlen(fwpath) + 1;
+- if (TEMP_FAILURE_RETRY(write(fd, fwpath, len)) != len) {
++ if ((write(fd, fwpath, len)) != len) {
+ ALOGE("Failed to write wlan fw path param (%s)", strerror(errno));
+ ret = -1;
+ }