diff --git a/tool/update-upgrade/ss-do-upgrade.sh b/tool/update-upgrade/ss-do-upgrade.sh
index dd78410..474a777 100755
--- a/tool/update-upgrade/ss-do-upgrade.sh
+++ b/tool/update-upgrade/ss-do-upgrade.sh
@@ -9,7 +9,7 @@ if [ "$(id -u)" != "0" ] ; then
 		exit
 	fi
 fi
-
+HERE=$(dirname $0)
 trap "rm -f /tmp/spark-store/upgradeStatus.txt" EXIT
 source /opt/durapps/spark-store/bin/bashimport/transhell.amber
 load_transhell_debug
@@ -58,20 +58,20 @@ function get_name_from_desktop_file() {
 touch /tmp/spark-store/upgradeStatus.txt
 
 # 执行 apt update
-pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh ssupdate 2>&1 > /dev/null | zenity --progress --auto-close --pulsate --no-cancel --text="${TRANSHELL_CONTENT_UPDATE_CHEKING_PLEASE_WAIT}" --height 70 --width 400 --title="${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
+pkexec ${HERE}/ss-do-upgrade-worker.sh ssupdate 2>&1 > /dev/null | zenity --progress --auto-close --pulsate --no-cancel --text="${TRANSHELL_CONTENT_UPDATE_CHEKING_PLEASE_WAIT}" --height 70 --width 400 --title="${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
 
 if [ -z `cat /tmp/spark-store-app-ssupdate-status.txt` ] ; then
-	/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh clean-log
+	${HERE}/ss-do-upgrade-worker.sh clean-log
 else
 	zenity --error --text "${TRANSHELL_CONTENT_CHECK_UPDATE_PROCESS_ERROR_PRESS_CONFIRM_TO_CHECK}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --height 200 --width 350 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
 	zenity --text-info --filename=/tmp/spark-store-app-ssupdate-log.txt --checkbox="${TRANSHELL_CONTENT_I_ALREDY_COPIED_THE_LOG_HERE_AND_WILL_USE_IT_TO_FEEDBACK}" --title="${TRANSHELL_CONTENT_FEEDBACK_CAN_BE_FOUND_IN_THE_SETTINGS}" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
-	/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh clean-log
+	${HERE}/ss-do-upgrade-worker.sh clean-log
     rm -f /tmp/spark-store/upgradeStatus.txt
 	exit
 fi
 
 # 获取可更新应用列表
-PKG_LIST="$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgradable-list)"
+PKG_LIST="$(${HERE}/ss-do-upgrade-worker.sh upgradable-list)"
 ## 如果没更新,就弹出不需要更新
 if [ -z "$PKG_LIST" ] ; then
 	zenity --info --text "${TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
@@ -113,24 +113,51 @@ done)
 
 	## 如果没有应用需要更新,则直接退出
 	if [ -z "$PKG_UPGRADE_LIST" ] ; then
-		zenity --info --text "${TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
-	else
-		PKG_UPGRADE_LIST=$(echo "$PKG_UPGRADE_LIST" | zenity --list --text="${TRANSHELL_CONTENT_CHOOSE_APP_TO_UPGRADE}" --column="${TRANSHELL_CONTENT_CHOOSE}" --column="${TRANSHELL_CONTENT_APP_NAME}" --column="${TRANSHELL_CONTENT_NEW_VERSION}" --column="${TRANSHELL_CONTENT_UPGRADE_FROM}" --column="${TRANSHELL_CONTENT_PKG_NAME}" --separator=" " --checklist --multiple --print-column=5 --height 350 --width 650 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg)
+		zenity --info --text "${TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --height 150 --width 300 
+        exit 0
+	fi
+
+
+    while true;do
+		PKG_UPGRADE_LIST=$(echo "$PKG_UPGRADE_LIST" | zenity --list --text="${TRANSHELL_CONTENT_CHOOSE_APP_TO_UPGRADE}" --column="${TRANSHELL_CONTENT_CHOOSE}" --column="${TRANSHELL_CONTENT_APP_NAME}" --column="${TRANSHELL_CONTENT_NEW_VERSION}" --column="${TRANSHELL_CONTENT_UPGRADE_FROM}" --column="${TRANSHELL_CONTENT_PKG_NAME}" --separator=" " --checklist --multiple --print-column=5 --height 350 --width 650 )
 		## 如果没有选择,则直接退出
 		if [ -z "$PKG_UPGRADE_LIST" ] ; then
-			zenity --info --text "${TRANSHELL_CONTENT_NO_APP_IS_CHOSEN}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
-		else ### 更新用户选择的应用
-			(for PKG_UPGRADE in $PKG_UPGRADE_LIST ; do
-				APP_UPGRADE="$(get_name_from_desktop_file $PKG_UPGRADE)"
-				update_transhell
+			zenity --info --text "${TRANSHELL_CONTENT_NO_APP_IS_CHOSEN}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --height 150 --width 300 
+             exit 0
+		fi
+        if [[ "$PKG_UPGRADE_LIST" == *"(null)"* ]]; then
+            zenity --error --text "${TRANSHELL_CONTENT_LIST_NOT_LOADED_PLEASE_WAIT}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --height 150 --width 300
+        else
+            break
+        fi
+done
+			### 更新用户选择的应用
+#	for PKG_UPGRADE in $PKG_UPGRADE_LIST;do
+#			APP_UPGRADE="$(get_name_from_desktop_file $PKG_UPGRADE)"
+#			update_transhell
+
+(
+total=$(echo "$PKG_UPGRADE_LIST" | wc -w)
+count=0
+
+for PKG_UPGRADE in $PKG_UPGRADE_LIST; do
+    count=$((count + 1))
+    APP_UPGRADE="$(get_name_from_desktop_file $PKG_UPGRADE)"
+    update_transhell
+
+    # 启动升级任务
+    (yes | pkexec ${HERE}/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE -y 2>&1 > /dev/null ) &
+
+    # 计算进度百分比
+    progress=$(( count * 100 / total - 1))
+    
+    # 动态修改zenity的文本
+    echo "# ${TRANSHELL_CONTENT_UPGRADING_PLEASE_WAIT}"
+    echo "$progress"
+    wait
+done
+) | zenity --progress --auto-close --no-cancel --text="Preparing..." --height 70 --width 400 --title="${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
 
-				# 启动升级任务
-				(pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE -y 2>&1 > /dev/null ) &
-				cmd_pid=$!
-				# 动态修改zenity的文本
-				echo "# ${TRANSHELL_CONTENT_UPGRADING_PLEASE_WAIT}"
-				wait
-			done) | zenity --progress --auto-close --no-cancel --pulsate --text="Preparing..." --height 70 --width 400 --title="${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
 
 			#### 更新成功
 			if [ -z "`cat /tmp/spark-store-app-upgrade-status.txt`" ] ; then
@@ -139,8 +166,6 @@ done)
 				zenity --error --text "${TRANSHELL_CONTENT_APP_UGRADE_PROCESS_ERROR_PRESS_CONFIRM_TO_CHECK}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --height 200 --width 350 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
 				zenity --text-info --filename=/tmp/spark-store-app-upgrade-log.txt --checkbox="${TRANSHELL_CONTENT_I_ALREDY_COPIED_THE_LOG_HERE_AND_WILL_USE_IT_TO_FEEDBACK}" --title="${TRANSHELL_CONTENT_FEEDBACK_CAN_BE_FOUND_IN_THE_SETTINGS}" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
 			fi
-		fi
-	fi
 fi
 
 rm -f /tmp/spark-store/upgradeStatus.txt