Merge "[Bugfix][T106BUG-443]change reset sim error num"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
index a8470b2..8206074 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
@@ -1395,6 +1395,9 @@
 # CONFIG_NET_VENDOR_XILINX is not set
 CONFIG_NET_VENDOR_ZTE=y
 CONFIG_ZX29_GMAC=y
+# zw.wang modify for T106BUG-423 20240118 start
+CONFIG_BOOT_WITHOUT_LOCK=y
+# zw.wang modify for T106BUG-423 20240118  end
 CONFIG_PHYLIB=y
 CONFIG_SWPHY=y
 CONFIG_FIXED_PHY=y
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp
index b497527..105d347 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -1594,7 +1594,7 @@
         return -1;
     }
 
-    if(user == NULL || strcmp(user, "NULL") == 0)
+    if(user == NULL || strcmp(user, "NULL") == 0 || strlen(user) == 0)
     {
         argv[1] = NULL;
     }
@@ -1603,7 +1603,7 @@
         argv[1] = user;
     }
 
-    if(password == NULL || strcmp(password, "NULL") == 0)
+    if(password == NULL || strcmp(password, "NULL") == 0 || strlen(password) == 0)
     {
         argv[2] = NULL;
     }
@@ -1612,7 +1612,7 @@
         argv[2] = password;
     }
 
-    if(authType == NULL || strcmp(authType, "NULL") == 0)
+    if(authType == NULL || strcmp(authType, "NULL") == 0 || strlen(authType) == 0)
     {
         argv[3] = NULL;
     }
@@ -1620,7 +1620,7 @@
     {
         argv[3] = authType;
     }
-    if(normalProtocol==NULL)
+    if(normalProtocol==NULL|| strlen(normalProtocol) == 0)
     {
         argv[4] = "IPV4V6";
     }
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp
index fb7494a..a4e452e 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp
@@ -850,6 +850,8 @@
     }
     //check apn_type
     check_node = modify_node;
+    bzero(temp_buff,12);
+    snprintf(temp_buff,sizeof(temp_buff),"%d",(unsigned int)apn->profile_idx);
     while (check_node != NULL)
     {
         if (xmlGetProp(check_node, "profile_idx") == NULL)  //Null Node
@@ -859,6 +861,11 @@
         }
         else if(strcmp((char *)xmlGetProp(check_node, "apn_type"), apn->apn_type) == 0)
         {
+            if(strcmp((char *)xmlGetProp(check_node, "profile_idx"), temp_buff) == 0)
+            {
+                check_node = check_node->next;
+                continue;
+            }
             LYERRLOG("apntype already exists\n");
             goto FAILED;
         }
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
index d508438..90a5521 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
@@ -474,6 +474,7 @@
 {
     int ret = 0;
     int i = 0;
+    int location = 17;
     static struct mopen_location_info_t mopen_location_info;
     static int64_t tmp_time = 0;
     mopen_gnss_nmea_info_t nmea_info;
@@ -513,7 +514,9 @@
     //set system time.
     if (g_gnss_sync_enable_flag == 1 && g_gnss_sync_done == 0)
     {
-        if( strncmp(data+3,NMEA_RMC,strlen(NMEA_RMC)) == 0 && data[17] == 'A')
+        
+        location = (gpio21_value == 0?17:18);
+        if(strncmp(data+3,NMEA_RMC,strlen(NMEA_RMC)) == 0 && data[location] == 'A')
         {
             if (update_system_time(nmea_info.timestamp) == 0)
             {