[Bugfix][T106BUG-395][T106BUG-381]fix version error and pin error

    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: I4675071fc7c2564997a97e3cbccf1ac0ab57f50e
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 2736f29..c5b61b6 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
@@ -308,7 +308,8 @@
                     char new_pin[BUF_PIN] = {0};

                     printf("input new pin\n");

                     scanf("%s", new_pin);

-

+                    memset(pt_info.puk_value, 0, sizeof(pt_info.puk_value));

+                    memset(pt_info.new_pin_value, 0, sizeof(pt_info.new_pin_value));

                     strncpy(pt_info.puk_value, puk, BUF_PIN);

                     strncpy(pt_info.new_pin_value, new_pin, BUF_PIN);

                     printf("pt_info.puk_value = %s, puk = %s\n", pt_info.puk_value, puk);

@@ -416,119 +417,149 @@
             //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");

+                if(flag_init == 0){

+                    printf("must init first\n");

                 }

-                flag_init = 0;

-                break;

+                else{

+                    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");

+                if(flag_init == 0){

+                    printf("must init first\n");

                 }

-                flag_init = 0;

+                else{

+                    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");

+                if(flag_init == 0){

+                    printf("must init first\n");

                 }

-                flag_init = 0;

+                else{

+                    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");

+                if(flag_init == 0){

+                    printf("must init first\n");

                 }

-                flag_init = 0;

+                else{

+                    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");

+                if(flag_init == 0){

+                    printf("must init first\n");

                 }

-                flag_init = 0;

+                else{

+                    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)

-                {

-                    res = qser_sim_client_deinit(h_sim);

-                    if(res == 0)

-                    {

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

-                    }else{

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

-                    }

-                }else{

-                    printf("qser_sim_client_deinit dlsym error\n");

+                if(flag_init == 0){

+                    printf("must init first\n");

                 }

-                flag_init = 0;

+                else{

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

+                    if(NULL != qser_sim_client_deinit)

+                    {

+                        res = qser_sim_client_deinit(h_sim);

+                        if(res == 0)

+                        {

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

+                        }else{

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

+                        }

+                    }else{

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

+                    }

+                 }

+                //flag_init = 0;

                 break;

             }

             default:

diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
index e62153a..ce281e4 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
@@ -926,6 +926,10 @@
 {
     FILE * fp;
     char buffer[128];
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     sprintf(buffer, "%s", "uci get lynq_uci_ro.lynq_version.LYNQ_SW_VERSION");
     fp = popen(buffer, "r");
     fgets(buffer, sizeof(buffer), fp);