[Bugfix][T106BUG-18][T106BUG-11]fix reset sim bug

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

Change-Id: Id3bfac4bf5b7213651f12244d11d1afdc019258d
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/commands.h b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/commands.h
index f4328f4..384f916 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/commands.h
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/commands.h
@@ -46,6 +46,10 @@
     {"RIL_REQUEST_SIM_IO", iccIOForApp, "", RIL_REQUEST_SIM_IO},
     {"RIL_REQUEST_QUERY_EID", queryEid, "query Eid", RIL_REQUEST_QUERY_EID},
     {"RIL_REQUEST_QUERY_SIM_RETRY_COUNT", querySimRetryCount, "", RIL_REQUEST_QUERY_SIM_RETRY_COUNT},
+    {"RIL_REQUEST_GET_MSISDN", querynum, "query num", RIL_REQUEST_GET_MSISDN},
+    {"RIL_REQUEST_RESET_SIMCARD", resetsimcard, "reset sim caryd", RIL_REQUEST_RESET_SIMCARD},
+
+
 //Data
     {"RIL_REQUEST_ALLOW_DATA",setDataAllowed, "allow data", RIL_REQUEST_ALLOW_DATA},
     {"RIL_REQUEST_SETUP_DATA_CALL",setupDataCall, "set up data", RIL_REQUEST_SETUP_DATA_CALL},
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/mtk_ril_commands.h b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/mtk_ril_commands.h
index eb1f8d0..f809509 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/mtk_ril_commands.h
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/mtk_ril_commands.h
@@ -79,6 +79,8 @@
 { RIL_REQUEST_MODEM_POWERON,dispatchVoid,responseVoid},
 //SIM
 { RIL_REQUEST_QUERY_ICCID, dispatchVoid, responseString},
+{ RIL_REQUEST_GET_MSISDN, dispatchVoid, responseString},
+{ RIL_REQUEST_RESET_SIMCARD, dispatchVoid, responseVoid},
 //Keepalive
 #ifdef KEEP_ALIVE
 { RIL_REQUEST_START_KEEPALIVE_PRO,dispatchStartKeepalivePro,responseInts},
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ril.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ril.cpp
index c23afae..84dcb15 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ril.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ril.cpp
@@ -5206,6 +5206,8 @@
         case LYNQ_REQUEST_SET_DEFAULT_SIM_ALL:return "SET_DEFAULT_SIM_ALL";
         case LYNQ_REQUEST_CHANGE_SCREEN_STATE:return "LYNQ_REQUEST_CHANGE_SCREEN_STATE";/*jb.qi add for two sim sleep 2022/9/19*/
         case LYNQ_REQUEST_CHANGE_RADIO:return "LYNQ_REQUEST_CHANGE_RADIO";/*lei add for factory test of sleep 2022/9/19*/
+        case RIL_REQUEST_GET_MSISDN:return "RIL_REQUEST_GET_MSISDN";
+        case RIL_REQUEST_RESET_SIMCARD:return "RIL_REQUEST_RESET_SIMCARD";
         /*warren add for t800 ril service 2022/1/22 end*/
         default: return "<unknown request>";
     }
@@ -5475,6 +5477,8 @@
         case LYNQ_REQUEST_SET_DEFAULT_SIM_ALL:return "SET_DEFAULT_SIM_ALL";
         case LYNQ_REQUEST_CHANGE_SCREEN_STATE:return "LYNQ_REQUEST_CHANGE_SCREEN_STATE";/*jb.qi add for two sim sleep 2022/9/19*/
         case LYNQ_REQUEST_CHANGE_RADIO:return "LYNQ_REQUEST_CHANGE_RADIO";/*lei add for factory test of sleep 2022/9/19*/
+        case RIL_REQUEST_GET_MSISDN: return "GET MSISDN";
+        case RIL_REQUEST_RESET_SIMCARD: return "RESET SIMCARD";
         /*warren add for t800 ril service 2022/1/22 end*/
         default: return "<unknown request>";
     }
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sim.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sim.cpp
index f1bba40..ca6fe69 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sim.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sim.cpp
@@ -474,6 +474,36 @@
     return 0;
 }
 
