Add basic change for v1453

Change-Id: I9497a61bbc3717f66413794a4e7dee0347c0bc33
diff --git a/mbtk/libql_lib_v2_rilv2/ql_fota_api.c b/mbtk/libql_lib_v2_rilv2/ql_fota_api.c
new file mode 100755
index 0000000..9b833da
--- /dev/null
+++ b/mbtk/libql_lib_v2_rilv2/ql_fota_api.c
@@ -0,0 +1,133 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include "ql_fota_api.h"
+#include "mbtk_type.h"
+#include "mbtk_fota.h"
+#include "mbtk_log.h"
+#include "mbtk_utils.h"
+
+unsigned int Process_flag = 0;
+char addr_buf[128]={0};
+int segment_size =0;
+
+#define StatFunc(x,y) stat(x,y)
+
+int funstat(  char *filename)
+{
+    int ret = 0;
+    struct stat tmep_s;
+
+    memset(&tmep_s, 0, sizeof(stat));
+    ret = StatFunc(filename, &tmep_s);
+
+    if (ret)
+    {
+        LOGE("stat %s failed! error_code: %s", filename ,strerror(errno));
+        return -1;
+    }
+
+    if (tmep_s.st_size > 0)
+    {
+        segment_size = tmep_s.st_size;
+    }
+
+    return 0;
+}
+
+
+int ql_fota_cb(int status, int percent)
+{
+    LOGE("%d: percent: %d%%\n", percent/10, percent);
+    Process_flag = percent;
+    return 0;
+}
+
+int ql_abfota_start_update(const char *package_path)
+{
+    LOGI("%s, %d", __FUNCTION__, __LINE__);
+    int ret = 0;
+    int len = 0;
+
+    ret = mbtk_fota_init(ql_fota_cb);
+    if (ret)
+    {
+        LOGE("ql_abfota_start_update init fail");
+        return -1;
+    }
+
+    memset(addr_buf, 0, sizeof(addr_buf));
+    sprintf(addr_buf, "%supdata.bin", package_path);
+    len = strlen(addr_buf);
+    if (len > 127)
+    {
+        LOGE("ql_abfota_start_update get package_path fail");
+        return -1;
+    }
+
+    if(strncmp(addr_buf, "http", 4) == 0)
+    {
+        segment_size = 62914560;
+        ret = mbtk_fota_fw_write_by_url(addr_buf, segment_size,10, 600);
+    }
+    else
+    {
+        /*获取升级文件的大小*/
+        ret = funstat(addr_buf);
+        if (ret)
+        {
+            LOGE("ql_abfota_start_update get segment_size fail");
+            return -1;
+        }
+
+        LOGI("addr_buf:%s, segment_size:%d", addr_buf, segment_size);
+        ret = mbtk_fota_fw_write(addr_buf, segment_size);
+    }
+
+    if (ret)
+    {
+        LOGE("ql_abfota_start_update fail");
+        return -1;
+    }
+
+    mbtk_system("sync");
+
+    return 0;
+}
+
+int ql_abfota_get_update_status(update_info_t * update_info)
+{
+    int fota_t;
+
+    fota_t = mbtk_fota_status();
+
+    if (fota_t == 3)
+    {
+        update_info->ota_state = UPDATE;
+        update_info->percentage = Process_flag;
+        update_info->exit_code = E_UPDATE_PACKAGE_NOEXIST;
+    }
+    else if (fota_t == 4)
+    {
+        update_info->ota_state = WRITEDONE;
+        update_info->percentage = Process_flag;
+        update_info->exit_code = E_NO_ERROR;
+    }
+    else if (fota_t == 5)
+    {
+        update_info->ota_state = FAILED;
+        update_info->percentage = Process_flag;
+        update_info->exit_code = E_WRITE_SEG_FAILED;
+    }
+    else if (fota_t == -1)
+    {
+        LOGE("ql_abfota_get_update_status fail");
+        return -1;
+    }
+
+    return 0;
+}
+