Merge "[Bugfix][T108][bug-view-1825]Fix the issue of probability crash when reading data fails" into GSW_V1453
diff --git a/build.sh b/build.sh
index 463ffbf..950ef41 100755
--- a/build.sh
+++ b/build.sh
@@ -187,9 +187,6 @@
 		if [ ! -f S12gsw_start -a -f ../init.d/gsw_start ];then
 			ln -s ../init.d/gsw_start S12gsw_start
 		fi
-		mv S10adbd S13adbd
-		mv S10dnsmasq S13dnsmasq
-		mv S10sdcard_mount S20sdcard_mount
 
 		cd $CUR_PWD
 
diff --git a/marvell/swd/FACT/asr1806_p301_QSPINAND_Trusted_TOS_SDTIM_LPDDR2_AB_MBTK.blf b/marvell/swd/FACT/asr1806_p301_QSPINAND_Trusted_TOS_SDTIM_LPDDR2_AB_MBTK.blf
index 1c91b7d..e2e0cbe 100755
--- a/marvell/swd/FACT/asr1806_p301_QSPINAND_Trusted_TOS_SDTIM_LPDDR2_AB_MBTK.blf
+++ b/marvell/swd/FACT/asr1806_p301_QSPINAND_Trusted_TOS_SDTIM_LPDDR2_AB_MBTK.blf
@@ -1,7 +1,7 @@
 [BLF_Version]

 Blf_Version_Number = V3.0.0

 [UE_Options]

-UE_Boot_Option = 1

+UE_Boot_Option = 0

 [Flash_Properties]

 Flash_Block_Size = 0x40000

 Flash_NandID = 0xffff

diff --git a/mbtk/libgsw_lib/gsw_gnss_interface.c b/mbtk/libgsw_lib/gsw_gnss_interface.c
index d6d7b01..00afd57 100755
--- a/mbtk/libgsw_lib/gsw_gnss_interface.c
+++ b/mbtk/libgsw_lib/gsw_gnss_interface.c
@@ -237,13 +237,10 @@
 int mbtk_gnss_set_VTG()

 {

     int ret;

-    char param_buf[32] = {0};

-    snprintf(param_buf, 32, "$MSGCFG,2,1000");

-    mbtk_gnss_setting=(int(*)(const char *setting_cmd, int))dlsym(dlHandle_gnss, "mbtk_gnss_setting");

-    ret = mbtk_gnss_setting(param_buf, QSER_GNSS_TIMEOUT);

+    ret = system("/usr/sbin/gnss_gpio.sh VTG > /dev/null 2>&1");

     if(ret != 0)

     {

-        LOGE("[qser_gnss] mbtk_gnss_setting fail.ret = [%d]", ret);

+        LOGE("[GSW_gnss] mbtk_gnss_set_VTG on fail.ret = [%d]", ret);

         return GSW_HAL_NORMAL_FAIL;

     }

     return GSW_HAL_SUCCESS;

@@ -482,6 +479,13 @@
         LOGE("[GSW_gnss] gnss_gpio.sh on fail.ret = [%d]", ret);

         return GSW_HAL_NORMAL_FAIL;

     }

+    // 记录mbtk_gnss_open前的时间戳

+    struct timespec start_time;

+    if (clock_gettime(CLOCK_MONOTONIC, &start_time) != 0) {

+        LOGE("[GSW_gnss] Failed to get start time");

+        return GSW_HAL_NORMAL_FAIL;

+    }

+

     mbtk_gnss_open=(int(*)(int,int))dlsym(dlHandle_gnss, "mbtk_gnss_open");

     ret = mbtk_gnss_open(255, QSER_GNSS_TIMEOUT);

     if(ret != 0)

@@ -499,11 +503,27 @@
     if (gnss_switch_op > 0)

         gsw_gnss_epo_switch(gnss_switch_op);

     */

+    

+    // 记录mbtk_gnss_set_VTG前的时间戳并计算等待时间

+    struct timespec end_time;

+    if (clock_gettime(CLOCK_MONOTONIC, &end_time) != 0) {

+        LOGE("[GSW_gnss] Failed to get end time");

+        return GSW_HAL_NORMAL_FAIL;

+    }

+    long start_ms = start_time.tv_sec * 1000 + start_time.tv_nsec / 1000000;

+    long end_ms = end_time.tv_sec * 1000 + end_time.tv_nsec / 1000000;

+    long diff_ms = end_ms - start_ms;

+    if (diff_ms < 700) {

+        long wait_ms = 700 - diff_ms;

+        usleep(wait_ms * 1000);  // 转换为微秒等待

+    }

+    

     mbtk_gnss_set_VTG();

 

     return GSW_HAL_SUCCESS;

 }

 

+

 /**

  * @brief SDK interface to stop gnss

  * @param 

diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init
index 0e041ee..0fdf6de 100755
--- a/package/network/services/dnsmasq/files/dnsmasq.init
+++ b/package/network/services/dnsmasq/files/dnsmasq.init
@@ -1,7 +1,7 @@
 #!/bin/sh /etc/rc.common
 # Copyright (C) 2007-2012 OpenWrt.org
 
-START=10
+START=13
 
 USE_PROCD=1
 PROG=/usr/sbin/dnsmasq
diff --git a/package/services/optee_client/files/etc/init.d/tee-supplicant.init b/package/services/optee_client/files/etc/init.d/tee-supplicant.init
index 810f25b..e911f23 100755
--- a/package/services/optee_client/files/etc/init.d/tee-supplicant.init
+++ b/package/services/optee_client/files/etc/init.d/tee-supplicant.init
@@ -1,6 +1,6 @@
 #!/bin/sh /etc/rc.common
 
-START=25
+START=12
 
 start() {
 	if [ -e /dev/tee0 ] && [ ! -e /data/tee ]; then
diff --git a/package/utils/adbd/adbd.init b/package/utils/adbd/adbd.init
index 64211a1..1aa2d9c 100755
--- a/package/utils/adbd/adbd.init
+++ b/package/utils/adbd/adbd.init
@@ -2,7 +2,7 @@
 # Copyright (C) 2006-2011 OpenWrt.org
 
 # Change by liubin
-START=10
+START=13
 STOP=99
 
 USE_PROCD=1
diff --git a/target/linux/mmp/base-files/etc/init.d/sdcard_mount b/target/linux/mmp/base-files/etc/init.d/sdcard_mount
index 45490e5..e85bdc3 100755
--- a/target/linux/mmp/base-files/etc/init.d/sdcard_mount
+++ b/target/linux/mmp/base-files/etc/init.d/sdcard_mount
@@ -2,7 +2,7 @@
 # Marvell sd card detect & mount script
 
 # Change by mbtk
-START=10
+START=20
 STOP=91
 
 WEBDAV_SD=/www/webdav/sdcard