+//RIL_REQUEST_GET_MSISDN
+int querynum(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI) {
+    if(argc != 1)
+    {
+        free(pRI);
+        RLOGD("the paremeters numbers isn't right , so return");
+        return -1;
+    }
+    RLOGD("getcnum %d: " , pRI->pCI->requestNumber);
+    android::Parcel p;
+
+    pRI->pCI->dispatchFunction(p, pRI);
+    return 0;
+}
+
+//RIL_REQUEST_RESET_SIMCARD
+int resetsimcard(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI) {
+    if(argc != 1)
+    {
+        free(pRI);
+        RLOGD("the paremeters numbers isn't right , so return");
+        return -1;
+    }
+    RLOGD("resetsimcard %d: " , pRI->pCI->requestNumber);
+    android::Parcel p;
+
+    pRI->pCI->dispatchFunction(p, pRI);
+    return 0;
+}
+
 //RIL_REQUEST_QUERY_EID
 int queryEid(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI) {
     if(argc != 1)
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sim.h b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sim.h
index 54d2564..47b6b8f 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sim.h
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sim.h
@@ -64,4 +64,7 @@
 int iccCloseLogicalChannel(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI);
 int querySimRetryCount(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI);
 int queryEid(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI);
+int querynum(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI);
+int resetsimcard(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI);
+
 #endif
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-sim/include/lynq_sim.h b/cap/zx297520v3/src/lynq/lib/liblynq-sim/include/lynq_sim.h
index 325d52f..bf271f1 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-sim/include/lynq_sim.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-sim/include/lynq_sim.h
@@ -71,8 +71,11 @@
  * @brief sim power on/off
  * 
  */
+#ifdef MOBILETEK_TARGET_PLATFORM_T106
+int lynq_reset_sim(void);
+#else
 int lynq_sim_power(int mode);
-
+#endif
 /**
  * @brief reset modem
  * 
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 a32d152..e62153a 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
@@ -338,6 +338,23 @@
     return res;
 }
 
+#ifdef MOBILETEK_TARGET_PLATFORM_T106
+int lynq_reset_sim(void)
+{
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
+    Parcel p;
+    int res = lynq_send_common_request(&p,RIL_REQUEST_RESET_SIMCARD,0,1,"");
+    if(res != 0)
+    {
+        RLOGD("function %s execute error", __FUNCTION__);
+        return res;
+    }
+    return res;
+}
+#else
 int lynq_sim_power(int mode)
 {
     if(g_lynq_sim_init_flag == 0)
@@ -353,6 +370,7 @@
     }
     return res;
 }
+#endif
 
 int lynq_disable_pin(char *pin){
     if(g_lynq_sim_init_flag == 0)
@@ -510,7 +528,26 @@
         return 9001;
     }
 }
+#ifdef MOBILETEK_TARGET_PLATFORM_T106
+int lynq_query_phone_number(char buf[]){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
+    Parcel p;
+    int res = lynq_send_common_request(&p,RIL_REQUEST_GET_MSISDN,0,1,"");
+    
+    if(res != 0)
+    {
+        RLOGD("function %s execute error", __FUNCTION__);
+        return res;
+    }
+    char * test = lynqStrdupReadString(p);
+    memcpy(buf, test, strlen(test));
+    return res;
+}
 
+#else
 int lynq_query_phone_number(char buf[]){
     if(g_lynq_sim_init_flag == 0)
     {
@@ -535,6 +572,7 @@
     }
     return res;
 }
+#endif
 
 int lynq_get_imei(char buf[])
 {
diff --git a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/lynq.h b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/lynq.h
index a096d09..d9a5253 100755
--- a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/lynq.h
+++ b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/lynq.h
@@ -96,6 +96,7 @@
 #define LYNQ_GET_IMEI LYNQ_SIM + 15
 #define LYNQ_GET_VERSION LYNQ_SIM + 16
 
+#define LYNQ_GET_MSISDN LYNQ_SIM + 18
 
 
 #define LYNQ_QSER_SIM LYNQ_BASE + 140
diff --git a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/makefile b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/makefile
index ce61de2..beafc9c 100755
--- a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/makefile
+++ b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/makefile
@@ -7,7 +7,7 @@
                 -flto \
 
 ifeq ($(strip $(TARGET_PLATFORM)), T106)
-LOCAL_CFLAGS += -DBINDER_IPC_32BIT=1 -DHAVE_ENDIAN_H -DHAVE_PTHREADS -DHAVE_SYS_UIO_H -DHAVE_POSIX_FILEMAP -DHAVE_STRLCPY -DHAVE_PRCTL -DHAVE_MEMSET16 -DHAVE_MEMSET32 -DANDROID_SMP=0
+LOCAL_CFLAGS += -DBINDER_IPC_32BIT=1 -DHAVE_ENDIAN_H -DHAVE_PTHREADS -DHAVE_SYS_UIO_H -DHAVE_POSIX_FILEMAP -DHAVE_STRLCPY -DHAVE_PRCTL -DHAVE_MEMSET16 -DHAVE_MEMSET32 -DANDROID_SMP=0 -DMOBILETEK_TARGET_PLATFORM_T106 
 endif
 
 LOCAL_CFLAGS += -Wno-error=format-security
diff --git a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/req_commands.h b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/req_commands.h
index 7254719..5d84011 100755
--- a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/req_commands.h
+++ b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/req_commands.h
@@ -82,6 +82,7 @@
     //RIL_REQUEST_OEM_HOOK_RAW
     {"LYNQ_SIM_DEINIT",deinit_sim, "deinit sim lib", LYNQ_SIM_DEINIT},
     {"LYNQ_GET_VERSION",get_version, "lynq get version", LYNQ_GET_VERSION},
+    {"LYNQ_GET_MSISDN",get_msisdn, "lynq get msisdn", LYNQ_GET_MSISDN},
 //
 
 //QSER SIM
diff --git a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/sim.cpp b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/sim.cpp
index cc1e461..bf7f92a 100755
--- a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/sim.cpp
+++ b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/sim.cpp
@@ -68,7 +68,11 @@
     printf("[%s][%d] enter!\n",__FUNCTION__,__LINE__);
     int ret = -1;
     int mode = 0;
+#ifdef MOBILETEK_TARGET_PLATFORM_T106
+    ret = lynq_reset_sim();
+#else
     ret = lynq_sim_power(mode);
+#endif
     printf("%s%d\n",TEST_RESULT,ret);
     return ret;
 }
@@ -200,6 +204,17 @@
     return ret;
 }
 
+int get_msisdn(int argc, char *argv[], int sp_test)
+{
+    printf("[%s][%d] enter!\n",__FUNCTION__,__LINE__);
+    char buf[128] = "";
+    int ret = -1;
+    ret = lynq_query_phone_number(buf);
+    printf("[%s][%d] buf = %s\n",__FUNCTION__,__LINE__, buf);
+    printf("%s%d\n",TEST_RESULT,ret);
+    return ret;
+}
+
 //qser api
 sim_client_handle_type  ph_sim;
 int qser_init_sim(int argc, char *argv[], int sp_test)
diff --git a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/sim.h b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/sim.h
index ce6a254..bd6511f 100755
--- a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/sim.h
+++ b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/sim.h
@@ -18,6 +18,8 @@
 int deinit_sim(int argc, char *argv[], int sp_test);
 int get_version(int argc, char *argv[], int sp_test);
 int reset_modem(int argc, char *argv[], int sp_test);
+int get_msisdn(int argc, char *argv[], int sp_test);
+int reset_simcard(int argc, char *argv[], int sp_test);
 
 //QSER SIM
 int qser_init_sim(int argc, char *argv[], int sp_test);