def sign(backup): if backup != '': accSelect_support.pushVars(backup, load) import sign sign.close_window(root) accSelect.vp_start_gui() sys.stdout.flush()
def cmbackup(): cmfile = tkFileDialog.askopenfilename(title='Select cmbackup', filetypes=[ ('Unsigned CMA Backup Files', '*.cmbackup') ]) if cmfile.__contains__("Gravity Rush FULL GAME (3.61 only!).cmbackup"): print "DO WHAT YOU WANT CAZ A PIRATE IS FREE!!" zf = zipfile.ZipFile(cmfile) try: zf.extract(member="load.txt", path="temp") zf.extract(member="TitleID.txt", path="temp") except KeyError: tkMessageBox.showerror(title="Error 094", message="Invalid .cmbackup!") zf.close() load = open('temp/load.txt', 'r') loadtype = load.read() load.close() backupfile = open('temp/TitleID.txt', 'r') CMABACKUP = backupfile.read() backupfile.close() os.remove("temp/load.txt") os.remove("temp/TitleID.txt") os.removedirs("temp") print "Extracting CMBackup.." defs.extractZip(src=cmfile, dst=defs.getCmaDir() + '/EXTRACTED/' + loadtype + "/" + CMABACKUP) os.remove(defs.getCmaDir() + '/EXTRACTED/' + loadtype + "/" + CMABACKUP + "/" + "load.txt") os.remove(defs.getCmaDir() + '/EXTRACTED/' + loadtype + "/" + CMABACKUP + "/" + "TitleID.txt") if os.path.exists(defs.getCmaDir() + '/EXTRACTED/' + loadtype + "/" + CMABACKUP + '/savedata'): savedata = tkMessageBox.askyesno( title="Savedata", message= "This .cmbackup contains savedata, would you like to use this savedata?\nYou may have problems with trophy eligiby if you do." ) if savedata == False: shutil.rmtree(defs.getCmaDir() + '/EXTRACTED/' + loadtype + "/" + CMABACKUP + '/savedata') os.remove(defs.getCmaDir() + '/EXTRACTED/' + loadtype + "/" + CMABACKUP + '/savedata.psvmd-dec') accSelect_support.pushVars(CMABACKUP, loadtype) import sign sign.close_window(root) accSelect.vp_start_gui() print "Removing: " + defs.getCmaDir( ) + '/EXTRACTED/' + loadtype + "/" + CMABACKUP shutil.rmtree(defs.getCmaDir() + '/EXTRACTED/' + loadtype + "/" + CMABACKUP)
def psp(): if x == "unsign": accSelect_support.loadPSP() accSelect.vp_start_gui() elif x == "sign": sign_support.loadPSP() sign.vp_start_gui() elif x == "resign": accSelect_support.loadPSP() accSelect.vp_start_gui() sys.stdout.flush()
if backupType_support.getImportType() == "resign": unsign_support.pushVars(account, load, True) unsign.vp_start_gui() if backupType_support.getImportType() == "resign2": sign_support.goSign(account, loaad, bkupz, True) tkMessageBox.showinfo(title="Resign", message="Re-Sign Complete! (Refresh QCMA)") def getAccount(): return account def init(top, gui, *args, **kwargs): global w, top_level, root w = gui top_level = top root = top def destroy_window(): # Function which closes the window. global top_level top_level.destroy() top_level = None if __name__ == '__main__': import accSelect accSelect.vp_start_gui()
def goUnsign(cmaBackup, CMA,cmbackup=False): if cmbackup == True: location = tkFileDialog.asksaveasfilename(title='Select location',filetypes=[('Unsigned CMA Backup File', '*.cmbackup')]) try: print 'location: '+location except TypeError: tkMessageBox.showerror(title="Error 302",message="ERROR: You did not select a location to create the .cmbackup!") import sys sys.exit() global am global foldParams import unsign unsign.close_window(root) key = open('keys/' + account, 'r') cmaKey = key.read() aid = open('accounts/' + account, 'r') cmaAID = aid.read() import sys if load != 'SYSTEM': if load == 'PGAME': foldParams = ['game', 'license'] am = 1 elif load == 'APP': foldParams = ['app', 'patch', 'addcont', 'appmeta', 'license', 'savedata'] am = 5 elif load == 'PSGAME': foldParams = ['game', 'license'] am = 1 elif load == 'PSM': foldParams = ['game', 'license', 'patch', 'savedata'] am = 4 if not os.path.exists(CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/'): os.makedirs(CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/') while am != -1: if os.path.exists(CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + foldParams[am] + '/'): if not os.path.exists(CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/' + foldParams[am]): os.makedirs(CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/' + foldParams[am]) am -= 1 if load == 'PGAME': foldParams = ['game', 'license'] am = 1 elif load == 'APP': foldParams = ['app', 'patch', 'addcont', 'appmeta', 'license', 'savedata'] am = 5 elif load == 'PSGAME': foldParams = ['game', 'license'] am = 1 elif load == 'PSM': foldParams = ['game', 'license'] am = 1 while am != -1: if sys.platform.__contains__('linux') or sys.platform.__contains__('darwin'): print 'Executing: ./psvimg-extract -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + foldParams[am] + '/' + foldParams[am] + '.psvimg" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/' + foldParams[am] + '"' os.system('./psvimg-extract -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + foldParams[am] + '/' + foldParams[am] + '.psvimg" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/' + foldParams[am] + '"') print 'Executing: ./psvmd-decrypt -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + foldParams[am] + '/' + foldParams[am] + '.psvmd" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/' + foldParams[am] + '.psvmd-dec"' os.system('./psvmd-decrypt -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + foldParams[am] + '/' + foldParams[am] + '.psvmd" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/' + foldParams[am] + '.psvmd-dec"') am -= 1 if sys.platform.__contains__('win') and not sys.platform.__contains__("darwin"): print 'Executing: psvimg.exe -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + foldParams[am] + '/' + foldParams[am] + '.psvimg ' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/' + foldParams[am] os.system('psvimg-extract.exe -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + foldParams[am] + '/' + foldParams[am] + '.psvimg" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/' + foldParams[am] + '"') print 'Executing: psvmd-decrypt.exe -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + foldParams[am] + '/' + foldParams[am] + '.psvmd" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/' + foldParams[am] + '.psvmd-dec"' os.system('psvmd-decrypt.exe -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + foldParams[am] + '/' + foldParams[am] + '.psvmd" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/' + foldParams[am] + '.psvmd-dec"') am -= 1 if not os.path.exists(CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/sce_sys'): print 'Copying Folder: ' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/sce_sys' + ' To: ' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/sce_sys' shutil.copytree(CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/sce_sys', CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '/sce_sys') elif load == 'SYSTEM': if sys.platform.__contains__('linux') or sys.platform.__contains__('darwin'): print 'Executing: ./psvimg-extract -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvimg" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '"' os.system('./psvimg-extract -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvimg" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '"') print 'Executing: ./psvmd-decrypt -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvmd" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '.psvmd-dec"' os.system('./psvmd-decrypt -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvmd" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '.psvmd-dec"') if sys.platform.__contains__('win') and not sys.platform.__contains__("darwin"): print 'Executing: psvimg-extract.exe -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvimg" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '"' os.system('psvimg-extract.exe -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvimg" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '"') print 'Executing: psvmd-decrypt.exe -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvmd" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '.psvmd-dec"' os.system('psvmd-decrypt.exe -K ' + cmaKey + ' "' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvmd" "' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '.psvmd-dec"') print 'Copying File: ' + CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvinf' + ' To: ' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '.psvinf' if os.path.exists(CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvinf'): shutil.copy(CMA + '/' + load + '/' + cmaAID + '/' + cmaBackup + '/' + cmaBackup + '.psvinf', CMA + '/EXTRACTED/' + load + '/' + cmaBackup + '.psvinf') if resign == False and cmbackup == False: tkMessageBox.showinfo(title='Extract', message='Extraction Complete!') print 'Opening Folder: ' + CMA + '/EXTRACTED/' + load + '/' + cmaBackup openFolder(CMA + '/EXTRACTED/' + load + '/' + cmaBackup) import unsign unsign.vp_start_gui() elif resign == True: loaad = load accSelect_support.resignVars(cmaBackup, load) backupType_support.action('resign2') accSelect.vp_start_gui() elif cmbackup == True: print 'Creating .cmbackup' print 'Writing load.txt' loadtext = open(CMA + '/EXTRACTED/'+load+'/'+cmaBackup+'/load.txt', 'w') loadtext.write(load) loadtext.close() print 'Writing TitleID.txt' loadtext = open(CMA + '/EXTRACTED/'+load+'/'+cmaBackup+'/TitleID.txt', 'w') loadtext.write(cmaBackup) loadtext.close() print 'Checking for savedata..' if os.path.exists(CMA + '/EXTRACTED/'+load+'/'+cmaBackup+'/savedata'): savedata = tkMessageBox.askyesno(title="Savedata",message="This Backup Contains Savedata, Would you like to pack that into the .CMBACKUP File?\nSavedata could potentailly contain personal infomation!!") if savedata == False: shutil.rmtree(CMA + '/EXTRACTED/'+load+'/'+cmaBackup+'/savedata') os.remove(CMA + '/EXTRACTED/'+load+'/'+cmaBackup+'/savedata.psvmd-dec') print 'Writing .cmbackup file..' defs.zip(src=CMA + '/EXTRACTED/'+load+'/'+cmaBackup,dst=location) tkMessageBox.showinfo(title='CMBACKUP', message='.cmbackup Created.') sys.stdout.flush()