diff --git a/mbtk/mbtk_logd/syslog_read.c b/mbtk/mbtk_logd/syslog_read.c
index e0cd2d0..183bee8 100755
--- a/mbtk/mbtk_logd/syslog_read.c
+++ b/mbtk/mbtk_logd/syslog_read.c
@@ -72,7 +72,7 @@
 
 extern char *sys_globalPtr;
 extern int sys_len;
-
+extern int emmc_pro;
 
 static const struct blobmsg_policy log_policy[] = {
 	[LOG_MSG] = { .name = "msg", .type = BLOBMSG_TYPE_STRING },
@@ -316,25 +316,37 @@
             }
         }
 
-        
-        if(buffer_index + len >= SYSLOG_BUFF_SIZE && buffer_index < SYSLOG_BUFF_SIZE)
+        if(emmc_pro)
         {
-            memcpy(buffer + buffer_index, buf, len);
-            buffer_index += len;
-            if (write(sender.fd, buffer, buffer_index) < 0) 
+            if(buffer_index + len >= SYSLOG_BUFF_SIZE && buffer_index < SYSLOG_BUFF_SIZE)
+            {
+                memcpy(buffer + buffer_index, buf, len);
+                buffer_index += len;
+                if (write(sender.fd, buffer, buffer_index) < 0) 
+                {
+                    perror("write error");
+                    close(sender.fd);
+                    return -1;
+                }
+                buffer_index = 0;
+            }
+            else
+            {
+                memcpy(buffer + buffer_index, buf, len);
+                buffer_index += len;
+                sys_len = buffer_index;
+            //memcpy(syslog_buff,buffer,buffer_index);
+            }
+        }
+        else
+        {
+                
+            if(write(sender.fd, buf, len) < 0) 
             {
                 perror("write error");
                 close(sender.fd);
                 return -1;
             }
-            buffer_index = 0;
-        }
-        else
-        {
-            memcpy(buffer + buffer_index, buf, len);
-            buffer_index += len;
-            sys_len = buffer_index;
-            //memcpy(syslog_buff,buffer,buffer_index);
         }
 
 
