2018-04-26 19:42:37 -04:00
@NAND_Manager
@nm_menu
2018-07-29 23:02:59 -05:00
labelsel -k -o -s "Select an option." nmopt_*
2018-04-26 19:42:37 -04:00
goto nm_menu
#goto options_main
2018-05-03 19:00:14 +09:00
2018-04-26 19:42:37 -04:00
@nmopt_A_Backup_EmuNAND
# EmuNAND backup GM9 script
# This will create a backup named [SERIAL]_nandmin_???.bin
# author: d0k3
set ERRORMSG "EmuNAND backup failed"
set SUCCESSMSG "EmuNAND backup success"
if ask "Create a EmuNAND backup in $[GM9OUT]?"
2018-05-03 19:00:14 +09:00
findnot $[GM9OUT]/$[DATESTAMP]_$[SERIAL]_emunand_???.bin OUTPATH
cp -h E:/nand_minsize.bin $[OUTPATH]
echo "Backup created succesfully:\n$[OUTPATH]"
2018-04-26 19:42:37 -04:00
end
goto nm_menu
2018-05-03 19:00:14 +09:00
2018-04-26 19:42:37 -04:00
@nmopt_X_Backup_SysNAND
# SysNAND backup GM9 script
# This will create a backup named [SERIAL]_nandmin_???.bin
# author: d0k3
set ERRORMSG "SysNAND backup failed"
set SUCCESSMSG "SysNAND backup success"
if ask "Create a SysNAND backup in $[GM9OUT]?"
2018-05-03 19:00:14 +09:00
findnot $[GM9OUT]/$[DATESTAMP]_$[SERIAL]_sysnand_???.bin OUTPATH
cp -h S:/nand_minsize.bin $[OUTPATH]
echo "Backup created succesfully:\n$[OUTPATH]"
2018-04-26 19:42:37 -04:00
end
goto nm_menu
2018-05-03 19:00:14 +09:00
2018-04-26 19:42:37 -04:00
@nmopt_Y_Restore_EmuNAND
# EmuNAND restore GM9 script
# This will restore a backup from 0:/gm9/out, expecting the name scheme from the backup scripts
# author: Kazuma77
set SUCCESSMSG "Successfully Restored EmuNAND."
set ERRORMSG "EmuNAND not changed."
if filesel "Select NAND Backup." $[GM9OUT]/*nand_???.bin NANDBAK
2018-05-03 19:00:14 +09:00
if ask "Restore\n$[NANDBAK]\nto EmuNAND?"
allow E:/nand.bin
imgmount $[NANDBAK]
if find I:/nand_minsize.bin NULL
# Uncomment the "verify" command below to enable verification.
# I left it out since EmuNAND isn't vital.
# Besides, EmuNANDs don't even use their firm partitions.
#verify I:/nand_minsize.bin
set ERRORMSG "An error occurred during the transfer\nPlease try again."
inject -n I:/nand_minsize.bin E:/nand.bin@0
imgumount
else
echo "Not a valid NAND backup."
end
end
2018-04-26 19:42:37 -04:00
end
goto nm_menu
2018-05-03 19:00:14 +09:00
2018-04-26 19:42:37 -04:00
@nmopt_L_Restore_SysNAND_(Full)
# SysNAND full restore GM9 script
# This will restore a backup from 0:/gm9/out, expecting the name scheme from the backup scripts
# author: Kazuma77
set SUCCESSMSG "Successfully Restored SysNAND."
# Gateway used to protect EmuNAND firm partitions.
# Old EmuNAND images updated while running Gateway could brick a device.
# If you understand the risk, feel free to comment the next two lines.
set ERRORMSG "This script requires ntrboot to run."
chk $[HAX] "ntrboot"
set ERRORMSG "SysNAND not changed."
if filesel "Select NAND Backup." $[GM9OUT]/*nand_???.bin NANDBAK
2018-05-03 19:00:14 +09:00
if ask "WARNING:\nSystem exploit will not be protected.\nNEVER use an EmuNAND image with this\nscript - it may brick your device.\n \nFully restore\n$[NANDBAK]\nto SysNAND?"
allow S:/nand.bin
imgmount $[NANDBAK]
if verify I:/nand_minsize.bin
set ERRORMSG "An error occurred during the transfer\nPlease try again."
inject -n I:/nand_minsize.bin S:/nand.bin@0
imgumount
else
echo "Not a valid NAND backup."
end
end
2018-04-26 19:42:37 -04:00
end
goto nm_menu
2018-05-03 19:00:14 +09:00
2018-04-26 19:42:37 -04:00
@nmopt_R_Restore_SysNAND_(Safe)
# SysNAND safe restore GM9 script
# This will restore a backup from 0:/gm9/out, expecting the name scheme from the backup scripts
# author: Kazuma77
set SUCCESSMSG "Successfully Restored SysNAND."
set ERRORMSG "No qualifying exploit was found.\nAborting to avoid bricking the unit."
chk -u $[HAX] ""
# A "safe" restore has a high risk of bricking a Retail NAND.
# There is no way to know if a system is exploited if it is running NTRBootHax.
# If you understand the risk, feel free to comment the next two lines.
set ERRORMSG "Safe restore is not available on\nntrboot. Aborting to avoid a brick."
chk -u $[HAX] "ntrboot"
set ERRORMSG "SysNAND not changed."
if filesel "Select NAND Backup." $[GM9OUT]/*nand_???.bin NANDBAK
2018-05-03 19:00:14 +09:00
if ask "Safe restore\n$[NANDBAK]\nto SysNAND?"
allow S:/ctrnand_full.bin
allow S:/twln.bin
allow S:/twlp.bin
set ERRORMSG "Not a valid NAND backup."
imgmount $[NANDBAK]
if find I:/ctrnand_full.bin NULL
if find I:/twln.bin NULL
if find I:/twlp.bin NULL
# Uncomment the "verify" command below to enable verification.
# I left it out since the firm partitions are not being touched.
# If you do not want the script to even try to recover content from a bricked image, enable it.
#verify I:/nand_minsize.bin
set ERRORMSG "An error occurred during the transfer.\nPlease try again."
cp -w -n I:/ctrnand_full.bin S:/ctrnand_full.bin
cp -w -n I:/twln.bin S:/twln.bin
cp -w -n I:/twlp.bin S:/twlp.bin
imgumount
else
echo "Not a valid NAND backup."
end
else
echo "Not a valid NAND backup."
end
else
echo "Not a valid NAND backup."
end
end
2018-04-26 19:42:37 -04:00
end
goto nm_menu
2018-05-03 19:00:14 +09:00
2018-04-26 19:42:37 -04:00
@nmopt_LEFT_Transfer_Emu_to_Sys
if find E:/nand.bin NULL
2018-05-03 19:00:14 +09:00
set ERRORMSG "No qualifying exploit found.\nAborting to avoid bricking the device."
if chk -u $[HAX] ""
set SUCCESSMSG "EmuNAND successfully transferred to SysNAND."
set ERRORMSG "Failed to transfer EmuNAND to SysNAND."
if ask "Please make sure you have a backup of your SysNAND.\nAre you certain you want to continue?"
allow S:/nand.bin
cp -w -n E:/ctrnand_full.bin S:/ctrnand_full.bin
cp -w -n E:/twln.bin S:/twln.bin
cp -w -n E:/twlp.bin S:/twlp.bin
end
else
echo "No qualifying exploit found.\nAborting to avoid bricking the device."
end
2018-04-26 19:42:37 -04:00
else
2018-05-03 19:00:14 +09:00
echo "EmuNAND not found."
2018-04-26 19:42:37 -04:00
end
goto nm_menu
2018-05-03 19:00:14 +09:00
2018-04-26 19:42:37 -04:00
@nmopt_RIGHT_Transfer_Sys_to_Emu
if find E:/nand.bin NULL
2018-05-03 19:00:14 +09:00
set SUCCESSMSG "SysNAND successfully transferred to EmuNAND."
set ERRORMSG "Failed to transfer SysNAND to EmuNAND."
if ask "Please make sure you have a backup of your EmuNAND.\nAre you certain you want to continue?"
allow E:/nand_minsize.bin
inject -n S:/nand_minsize.bin E:/nand.bin@0
end
2018-04-26 19:42:37 -04:00
else
2018-05-03 19:00:14 +09:00
echo "EmuNAND not found."
2018-04-26 19:42:37 -04:00
end
goto nm_menu
2018-05-03 19:00:14 +09:00
2018-04-26 19:42:37 -04:00
@nmopt_START_Reboot
reboot
2018-05-03 19:00:14 +09:00
2018-04-26 19:42:37 -04:00
@nmopt_SELECT_Power_Off
poweroff
2018-05-03 19:00:14 +09:00
2018-04-26 19:42:37 -04:00
@nmopt_UP_Exit_Script