@@ -4946,29 +4946,22 @@ _GetLatestFWUpdateVersionFromWebsite_()
49464946}
49474947
49484948# #------------------------------------------##
4949- # # Modified by ExtremeFiretop [2025-Jun-28 ] ##
4949+ # # Modified by ExtremeFiretop [2024-May-05 ] ##
49504950# #------------------------------------------##
49514951_GetLatestFWUpdateVersionFromGitHub_ ()
49524952{
4953- local routerVersion search_type
4953+ local routerVersion
49544954 local gitURL=" $1 " # GitHub URL for the latest release #
49554955 local firmware_type=" $2 " # "tuf", "rog" or "pure" #
4956- local grep_pattern downloadURLs theURL urlVersion
49574956
4958- search_type=" $firmware_type " # Default to the input firmware_type #
4957+ local search_type=" $firmware_type " # Default to the input firmware_type #
49594958
4960- # If firmware_type is "pure", set search type to include "squashfs" as well #
4959+ # If firmware_type is "pure", set search_type to include "squashfs" as well
49614960 if [ " $firmware_type " = " pure" ]
49624961 then
49634962 search_type=" pure\|squashfs\|ubi"
49644963 fi
49654964
4966- case " $gitURL " in
4967- * /releases/latest) gitURL=" ${gitURL%/ latest} ?per_page=5" ;;
4968- * /releases) gitURL=" ${gitURL} ?per_page=5" ;;
4969- esac
4970-
4971- # Get current router version & product ID #
49724965 if ! " $offlineUpdateTrigger "
49734966 then
49744967 routerVersion=" $( _GetLatestFWUpdateVersionFromRouter_) "
@@ -4981,40 +4974,38 @@ _GetLatestFWUpdateVersionFromGitHub_()
49814974 return 1
49824975 fi
49834976
4984- # Construct the grep pattern based on search type #
4985- grep_pattern=" \" browser_download_url\" : \" .*${PRODUCT_ID} .*\\ (${search_type} \\ ).*\\ .\(w\\ |pkgtb\)\" "
4977+ # Fetch the latest release data from GitHub #
4978+ local release_data=" $( curl -s " $gitURL " ) "
4979+
4980+ # Construct the grep pattern based on search_type #
4981+ local grep_pattern=" \" browser_download_url\" : \" .*${PRODUCT_ID} .*\(${search_type} \).*\.\(w\|pkgtb\)\" "
49864982
49874983 # Extract all matched download URLs #
4988- downloadURLs=" $( curl -s " $gitURL " \
4989- | grep -o " $grep_pattern " \
4990- | grep -o ' https://[^"]* .\(w\|pkgtb\)' ) "
4984+ local downloadURLs=" $( echo " $release_data " | \
4985+ grep -o " $grep_pattern " | \
4986+ grep -o " https://[^ ]*\ .\(w\|pkgtb\)" ) "
49914987
49924988 if [ -z " $downloadURLs " ]
49934989 then
49944990 echo " **ERROR** **NO_GITHUB_URL**"
49954991 return 1
49964992 else
4993+ local theURL urlVersion
49974994 for theURL in $downloadURLs
49984995 do
49994996 # Extract the version portion from the URL #
50004997 urlVersion=" $( echo " $theURL " \
5001- | grep -oE " ${PRODUCT_ID} _[^/]*\.(w|pkgtb)" \
5002- | sed -e " s/${PRODUCT_ID} _//" \
5003- -e " s/\.w$//" -e " s/\.pkgtb$//" \
5004- -e " s/_ubi$//" -e " s/_puresqubi$//" -e " s/_nand_squashfs$//" \
5005- -e ' s/_/./' -e ' s/_/./' \
5006- -e " s/-gnuton[0-9][0-9]*\$ //" | head -n1) "
5007-
5008- case " $urlVersion " in
5009- * " $routerVersion " * )
5010- echo " $urlVersion "
5011- echo " $theURL "
5012- return 0
5013- ;;
5014- esac
4998+ | grep -oE " ${PRODUCT_ID} _[^ ]*\.(w|pkgtb)" \
4999+ | sed " s/${PRODUCT_ID} _//;s/.w$//;s/.pkgtb$//;s/.ubi$//;s/_/./g;s/-gnuton[0-9][0-9]*\$ //" | head -n1) "
5000+
5001+ if [ " $urlVersion " = " $routerVersion " ]
5002+ then
5003+ echo " $urlVersion "
5004+ echo " $theURL "
5005+ return 0
5006+ fi
50155007 done
50165008 fi
5017- return 1
50185009}
50195010
50205011# #------------------------------------------##
@@ -8638,9 +8629,9 @@ _RunBackupmon_()
86388629 return 0
86398630}
86408631
8641- # #----------------------------------------##
8642- # # Modified by Martinski W. [2025-Feb-15 ] ##
8643- # #----------------------------------------##
8632+ # #------------------------------------------ ##
8633+ # # Modified by ExtremeFiretop [2025-Jun-30 ] ##
8634+ # #------------------------------------------ ##
86448635_RunOfflineUpdateNow_ ()
86458636{
86468637 local retCode
@@ -8747,27 +8738,13 @@ _RunOfflineUpdateNow_()
87478738 extension=" ${sanitized_filename##* .} "
87488739 FW_DL_FPATH=" ${FW_ZIP_DIR} /${FW_FileName} .${extension} "
87498740 _GnutonBuildSelection_
8750- set -- $( _GetLatestFWUpdateVersionFromGitHub_ " $FW_GITURL_RELEASE " " $firmware_choice " )
8751- retCode=" $? "
8752- else
8753- set -- $( _GetLatestFWUpdateVersionFromWebsite_ " $FW_SFURL_RELEASE " )
8754- retCode=" $? "
87558741 fi
8756- if [ " $retCode " -eq 0 ] && [ $# -eq 2 ] && \
8757- [ " $1 " != " **ERROR**" ] && [ " $2 " != " **NO_URL**" ]
8742+ if _AcquireLock_ cliFileLock
87588743 then
8759- release_link=" $2 "
8760- if _AcquireLock_ cliFileLock
8761- then
8762- _RunFirmwareUpdateNow_
8763- _ReleaseLock_ cliFileLock
8764- fi
8765- _ClearOfflineUpdateState_
8766- else
8767- Say " ${REDct} **ERROR**${NOct} : No firmware release URL was found for [$MODEL_ID ] router model."
8768- _ClearOfflineUpdateState_ 1
8769- return 1
8744+ _RunFirmwareUpdateNow_
8745+ _ReleaseLock_ cliFileLock
87708746 fi
8747+ _ClearOfflineUpdateState_
87718748 else
87728749 _ClearOfflineUpdateState_ 1
87738750 return 1
@@ -8961,11 +8938,18 @@ Please manually update to version ${GRNct}${MinSupportedFirmwareVers}${NOct} or
89618938 return 1
89628939 fi
89638940
8964- # #----------------------------------------##
8965- # # Modified by Martinski W. [2025-Jun-01 ] ##
8966- # #----------------------------------------##
8941+ # #------------------------------------------ ##
8942+ # # Modified by ExtremeFiretop [2025-Jun-30 ] ##
8943+ # #------------------------------------------ ##
89678944 # Get the required memory for the firmware download and extraction
8968- requiredRAM_kb=" $( _GetRequiredRAM_KB_ " URL=$release_link " ' phase#1' ) "
8945+ if ! " $offlineUpdateTrigger "
8946+ then requiredRAM_kb=" $( _GetRequiredRAM_KB_ " URL=$release_link " ' phase#1' ) "
8947+ else
8948+ if " $isGNUtonFW "
8949+ then requiredRAM_kb=" $( _GetRequiredRAM_KB_ " FPATH=$FW_DL_FPATH " ' phase#1' ) "
8950+ else requiredRAM_kb=" $( _GetRequiredRAM_KB_ " FPATH=$FW_ZIP_FPATH " ' phase#1' ) "
8951+ fi
8952+ fi
89698953 if ! _HasRouterMoreThan256MBtotalRAM_ && [ " $requiredRAM_kb " -gt 51200 ]
89708954 then
89718955 if ! _ValidateUSBMountPoint_ " $FW_ZIP_BASE_DIR " 1
@@ -9033,12 +9017,19 @@ Please manually update to version ${GRNct}${MinSupportedFirmwareVers}${NOct} or
90339017 fi
90349018 fi
90359019
9036- # #----------------------------------------##
9037- # # Modified by Martinski W. [2025-Jun-01 ] ##
9038- # #----------------------------------------##
9020+ # #------------------------------------------ ##
9021+ # # Modified by ExtremeFiretop [2025-Jun-30 ] ##
9022+ # #------------------------------------------ ##
90399023 freeRAM_kb=" $( _GetFreeRAM_KB_) "
90409024 availableRAM_kb=" $( _GetAvailableRAM_KB_) "
9041- requiredRAM_kb=" $( _GetRequiredRAM_KB_ " URL=$release_link " ' phase#2' ) "
9025+ if ! " $offlineUpdateTrigger "
9026+ then requiredRAM_kb=" $( _GetRequiredRAM_KB_ " URL=$release_link " ' phase#2' ) "
9027+ else
9028+ if " $isGNUtonFW "
9029+ then requiredRAM_kb=" $( _GetRequiredRAM_KB_ " FPATH=$FW_DL_FPATH " ' phase#2' ) "
9030+ else requiredRAM_kb=" $( _GetRequiredRAM_KB_ " FPATH=$FW_ZIP_FPATH " ' phase#2' ) "
9031+ fi
9032+ fi
90429033 Say " Required RAM: ${requiredRAM_kb} KB - RAM Free: ${freeRAM_kb} KB - RAM Available: ${availableRAM_kb} KB"
90439034 check_memory_and_prompt_reboot " $requiredRAM_kb " " $availableRAM_kb "
90449035
@@ -9062,7 +9053,14 @@ Please manually update to version ${GRNct}${MinSupportedFirmwareVers}${NOct} or
90629053
90639054 freeRAM_kb=" $( _GetFreeRAM_KB_) "
90649055 availableRAM_kb=" $( _GetAvailableRAM_KB_) "
9065- requiredRAM_kb=" $( _GetRequiredRAM_KB_ " URL=$release_link " ' phase#3' ) "
9056+ if ! " $offlineUpdateTrigger "
9057+ then requiredRAM_kb=" $( _GetRequiredRAM_KB_ " URL=$release_link " ' phase#3' ) "
9058+ else
9059+ if " $isGNUtonFW "
9060+ then requiredRAM_kb=" $( _GetRequiredRAM_KB_ " FPATH=$FW_DL_FPATH " ' phase#3' ) "
9061+ else requiredRAM_kb=" $( _GetRequiredRAM_KB_ " FPATH=$FW_ZIP_FPATH " ' phase#3' ) "
9062+ fi
9063+ fi
90669064 Say " Required RAM: ${requiredRAM_kb} KB - RAM Free: ${freeRAM_kb} KB - RAM Available: ${availableRAM_kb} KB"
90679065 check_memory_and_prompt_reboot " $requiredRAM_kb " " $availableRAM_kb "
90689066
@@ -9084,7 +9082,14 @@ Please manually update to version ${GRNct}${MinSupportedFirmwareVers}${NOct} or
90849082
90859083 freeRAM_kb=" $( _GetFreeRAM_KB_) "
90869084 availableRAM_kb=" $( _GetAvailableRAM_KB_) "
9087- requiredRAM_kb=" $( _GetRequiredRAM_KB_ " URL=$release_link " ' phase#4' ) "
9085+ if ! " $offlineUpdateTrigger "
9086+ then requiredRAM_kb=" $( _GetRequiredRAM_KB_ " URL=$release_link " ' phase#4' ) "
9087+ else
9088+ if " $isGNUtonFW "
9089+ then requiredRAM_kb=" $( _GetRequiredRAM_KB_ " FPATH=$FW_DL_FPATH " ' phase#4' ) "
9090+ else requiredRAM_kb=" $( _GetRequiredRAM_KB_ " FPATH=$FW_ZIP_FPATH " ' phase#4' ) "
9091+ fi
9092+ fi
90889093 Say " Required RAM: ${requiredRAM_kb} KB - RAM Free: ${freeRAM_kb} KB - RAM Available: ${availableRAM_kb} KB"
90899094 check_memory_and_prompt_reboot " $requiredRAM_kb " " $availableRAM_kb "
90909095
@@ -9170,12 +9175,19 @@ Please manually update to version ${GRNct}${MinSupportedFirmwareVers}${NOct} or
91709175 return 1
91719176 fi
91729177
9173- # #----------------------------------------##
9174- # # Modified by Martinski W. [2025-Jun-01 ] ##
9175- # #----------------------------------------##
9178+ # #------------------------------------------ ##
9179+ # # Modified by ExtremeFiretop [2025-Jun-30 ] ##
9180+ # #------------------------------------------ ##
91769181 freeRAM_kb=" $( _GetFreeRAM_KB_) "
91779182 availableRAM_kb=" $( _GetAvailableRAM_KB_) "
9178- requiredRAM_kb=" $( _GetRequiredRAM_KB_ " URL=$release_link " ' phase#5' ) "
9183+ if ! " $offlineUpdateTrigger "
9184+ then requiredRAM_kb=" $( _GetRequiredRAM_KB_ " URL=$release_link " ' phase#5' ) "
9185+ else
9186+ if " $isGNUtonFW "
9187+ then requiredRAM_kb=" $( _GetRequiredRAM_KB_ " FPATH=$FW_DL_FPATH " ' phase#5' ) "
9188+ else requiredRAM_kb=" $( _GetRequiredRAM_KB_ " FPATH=$FW_ZIP_FPATH " ' phase#5' ) "
9189+ fi
9190+ fi
91799191 Say " Required RAM: ${requiredRAM_kb} KB - RAM Free: ${freeRAM_kb} KB - RAM Available: ${availableRAM_kb} KB"
91809192 check_memory_and_prompt_reboot " $requiredRAM_kb " " $availableRAM_kb "
91819193
0 commit comments