Initial Commit
This commit is contained in:
58
TegraExplorer/scripts/FirmwareDump.te
Normal file
58
TegraExplorer/scripts/FirmwareDump.te
Normal file
@@ -0,0 +1,58 @@
|
||||
#REQUIRE KEYS
|
||||
#REQUIRE SD
|
||||
p=println
|
||||
pe={pause() exit()}
|
||||
fwstr={fw=maj.str()+"."+min.str()+"."+pat.str()}
|
||||
fv={a=readsave("bis:/save/8000000000000120")
|
||||
b=a.read("/meta/imkvdb.arc")
|
||||
c=["BYTE[]",9,8,0,0,0,0,0,1]
|
||||
d=b.find(c)
|
||||
if(d>0){
|
||||
e=b.slice(d+8,4).project()
|
||||
ver=(e[3]<<24)|(e[2]<<16)|(e[1]<<8)|(e[0])
|
||||
pat=((ver>>16)&((1<<4)- 1))
|
||||
min=((ver>>20)&((1<<6)- 1))
|
||||
maj=((ver>>26)&((1<<6)- 1))
|
||||
}.else(){print("Fw not found")pe()}
|
||||
a=0 fwstr()}
|
||||
|
||||
op=["Exit","Dump sysmmc"].copy()
|
||||
if (emu()){op+"Dump emummc"}
|
||||
p()r=menu(op,0)clear()
|
||||
if(r==0){exit()}
|
||||
if(r==1){if(mountsys("SYSTEM")){print("SYSTEM MOUNT FAIL")pe()}}
|
||||
if(r==2){if(mountemu("SYSTEM")){print("SYSTEM MOUNT FAIL")pe()}}
|
||||
|
||||
clear()
|
||||
fv()
|
||||
p("Found firmware",fw)
|
||||
p("Press Power or A to dump firmware, any other key to exit")
|
||||
a = pause()
|
||||
if (!a.a) {exit()}
|
||||
clear()
|
||||
|
||||
mkdir("sd:/tegraexplorer")
|
||||
mkdir("sd:/tegraexplorer/Firmware")
|
||||
bsp="sd:/tegraexplorer/Firmware/"+fw
|
||||
if(fsexists(bsp)){p("Dir already exists! Press power to replace, any other key to exit") a=pause() if(!a.power){exit()} deldir(bsp)}
|
||||
mkdir(bsp)
|
||||
p("Dumping to",bsp)
|
||||
con=readdir("bis:/Contents/registered")
|
||||
if(con.result!=0){println("Fail reading dir")pe()}
|
||||
c=(con.files.len()+con.folders.len()).str()
|
||||
i=1 f=0 t=timer()
|
||||
dump={
|
||||
fi.foreach("x"){
|
||||
if(f){fp="bis:/Contents/registered/"+x+"/00"}
|
||||
.else(){fp="bis:/Contents/registered/"+x}
|
||||
name=x
|
||||
if(ncatype(fp)==1){name=name- 4+".cnmt.nca"}
|
||||
color(0x00FF00)
|
||||
print("\r["+i.str()+"/"+c+"]", x)
|
||||
if(copyfile(fp,bsp+"/"+name)){println("\nErr during copy")pe()}
|
||||
i=i+1
|
||||
}
|
||||
}
|
||||
fi=con.files dump()
|
||||
f=1 fi=con.folders dump()
|
||||
p("\nDone! Took",timer()-t/1000,"s")pause()
|
||||
31
TegraExplorer/scripts/SystemWipe.te
Normal file
31
TegraExplorer/scripts/SystemWipe.te
Normal file
@@ -0,0 +1,31 @@
|
||||
#REQUIRE KEYS
|
||||
is=["8000000000000120","80000000000000d1","8000000000000047"]
|
||||
p=println
|
||||
pr=print
|
||||
pe={pause() exit()}
|
||||
wait={t=timer()while(timer()<(t+tw)){print("Wait for",(t+tw-timer()/1000),"seconds \r")}}
|
||||
p("System wiper\n")
|
||||
op=["Exit","Wipe sysmmc"].copy()
|
||||
if (emu()){op+"Wipe emummc"}
|
||||
r=menu(op,0)clear()
|
||||
if(r==0){exit()}
|
||||
if(r==1){p("Selected sysmmc")mount=mountsys}
|
||||
if(r==2){p("Selected emummc")mount=mountemu}
|
||||
if(mount("SYSTEM")){p("Mount failed!")pe()}
|
||||
color(0xFF0000)
|
||||
p("Are you sure you want to wipe everything?\nThis includes:\n- Saves\n- Game Data\n- All other data on the system\n\nUse this only as a last resort!")
|
||||
color(0xFFFF00)
|
||||
tw=10000
|
||||
wait()
|
||||
color(0x0000FF)
|
||||
p("Press power to wipe, any other key to exit")a=pause()if(!a.power){exit()}clear()
|
||||
color(0xFF0000)
|
||||
pr("Deleting system saves... ")
|
||||
f=readdir("bis:/save")
|
||||
if(f.folders.len()!=0){p("Folders in save dir???")pe()}
|
||||
f.files.foreach("x"){if(!is.contains(x)){if(delfile("bis:/save/"+x)){p("File deletion failed: ", x)pe()}}}
|
||||
pr("Done!\nDeleting user dirs...")ud=["Album","Contents","save","saveMeta","temp"]
|
||||
if(mount("USER")){p("Mount failed!")pe()}
|
||||
ud.foreach("x"){pr("\n"+x,"")if(deldir("bis:/"+x)){p("Dir deletion failed")pe()}mkdir("bis:/"+x)}
|
||||
mkdir("bis:/Contents/placehld")mkdir("bis:/Contents/registered")
|
||||
color(0x00FF00)p("\n\nDone!")pause()
|
||||
Reference in New Issue
Block a user