[Bugfix][T106BUG-367][T106BUG-364][T106BUG-353][T106BUG-369]fix and add qser sim api

    Only Configure:No,
    Affected branch:master,
    Affected module:sim
    Is it affected on both ZXIC and MTK:only ZXIC,
    Self-test:Yes,
    Doc Update:NO.

Change-Id: Icad95b7fec487c5227d9621f4a4b7fd57015fef9
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-qser-sim/liblynq-qser-sim.bb b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-qser-sim/liblynq-qser-sim.bb
index f4c89f4..71e2bcf 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-qser-sim/liblynq-qser-sim.bb
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-qser-sim/liblynq-qser-sim.bb
@@ -17,6 +17,9 @@
 BB_INCLUDE_ADD = "--sysroot=${STAGING_DIR_HOST}"
 BB_LDFLAGS_ADD = "--sysroot=${STAGING_DIR_HOST} -Wl,--hash-style=gnu"
 #Parameters passed to do_compile()
+EXTRA_OEMAKE = "'RAT_CONFIG_C2K_SUPPORT = ${RAT_CONFIG_C2K_SUPPORT}'\
+                'MTK_MULTI_SIM_SUPPORT = ${MTK_MULTI_SIM_SUPPORT}'\
+                'TARGET_PLATFORM = ${TARGET_PLATFORM}'"
 
 FILES_${PN} = "${base_libdir}/*.so "
 
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sim-demo/files/lynq-qser-sim-demo.cpp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sim-demo/files/lynq-qser-sim-demo.cpp
index abcea42..732225b 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sim-demo/files/lynq-qser-sim-demo.cpp
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sim-demo/files/lynq-qser-sim-demo.cpp
@@ -12,6 +12,7 @@
 

 #define BUF_SIZE 32

 #define BUF_PIN 8

+#define VER_SIZE 128

 

 typedef uint32_t sim_client_handle_type;

 

@@ -49,6 +50,11 @@
 int (*qser_sim_enablepin)(sim_client_handle_type h_sim, QSER_SIM_ENABLE_PIN_INFO_T *pt_info);

 int (*qser_sim_disablepin)(sim_client_handle_type h_sim, QSER_SIM_DISABLE_PIN_INFO_T *pt_info);

 int (*qser_sim_getcardstatus)(sim_client_handle_type h_sim, QSER_SIM_SLOT_ID_TYPE_T simId, QSER_SIM_CARD_STATUS_INFO_T *pt_info);

+int (*qser_sim_getimei)(sim_client_handle_type h_sim, char *imei);

+int (*qser_get_imei_and_sv)(sim_client_handle_type h_sim,char *imei, char*sv);

+int (*qser_reset_modem)(sim_client_handle_type h_sim);

+int (*qser_get_version)(sim_client_handle_type h_sim, char *buf);

+int (*qser_reset_sim)(sim_client_handle_type h_sim);

 

 

 typedef struct

@@ -70,7 +76,12 @@
     {7,   "qser_enable_pin"},

     {8,   "qser_disable_pin"},

     {9,   "qser_get_sim_status"},

-    {10,   "qser_deinit_sim"},

+    {10,   "qser_get_imei"},

+    {11,   "qser_get_imei_and_sv"},

+    {12,   "qser_reset_modem"},

+    {13,   "qser_get_version"},

+    {14,   "qser_reset_sim"},

+    {15,   "qser_deinit_sim"},

     {-1,    NULL}

 };

 

@@ -405,6 +416,105 @@
             //qser_deinit_sim

             case 10:

             {

+                char imei[BUF_SIZE]="";

+                qser_sim_getimei = (int(*)(sim_client_handle_type h_sim, char *imei))dlsym(dlHandle_sim,"qser_sim_getimei");

+                if(NULL != qser_sim_getimei)

+                {

+                    res = qser_sim_getimei(h_sim, imei);

+                    if(res == 0)

+                    {

+                        printf("get imei success!!!\n");

+                    }else{

+                        printf("get imei error, res = %d\n", res);

+                    }

+                }else{

+                    printf("qser_sim_getimei dlsym error\n");

+                }

+                flag_init = 0;

+                break;

+            }

+            //qser_get_imei_and_sv

+            case 11:

+            {

+                char imei[BUF_SIZE]="";

+                char sv[BUF_SIZE]="";

+                qser_get_imei_and_sv = (int(*)(sim_client_handle_type h_sim, char *imei, char *sv))dlsym(dlHandle_sim,"qser_get_imei_and_sv");

+                if(NULL != qser_get_imei_and_sv)

+                {

+                    res = qser_get_imei_and_sv(h_sim, imei, sv);

+                    if(res == 0)

+                    {

+                        printf("get imei and sv success!!!\n");

+                    }else{

+                        printf("get imei and sv error, res = %d\n", res);

+                    }

+                }else{

+                    printf("qser_get_imei_and_sv dlsym error\n");

+                }

+                flag_init = 0;

+                break;

+            }

+            //qser_reset_modem

+            case 12:

+            {

+                qser_reset_modem = (int(*)(sim_client_handle_type h_sim))dlsym(dlHandle_sim,"qser_reset_modem");

+                if(NULL != qser_reset_modem)

+                {

+                    res = qser_reset_modem(h_sim);

+                    if(res == 0)

+                    {

+                        printf("reset modem success!!!\n");

+                    }else{

+                        printf("reset modem error, res = %d\n", res);

+                    }

+                }else{

+                    printf("qser_reset_modem dlsym error\n");

+                }

+                flag_init = 0;

+                break;

+            }

+            //qser_get_version

+            case 13:

