diff --git a/mbtk/libmbtk_lib/fota/mbtk_fota.c b/mbtk/libmbtk_lib/fota/mbtk_fota.c
index 323ec9b..6d5d3e8 100755
--- a/mbtk/libmbtk_lib/fota/mbtk_fota.c
+++ b/mbtk/libmbtk_lib/fota/mbtk_fota.c
@@ -23,7 +23,8 @@
 
 #include "mbtk_fota.h"
 #include "mbtk_log.h"
-
+#include "mbtk_utils.h"
+#include "mbtk_type.h"
 
 #ifdef DEBUG
     #define fota_log(...)                    printf(__VA_ARGS__)
@@ -31,7 +32,6 @@
     #define fota_log(...)
 #endif
 
-#define UNUSEDPARAM(param) (void)param;
 #define OTA_MAX_STRING_LEN	128
 
 static struct ubus_context    *fota_ubus_ctx = NULL;
@@ -164,7 +164,7 @@
     if(!access("/sys/power/wake_lock", W_OK))
     {
         sprintf(cmd, "echo %s > /sys/power/wake_lock", "ota_lock");
-        system(cmd);
+        mbtk_system(cmd);
         LOGE("/sys/power/wake_lock success\n");
     }
     else
@@ -202,7 +202,7 @@
     {
         char cmd[128]={0};
         sprintf(cmd, "echo %s > /sys/power/wake_unlock", "ota_lock");
-        system(cmd);
+        mbtk_system(cmd);
         LOGE("/sys/power/wake_unlock success\n");
     }
     else
@@ -246,7 +246,7 @@
     if(!access("/sys/power/wake_lock", W_OK))
     {
         sprintf(cmd, "echo %s > /sys/power/wake_lock", "ota_lock");
-        system(cmd);
+        mbtk_system(cmd);
         LOGE("/sys/power/wake_lock success\n");
     }
     else
@@ -285,7 +285,7 @@
     {
         char cmd[128]={0};
         sprintf(cmd, "echo %s > /sys/power/wake_unlock", "ota_lock");
-        system(cmd);
+        mbtk_system(cmd);
         LOGE("/sys/power/wake_unlock success\n");
     }
     else
@@ -335,8 +335,8 @@
     fota_cb = NULL;
 
     if (is_reboot) {
-        system("sync");
-        system("reboot");
+        mbtk_system("sync");
+        mbtk_system("reboot");
     }
     return 0;
 
@@ -345,15 +345,15 @@
 int mbtk_fota_done1(int is_reboot)
 {
     if (is_reboot) {
-        system("sync");
-        system("reboot");
+        mbtk_system("sync");
+        mbtk_system("reboot");
     }
     return 0;
 }
 
 void* mbtk_fota_thread(void* argc)
 {
-    int ret, retries = 0;
+    int ret;
     UNUSEDPARAM(argc);
 
     printf("mbtk_fota_thread() start\n");
@@ -378,7 +378,6 @@
 
 int mbtk_fota_init(fota_callback cb)
 {
-    int id;
     int retries = 0;
 
     /*create ubus loop to listen to RIL event*/
