[Feature]add MT2731_MP2_MR2_SVN388 baseline version
Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/meta/meta-mediatek-ivt/recipes-platform/platform-libs/files/libsysutils.patch b/meta/meta-mediatek-ivt/recipes-platform/platform-libs/files/libsysutils.patch
new file mode 100644
index 0000000..cc5afb6
--- /dev/null
+++ b/meta/meta-mediatek-ivt/recipes-platform/platform-libs/files/libsysutils.patch
@@ -0,0 +1,259 @@
+diff --git a/system/core/libsysutils/src/NetlinkEvent.cpp b/system/core/libsysutils/src/NetlinkEvent.cpp
+old mode 100644
+new mode 100755
+index 23dcd62..bf8ab76
+--- a/system/core/libsysutils/src/NetlinkEvent.cpp
++++ b/system/core/libsysutils/src/NetlinkEvent.cpp
+@@ -28,12 +28,12 @@
+ #include <arpa/inet.h>
+ #include <net/if.h>
+
+-#include <linux/if.h>
++//#include <linux/if.h>
+ #include <linux/if_addr.h>
+ #include <linux/if_link.h>
+ #include <linux/netfilter/nfnetlink.h>
+ #include <linux/netfilter/nfnetlink_log.h>
+-#include <linux/netfilter_ipv4/ipt_ULOG.h>
++//#include <linux/netfilter_ipv4/ipt_ULOG.h>
+
+ /* From kernel's net/netfilter/xt_quota2.c */
+ const int LOCAL_QLOG_NL_EVENT = 112;
+@@ -47,6 +47,10 @@ const int LOCAL_NFLOG_PACKET = NFNL_SUBSYS_ULOG << 8 | NFULNL_MSG_PACKET;
+ #include <netlink/handlers.h>
+ #include <netlink/msg.h>
+
++
++#define IFF_LOWER_UP 0x10000
++#define ND_OPT_RDNSS 25
++
+ NetlinkEvent::NetlinkEvent() {
+ mAction = Action::kUnknown;
+ memset(mParams, 0, sizeof(mParams));
+@@ -255,23 +259,26 @@ bool NetlinkEvent::parseIfAddrMessage(const struct nlmsghdr *nh) {
+ * Parse a QLOG_NL_EVENT message.
+ */
+ bool NetlinkEvent::parseUlogPacketMessage(const struct nlmsghdr *nh) {
++ #if 0
+ const char *devname;
+ ulog_packet_msg_t *pm = (ulog_packet_msg_t *) NLMSG_DATA(nh);
+- if (!checkRtNetlinkLength(nh, sizeof(*pm)))
+- return false;
+-
+ devname = pm->indev_name[0] ? pm->indev_name : pm->outdev_name;
+ asprintf(&mParams[0], "ALERT_NAME=%s", pm->prefix);
+ asprintf(&mParams[1], "INTERFACE=%s", devname);
+ mSubsystem = strdup("qlog");
+ mAction = Action::kChange;
+- return true;
++ #endif
++ if (nh != NULL)
++ return true;
++ else
++ return false;
+ }
+
+ /*
+ * Parse a LOCAL_NFLOG_PACKET message.
+ */
+ bool NetlinkEvent::parseNfPacketMessage(struct nlmsghdr *nh) {
++ #if 0
+ int uid = -1;
+ int len = 0;
+ char* raw = NULL;
+@@ -284,7 +291,7 @@ bool NetlinkEvent::parseNfPacketMessage(struct nlmsghdr *nh) {
+ struct nlattr *payload = nlmsg_find_attr(nh, sizeof(struct genlmsghdr), NFULA_PAYLOAD);
+ if (payload) {
+ /* First 256 bytes is plenty */
+- len = nla_len(payload);
++ len = 0;//nla_len(payload);
+ if (len > 256) len = 256;
+ raw = (char*) nla_data(payload);
+ }
+@@ -300,7 +307,11 @@ bool NetlinkEvent::parseNfPacketMessage(struct nlmsghdr *nh) {
+ mParams[1] = hex;
+ mSubsystem = strdup("strict");
+ mAction = Action::kChange;
+- return true;
++ #endif
++ if (nh)
++ return true;
++ else
++ return false;
+ }
+
+ /*
+@@ -399,6 +410,8 @@ bool NetlinkEvent::parseRtMessage(const struct nlmsghdr *nh) {
+ * Parse a RTM_NEWNDUSEROPT message.
+ */
+ bool NetlinkEvent::parseNdUserOptMessage(const struct nlmsghdr *nh) {
++
++ #if 0
+ struct nduseroptmsg *msg = (struct nduseroptmsg *) NLMSG_DATA(nh);
+ if (!checkRtNetlinkLength(nh, sizeof(*msg)))
+ return false;
+@@ -458,9 +471,13 @@ bool NetlinkEvent::parseNdUserOptMessage(const struct nlmsghdr *nh) {
+ const int numaddrs = (optlen - 1) / 2;
+
+ // Find the lifetime.
++ #if 0
+ struct nd_opt_rdnss *rndss_opt = (struct nd_opt_rdnss *) opthdr;
+ const uint32_t lifetime = ntohl(rndss_opt->nd_opt_rdnss_lifetime);
+-
++ #endif
++ struct nd_opt_rdnss *rndss_opt = NULL;
++
++ const uint32_t lifetime = 0;
+ // Construct "SERVERS=<comma-separated string of DNS addresses>".
+ static const char kServerTag[] = "SERVERS=";
+ static const size_t kTagLength = strlen(kServerTag);
+@@ -476,7 +493,8 @@ bool NetlinkEvent::parseNdUserOptMessage(const struct nlmsghdr *nh) {
+ }
+ strcpy(buf, kServerTag);
+ size_t pos = kTagLength;
+-
++
++ #if 0
+ struct in6_addr *addrs = (struct in6_addr *) (rndss_opt + 1);
+ for (int i = 0; i < numaddrs; i++) {
+ if (i > 0) {
+@@ -486,7 +504,7 @@ bool NetlinkEvent::parseNdUserOptMessage(const struct nlmsghdr *nh) {
+ pos += strlen(buf + pos);
+ if (IN6_IS_ADDR_LINKLOCAL(addrs + i)) {
+ buf[pos++] = '%';
+- pos += strlcpy(buf + pos, ifname, bufsize - pos);
++ //pos += strlcpy(buf + pos, ifname, bufsize - pos);
+ }
+ }
+ buf[pos] = '\0';
+@@ -496,12 +514,16 @@ bool NetlinkEvent::parseNdUserOptMessage(const struct nlmsghdr *nh) {
+ asprintf(&mParams[0], "INTERFACE=%s", ifname);
+ asprintf(&mParams[1], "LIFETIME=%u", lifetime);
+ mParams[2] = buf;
++ #endif
+ } else {
+ SLOGD("Unknown ND option type %d\n", opthdr->nd_opt_type);
+ return false;
+ }
+-
+- return true;
++ #endif
++ if (nh != NULL)
++ return true;
++ else
++ return false;
+ }
+
+ /*
+diff --git a/system/core/libsysutils/src/NetlinkListener.cpp b/system/core/libsysutils/src/NetlinkListener.cpp
+old mode 100644
+new mode 100755
+index 637aa1e..68bb596
+--- a/system/core/libsysutils/src/NetlinkListener.cpp
++++ b/system/core/libsysutils/src/NetlinkListener.cpp
+@@ -43,6 +43,7 @@ NetlinkListener::NetlinkListener(int socket, int format) :
+
+ bool NetlinkListener::onDataAvailable(SocketClient *cli)
+ {
++ #if 0
+ int socket = cli->getSocket();
+ ssize_t count;
+ uid_t uid = -1;
+@@ -52,8 +53,8 @@ bool NetlinkListener::onDataAvailable(SocketClient *cli)
+ require_group = false;
+ }
+
+- count = TEMP_FAILURE_RETRY(uevent_kernel_recv(socket,
+- mBuffer, sizeof(mBuffer), require_group, &uid));
++ count = 0;/*(uevent_kernel_recv(socket,
++ mBuffer, sizeof(mBuffer), require_group, &uid));*/
+ if (count < 0) {
+ if (uid > 0)
+ LOG_EVENT_INT(65537, uid);
+@@ -71,5 +72,9 @@ bool NetlinkListener::onDataAvailable(SocketClient *cli)
+ }
+
+ delete evt;
+- return true;
++ #endif
++ if (cli)
++ return true;
++ else
++ return false;
+ }
+diff --git a/system/core/libsysutils/src/ServiceManager.cpp b/system/core/libsysutils/src/ServiceManager.cpp
+old mode 100644
+new mode 100755
+index 41ac1dd..28dddc0
+--- a/system/core/libsysutils/src/ServiceManager.cpp
++++ b/system/core/libsysutils/src/ServiceManager.cpp
+@@ -5,7 +5,7 @@
+
+ #define LOG_TAG "Service"
+ #include <cutils/log.h>
+-#include <cutils/properties.h>
++//#include <cutils/properties.h>
+
+ ServiceManager::ServiceManager() {
+ }
+@@ -28,7 +28,7 @@ ServiceManager::ServiceManager() {
+ * read its state due to the truncation of "init.svc.<name>" into a
+ * zero-terminated buffer of PROPERTY_KEY_MAX characters.
+ */
+-#define SERVICE_NAME_MAX (PROPERTY_KEY_MAX-10)
++#define SERVICE_NAME_MAX (32-10)
+
+ /* The maximum amount of time to wait for a service to start or stop,
+ * in micro-seconds (really an approximation) */
+@@ -49,7 +49,7 @@ int ServiceManager::start(const char *name) {
+ }
+
+ SLOGD("Starting service '%s'", name);
+- property_set("ctl.start", name);
++ //property_set("ctl.start", name);
+
+ int count = SLEEP_MAX_USEC;
+ while(count > 0) {
+@@ -78,7 +78,7 @@ int ServiceManager::stop(const char *name) {
+ }
+
+ SLOGD("Stopping service '%s'", name);
+- property_set("ctl.stop", name);
++ //property_set("ctl.stop", name);
+
+ int count = SLEEP_MAX_USEC;
+ while(count > 0) {
+@@ -98,8 +98,8 @@ int ServiceManager::stop(const char *name) {
+ }
+
+ bool ServiceManager::isRunning(const char *name) {
+- char propVal[PROPERTY_VALUE_MAX];
+- char propName[PROPERTY_KEY_MAX];
++ char propVal[92];
++ char propName[92];
+ int ret;
+
+ ret = snprintf(propName, sizeof(propName), "init.svc.%s", name);
+@@ -108,7 +108,7 @@ bool ServiceManager::isRunning(const char *name) {
+ return false;
+ }
+
+- if (property_get(propName, propVal, NULL)) {
++ if (0) {
+ if (!strcmp(propVal, "running"))
+ return true;
+ }
+diff --git a/system/core/libsysutils/src/SocketListener.cpp b/system/core/libsysutils/src/SocketListener.cpp
+old mode 100644
+new mode 100755
+index 4d602a6..7b4658c
+--- a/system/core/libsysutils/src/SocketListener.cpp
++++ b/system/core/libsysutils/src/SocketListener.cpp
+@@ -21,6 +21,7 @@
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <sys/un.h>
++#include <fcntl.h>
+
+ #define LOG_TAG "SocketListener"
+ #include <cutils/log.h>