Add WiFi config injection

This commit is contained in:
rmc 2024-01-04 21:22:24 -05:00
parent ad0bee932e
commit 02b2228fa1
No known key found for this signature in database
GPG Key ID: 5633EC10309D77D1

View File

@ -1,7 +1,7 @@
###################################################################################################################################
# GodMode9 script to work with the USG-FIRM-WRITER cart for managing firmwares.
# GodMode9 script to work with my custom USG-FIRM-WRITER cart, a tool that manages DS lite firmwares.
# Created: 2023/06/05
# Last updated: 2023/06/08
# Last updated: 2024/01/04
# Written by rmc
#
# _______
@ -51,7 +51,7 @@ set DUMP_ALL ALL
###################################################################################################################################
@Menu
set PREVIEW_MODE "USG-FIRM-WRITER Script v0.5\ngithub.com/IanSkinner1982/USG-FIRM-WRITER\nWritten by rmc"
set PREVIEW_MODE "USG-FIRM-WRITER Script v1.0\nhttps://github.com/rvtr/USG-FIRM-WRITER\nWritten by rmc"
labelsel -o -s "Select an option." sub_*
goto Menu
@ -68,10 +68,10 @@ end
find C:/*.sav SAVEPATH
# Get MAC
fget $[SAVEPATH]@3C:06 MAC
fget $[SAVEPATH]@36:06 MAC
if chk $[DUMP_ALL] FW
cp -w $[SAVEPATH] 0:/USG-FIRM-WRITER/FW_$[MAC].bin
cp -w $[SAVEPATH] 0:/USG-FIRM-WRITER/$[MAC]_FIRMWARE.bin
elif chk $[DUMP_ALL] ALL
cp -w $[SAVEPATH] 0:/USG-FIRM-WRITER/$[MAC]_FIRMWARE.bin
# Backup WiFi configuration and save to dummy file
@ -151,39 +151,38 @@ end
# Display build info
set PREVIEW_MODE "Build info:\n\nTime: $[FW_MM_STRING]:$[FW_HH_STRING]\nDate: 20$[FW_YY_STRING], $[FW_BUILD_MONTH] $[FW_DD_STRING]\nRegion: $[FW_REGION_STRING] - $[FW_BUILD_REGION]\nHex: $[FW_HH_STRING] $[FW_MM_STRING] $[FW_DD_STRING] $[FW_MO_STRING] $[FW_YY_STRING] $[FW_REGION_STRING] (0x18-0x1D)"
if chk $[FW_FULL_STRING] 0711051004FF
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 5109261104FF
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 5108280205FF
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 4814060605FF
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 152109060543
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 161630110520
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 4514071205FF
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 192026010601
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 332105020620
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 191108030620
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 351506260463
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 302106091135
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk $[FW_FULL_STRING] 000000000000
echo "Already dumped... :(\nBetter luck next time?"
echo "Dump complete!\n\nThis is a known firmware revision."
elif chk 1 1
echo "NEW FIRMWARE: Please send the firmware dump to:\n'ianskinner519@gmail.com'.\n(0:/USG-FIRM-WRITER/$[MAC]_FIRMWARE.bin)"
echo "UNKNOWN FIRMWARE: Please send the firmware dump to:\n'lillian@randommeaninglesscharacters.com'.\n(0:/USG-FIRM-WRITER/$[MAC]_FIRMWARE.bin)"
goto Menu
end
if ask "No new firmwares found.\nInsert new board and try again?"
if ask "Dump another WiFi board?"
goto sub_Dump_Firmware
else
goto Menu
@ -356,7 +355,6 @@ if ask "Proceed with flasher?\nThis will overwrite the current firmware."
rm 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin # Delete temp edited file
echo "Firmware flashed okay!"
else
echo "Operation cancelled."
goto Menu
@ -369,9 +367,64 @@ goto Menu
###################################################################################################################################
@sub_Inject_WiFi_Config
echo "NOW MAKING"
echo "Warning: make sure you have a backup first!\nIf you ever loose this data, it is impossible to recreate."
if not ask "Are you sure you want to continue?"
echo "Operation cancelled."
goto Menu
end
if filesel "Select WiFi config backup" 0:/USG-FIRM-WRITER/*WIFI_CONFIG.bin WIFI_CONFIG_FLASH
else
echo "No file selected, cancelling."
goto Menu
end
if not ask "Inject into WiFi board? If no then you can select\na firmware backup from the SD card."
set INJECT_MODE SD
if ask "Inject to external firmware dumps?\nIf no then your own dumps from this script will be used.\nNote: for external dumps, place firmware backups in:\n0:/USG-FIRM-WRITER/External/"
if filesel "Select firmware to inject into" 0:/USG-FIRM-WRITER/External/* FIRMWARE_FLASH
else
echo "No file selected, cancelling."
goto Menu
end
else
if filesel "Select firmware to inject into" 0:/USG-FIRM-WRITER/*FIRMWARE.bin FIRMWARE_FLASH
else
echo "No file selected, cancelling."
goto Menu
end
end
else
set INJECT_MODE BOARD
end
if chk $[INJECT_MODE] BOARD
find C:/*.sav SAVEPATH
cp -w $[SAVEPATH] 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin
else
cp -w $[FIRMWARE_FLASH] 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin
end
fget $[WIFI_CONFIG_FLASH]@00:64 WIFI_CONFIG0 # Backup data
fset 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin@2A $[WIFI_CONFIG0] # Store data
fget $[WIFI_CONFIG_FLASH]@64:64 WIFI_CONFIG1 # Backup data
fset 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin@8E $[WIFI_CONFIG1] # Store data
fget $[WIFI_CONFIG_FLASH]@C8:64 WIFI_CONFIG2 # Backup data
fset 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin@F2 $[WIFI_CONFIG2] # Store data
fget $[WIFI_CONFIG_FLASH]@12C:64 WIFI_CONFIG3 # Backup data
fset 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin@156 $[WIFI_CONFIG3] # Store data
fget $[WIFI_CONFIG_FLASH]@190:46 WIFI_CONFIG4 # Backup data
fset 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin@1BA $[WIFI_CONFIG4] # Store data
if chk $[INJECT_MODE] BOARD
cp -w 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin $[SAVEPATH]
else
cp -w 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin $[FIRMWARE_FLASH]
end
rm 0:/USG-FIRM-WRITER/temp_FIRMWARE.bin
echo "Injected okay!"
goto Menu
###################################################################################################################################
# End script... but why would you want to do that?
@ -379,3 +432,17 @@ goto Menu
@sub_Exit_Script
echo "Exiting script, have a nice day!"
# Firmware index
# 0x018-0x01C = build date in: hour, minute, day, month, year
# 0x01D = region
# 0x02A-0x1FF = WiFi config
# 0x036-0x03B = MAC address
#
#
#
#
#
#
#
#