+            {

+                char buf[VER_SIZE]="";

+                qser_get_version = (int(*)(sim_client_handle_type h_sim, char *buf))dlsym(dlHandle_sim,"qser_get_version");

+                if(NULL != qser_get_version)

+                {

+                    res = qser_get_version(h_sim, buf);

+                    if(res == 0)

+                    {

+                        printf("get version success!!!\n");

+                    }else{

+                        printf("get version error, res = %d\n", res);

+                    }

+                }else{

+                    printf("qser_get_version dlsym error\n");

+                }

+                flag_init = 0;

+                break;

+            }

+            //qser_reset_sim

+            case 14:

+            {

+                qser_reset_sim = (int(*)(sim_client_handle_type h_sim))dlsym(dlHandle_sim,"qser_reset_sim");

+                if(NULL != qser_reset_sim)

+                {

+                    res = qser_reset_sim(h_sim);

+                    if(res == 0)

+                    {

+                        printf("reset sim success!!!\n");

+                    }else{

+                        printf("reset sim error, res = %d\n", res);

+                    }

+                }else{

+                    printf("qser_reset_sim dlsym error\n");

+                }

+                flag_init = 0;

+                break;

+            }

+            //qser_deinit_sim

+            case 15:

+            {

                 qser_sim_client_deinit = (int(*)(sim_client_handle_type h_sim))dlsym(dlHandle_sim,"qser_sim_client_deinit");

                 if(NULL != qser_sim_client_deinit)

                 {

@@ -413,7 +523,7 @@
                     {

                         printf("sim deinit success is!!!\n");

                     }else{

-                        printf("get imsi error, res = %d\n", res);

+                        printf("sim deint errors, res = %d\n", res);

                     }

                 }else{

                     printf("qser_sim_client_deinit dlsym error\n");

diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/include/lynq_qser_sim.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/include/lynq_qser_sim.h
index 0895f45..f4d3233 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/include/lynq_qser_sim.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/include/lynq_qser_sim.h
@@ -375,6 +375,11 @@
     QSER_SIM_CARD_STATUS_INFO_T   *pt_info   ///< [OUT] Cart status infor output
 );
 
+int qser_sim_getimei(sim_client_handle_type h_sim, char *imei);
+int qser_get_imei_and_sv(sim_client_handle_type h_sim,char *imei, char*sv);
+int qser_reset_modem(sim_client_handle_type h_sim);
+int qser_get_version(sim_client_handle_type h_sim, char *buf);
+int qser_reset_sim(sim_client_handle_type h_sim);
 
 #ifdef __cplusplus
 }
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/lynq_qser_sim.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/lynq_qser_sim.cpp
index d95945d..d413c17 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/lynq_qser_sim.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/lynq_qser_sim.cpp
@@ -209,5 +209,71 @@
     return ret;
 }
 
+int qser_sim_getimei(sim_client_handle_type h_sim, char *imei)
+{
+    int ret = 0;
+    if(h_sim == 0)
+    {
+        LYERRLOG("not init\n");
+        return E_QSER_ERROR_BADPARM;
+    }
+    ret = lynq_get_imei(imei);
+
+    LYINFLOG("[%s-%d] QSER_IMEI: %s\n", __FUNCTION__, __LINE__, imei);
+
+    return ret;
+}
+int qser_get_imei_and_sv(sim_client_handle_type h_sim,char *imei, char*sv)
+{
+    int ret = 0;
+
+    if(h_sim == 0)
+    {
+        LYERRLOG("not init\n");
+        return E_QSER_ERROR_BADPARM;
+    }
+    ret = lynq_get_imei_and_sv(imei, sv);
+    LYINFLOG("[%s-%d] QSER_GET_IMEI_AND_SV: %s, %s\n", __FUNCTION__, __LINE__, imei, sv);
+    return ret;
+}
+int qser_reset_modem(sim_client_handle_type h_sim)
+{
+    int ret = 0;
+
+    if(h_sim == 0)
+    {
+        LYERRLOG("not init\n");
+        return E_QSER_ERROR_BADPARM;
+    }
+    ret = lynq_reset_modem();
+    return ret;
+}
+
+int qser_get_version(sim_client_handle_type h_sim, char *buf)
+{
+    int ret = 0;
+
+    if(h_sim == 0)
+    {
+        LYERRLOG("not init\n");
+        return E_QSER_ERROR_BADPARM;
+    }
+    ret = lynq_get_version(buf);
+    LYINFLOG("[%s-%d] QSER_GET_VERSION: %s\n", __FUNCTION__, __LINE__, buf);
+    return ret;
+}
+
+int qser_reset_sim(sim_client_handle_type h_sim)
+{
+    int ret = 0;
+
+    if(h_sim == 0)
+    {
+        LYERRLOG("not init\n");
+        return E_QSER_ERROR_BADPARM;
+    }
+    ret = lynq_reset_sim();
+    return ret;
+}
 DEFINE_LYNQ_LIB_LOG(LYNQ_QSER_SIM)
 
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/makefile b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/makefile
index cafc77c..12704dd 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/makefile
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sim/makefile
@@ -10,6 +10,9 @@
                 -fpermissive \
 
 
+ifeq ($(strip $(TARGET_PLATFORM)), T106)
+LOCAL_CFLAGS += -DMOBILETEK_TARGET_PLATFORM_T106 
+endif
 
 $(warning ################# lynq qser sms demo ROOT: $(ROOT),includedir:$(includedir))
 LOCAL_PATH   = .
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/ril/reference-ril/reference-ril.c b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/ril/reference-ril/reference-ril.c
index 081c584..cd5220a 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/ril/reference-ril/reference-ril.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/ril/reference-ril/reference-ril.c
Binary files differ