示例#1
0
def updateKeyDatabase():
    print "Updating: "+defs.getWorkingDir()+"/keydb.ini"
    configParser = ConfigParser.RawConfigParser()
    configParser.read(defs.getWorkingDir()+"/keydb.ini")
    try:
        configParser.add_section("zrif")
        configParser.add_section("klicense")
    except:
        ""
    try:
        open("temp.csv","wb").write(requests.get(nps_games).text.encode("utf-8").replace("\t",",")) ## So just convert tsv to csv!
        with open('temp.csv', 'rb') as csvfile:
            keydb = csv.DictReader(csvfile)
            for row in keydb:
                try:
                    if row['zRIF'] == "MISSING" or row['zRIF'] == "NOT REQUIRED" or row['zRIF'] == "Probably not required":
                        ""
                    else:
                        configParser.set(defs.getKeyType(row['zRIF']),row['Title ID'].upper(),row['zRIF'])
                except ConfigParser.Error:
                    print("Failed to add key for "+row['Title ID'])

        with open(defs.getWorkingDir()+"/keydb.ini","wb") as configfile:
            configParser.write(configfile)
        os.remove("temp.csv")
    except requests.exceptions.ConnectionError:
        print "Unable To Connect To Server.."
示例#2
0
def patch(backup):
    import sign_support
    unsign_support.goUnsign(backup, CMA, False, "PGAME", account, ".")
    print "Patching " + backup + " With VHBL."
    if os.path.exists(CMA + "/EXTRACTED/PGAME/" + backup +
                      "/game/ux0_pspemu_temp_game_PSP_GAME_" + backup +
                      "/PBOOT.PBP"):
        print "Removing VHBL.."
        os.remove(CMA + "/EXTRACTED/PGAME/" + backup +
                  "/game/ux0_pspemu_temp_game_PSP_GAME_" + backup +
                  "/PBOOT.PBP")
        print "Re-Patching VHBL"
    shutil.copy(
        defs.getWorkingDir() + "/easyinstallers/VHBL/patch/PBOOT.PBP",
        CMA + "/EXTRACTED/PGAME/" + backup +
        "/game/ux0_pspemu_temp_game_PSP_GAME_" + backup + "/PBOOT.PBP")
    print "Signing to: " + account
    sign_support.goSign(account, "PGAME", backup, True)
    print "Copying Savedata To " + CMA + "/PSAVEDATA/" + defs.getAid(
        account) + "/VHBL01234"
    if not os.path.exists(CMA + "/PSAVEDATA/" + defs.getAid(account) +
                          "/VHBL01234"):
        shutil.copytree(
            defs.getWorkingDir() + "/easyinstallers/VHBL/VHBL01234",
            CMA + "/PSAVEDATA/" + defs.getAid(account) + "/VHBL01234")
    import easyInstallers
    tkMessageBox.showinfo(
        title="ARK Easy Installer",
        message=
        "VHBL Backup Created!\n(Note: Icon will be the same as base game)\nBe sure to copy the VHBL Savedata file too!"
    )
    easyInstallers.vp_start_gui()
示例#3
0
def createBackup(emulator, backup, account):
    print emulator, account, backup
    import unsign_support
    unsign_support.goUnsign(cmaBackup=backup,
                            account=account,
                            load="PGAME",
                            resign=".")
    from distutils.dir_util import copy_tree
    print "Copying " + defs.getWorkingDir(
    ) + "/easyinstallers/EmuBubble/FILES/" + emulator + " To " + defs.getCmaDir(
    ) + "/EXTRACTED/PGAME/" + backup + "/game/ux0_pspemu_temp_game_PSP_GAME_" + backup + "/"
    copy_tree(
        defs.getWorkingDir() + "/easyinstallers/EmuBubble/FILES/" + emulator,
        defs.getCmaDir() + "/EXTRACTED/PGAME/" + backup +
        "/game/ux0_pspemu_temp_game_PSP_GAME_" + backup + "/")
    import sign_support
    sign_support.goSign(account, "PGAME", backup, True)
    print "Removing: " + defs.getCmaDir() + "/EXTRACTED/PGAME/" + backup
    shutil.rmtree(defs.getCmaDir() + "/EXTRACTED/PGAME/" + backup + "/")
    tkMessageBox.showinfo(title="Emulator Bubble",
                          message=emulator +
                          " Backup Created! (remember to refresh QCMA)")
    emububble.destroy_New_Toplevel_1()
    import easyinstallers.EmuBubble.chooseBackup as CB
    CB.destroy_Unsign_Backup()
def patch(backup):
    import sign_support
    unsign_support.pushVars(account, "PGAME", ".")
    unsign_support.goUnsign(backup, CMA)
    print "Patching With VHBL"
    shutil.copy(
        defs.getWorkingDir() + "/easyinstallers/VHBL/patch/PBOOT.PBP",
        CMA + "/EXTRACTED/PGAME/" + backup +
        "/game/ux0_pspemu_temp_game_PSP_GAME_" + backup + "/")
    print "Signing to: " + account
    sign_support.goSign(account, "PGAME", backup, True)
    print "Copying Savedata To " + CMA + "/PSAVEDATA/" + defs.getAid(
        account) + "/VHBL01234"
    if not os.path.exists(CMA + "/PSAVEDATA/" + defs.getAid(account) +
                          "/VHBL01234"):
        shutil.copytree(
            defs.getWorkingDir() + "/easyinstallers/VHBL/VHBL01234",
            CMA + "/PSAVEDATA/" + defs.getAid(account) + "/VHBL01234")
    import easyInstallers
    tkMessageBox.showinfo(
        title="VHBL Easy Installer",
        message=
        "VHBL Backup Created! (Note: Icon will be the same as base game)")
    easyInstallers.close_window(root)
    easyInstallers.vp_start_gui()
def patch(backup):
    import sign_support
    print "Patching " + backup + " With VHBL."
    unsign_support.goUnsign(backup, CMA, False, "PGAME", account, ".")
    print "Patching With ARK-2"
    shutil.copy(
        defs.getWorkingDir() + "/easyinstallers/ARK/patch/PBOOT.PBP",
        CMA + "/EXTRACTED/PGAME/" + backup +
        "/game/ux0_pspemu_temp_game_PSP_GAME_" + backup + "/")
    print "Signing to: " + account
    sign_support.goSign(account, "PGAME", backup, True)
    if tkMessageBox.askyesno(title="OneMenu?",
                             message="Would you like to use ONEMENU?"):
        print "Copying Savedata To " + CMA + "/PSAVEDATA/" + defs.getAid(
            account) + "/ARK_01234"
        if not os.path.exists(CMA + "/PSAVEDATA/" + defs.getAid(account) +
                              "/ARK_01234"):
            shutil.copytree(
                defs.getWorkingDir() + "/easyinstallers/ARK/ONEMENU",
                CMA + "/PSAVEDATA/" + defs.getAid(account) + "/ARK_01234")
    else:
        print "Copying Savedata To " + CMA + "/PSAVEDATA/" + defs.getAid(
            account) + "/ARK_01234"
        if not os.path.exists(CMA + "/PSAVEDATA/" + defs.getAid(account) +
                              "/ARK_01234"):
            shutil.copytree(
                defs.getWorkingDir() + "/easyinstallers/ARK/ARK_01234",
                CMA + "/PSAVEDATA/" + defs.getAid(account) + "/ARK_01234")
    import easyInstallers
    tkMessageBox.showinfo(
        title="ARK Easy Installer",
        message=
        "ARK Backup Created! (Note: Icon will be the same as base game)\nBe sure to copy the PSP ARK-2 Savedata file too!"
    )
    easyInstallers.vp_start_gui()
示例#6
0
def decryptSavedata(titleid):
    CMADir = defs.getCmaDir()
    if os.path.exists(CMADir+'/EXTRACTED/APP/'+titleid+'/savedata/ux0_temp_game_'+titleid+'_savedata_'+titleid):
        if sys.platform.__contains__("linux" or "darwin"):
            cmd = defs.getWorkingDir()+'/psvpfsparser --title_id_src="'+CMADir+'/EXTRACTED/APP/'+titleid+'/savedata/ux0_temp_game_'+titleid+'_savedata_'+titleid+'" --title_id_dst="'+CMADir+'/EXTRACTED/DPFS/SAVEDATA/'+titleid+'" --f00d_url=cma.henkaku.xyz'
        elif sys.platform.__contains__("win") and not sys.platform.__contains__("darwin"):
            cmd = defs.getWorkingDir() + '\\psvpfsparser.exe --title_id_src="' + CMADir + '\\EXTRACTED\\APP\\' + titleid + '\\savedata\\ux0_temp_game_' + titleid + '_savedata_' + titleid + '" --title_id_dst="' + CMADir + '\\EXTRACTED\\DPFS\\SAVEDATA\\' + titleid + '" --f00d_url=cma.henkaku.xyz'
        print "Executing: "+cmd
        os.system(cmd)
示例#7
0
def addKey(titleid,key):
    configParser = ConfigParser.RawConfigParser()
    configParser.read(defs.getWorkingDir()+"/keydb.ini")
    try:
        configParser.set(defs.getKeyType(key),titleid,key)
    except:
        print("Failed to add key for "+titleid)
    with open(defs.getWorkingDir()+"/keydb.ini","wb") as configfile:
        configParser.write(configfile)
def install(plugin):
    if plugin == 'ARK':
        if tkMessageBox.askyesno(title="3.65?",message="ARK WILL NOT WORK ON 3.65+\nDo you still want to continue?"):
                ARK.vp_start_gui()
    elif plugin == 'VHBL':
        VHBL.vp_start_gui()
    elif plugin == 'HiddenApps':
        HiddenApps.run()
    elif plugin == 'Whitelister':
        Whitelister.vp_start_gui()
    elif plugin == 'UriCaller':
        UriCaller.vp_start_gui()
    elif plugin == 'PSMRuntime':
        PSMRuntime.run()
    elif plugin == 'Skype':
        if tkMessageBox.askyesno(title="3.65?",message="SKYPE WILL NOT WORK ON 3.65+\nDo you still want to continue?"):
                Skype.run()
    elif plugin == 'RemoveFeatured':
        RemoveFeatured.vp_start_gui()
    elif plugin == 'CmBackup':
        cmbackup.vp_start_gui()
    elif plugin == 'EmuBubble':
        emububble.vp_start_gui()
    elif plugin == 'ClonePSP':
        clonePSP.vp_start_gui()
    elif plugin == 'VitaShell':
        VitaShell.run()

    else:
        ### Load Custom EasyInstaller. ###
        defs.executePy(defs.getWorkingDir()+'/easyinstallers/'+plugin+'/main.py')

    sys.stdout.flush()
示例#9
0
def run():
    CMA = defs.getCmaDir()
    if not os.path.exists(CMA + "/EXTRACTED/APP/PCSF00124"):
        shutil.copytree(
            defs.getWorkingDir() + "/easyinstallers/Skype/PCSF00124",
            CMA + "/EXTRACTED/APP/PCSF00124")
    signTo.vp_start_gui()
示例#10
0
def run():
    CMA = defs.getCmaDir()
    if not os.path.exists(CMA + "/EXTRACTED/APP/HIDENAPPS"):
        shutil.copytree(
            defs.getWorkingDir() + "/easyinstallers/HiddenApps/HIDENAPPS",
            CMA + "/EXTRACTED/APP/HIDENAPPS")
    signTo.vp_start_gui()
def patch(backup):
    import sign_support
    unsign_support.pushVars(account, "SYSTEM", ".")
    unsign_support.goUnsign(backup, CMA)
    print "Setting All URI Calls To User Mode."
    dbPath = CMA + "/EXTRACTED/SYSTEM/" + backup + "/ur0_shell/db/app.db"
    print "Opening: " + dbPath
    appDatabase = sqlite3.connect(dbPath)
    print "Executing " + sqlQuery + "To app.db!"
    appDatabase.executescript(sqlQuery)
    appDatabase.close()
    print("Uri's Patched.")
    sign_support.goSign(account, "SYSTEM", backup, True)
    if not os.path.exists(CMA + "/EXTRACTED/APP/URICALL00"):
        shutil.copytree(
            defs.getWorkingDir() + "/easyinstallers/UriCaller/URICALL00",
            CMA + "/EXTRACTED/APP/URICALL00")
    sign_support.goSign(account, "APP", "URICALL00", True)
    tkMessageBox.showinfo(
        title="UriCaller",
        message=
        "Completed! Refresh QCMA Database then restore the SYSTEM Backup + The URICaller App."
    )
    easyInstallers.close_window(root)
    easyInstallers.vp_start_gui()
示例#12
0
def run():
    CMA = defs.getCmaDir()
    if not os.path.exists(CMA + "/EXTRACTED/APP/VITASHELL"):
        shutil.copytree(
            defs.getWorkingDir() + "/easyinstallers/VitaShell/VITASHELL",
            CMA + "/EXTRACTED/APP/VITASHELL")
    signTo.vp_start_gui()
示例#13
0
def vp_start_gui():
    """Starting point when module is the main routine."""
    global root
    root = Tk()
    if sys.platform.__contains__("win") and not sys.platform.__contains__("darwin"):
        root.iconbitmap(bitmap=defs.getWorkingDir()+'\icon.ico')
    top = Unsign_Backup(root)
    unsign_support.init(root, top)
示例#14
0
def vp_start_gui():
    '''Starting point when module is the main routine.'''
    global val, w, root
    root = Tk()
    if sys.platform.__contains__("win") and not sys.platform.__contains__("darwin"):
        root.iconbitmap(bitmap=defs.getWorkingDir()+'\icon.ico')
    top = Backup_Mannager (root)
    bkupMgr_support.init(root, top)
    root.mainloop()
示例#15
0
def vp_start_gui():
    '''Starting point when module is the main routine.'''
    global val, w, root
    root = Tk()
    if sys.platform.__contains__("win") and not sys.platform.__contains__("darwin"):
        import defs
        root.iconbitmap(bitmap=defs.getWorkingDir()+'\icon.ico')
    top = Account_Selector (root)
    accSelect_support.init(root, top)
    root.mainloop()
示例#16
0
def vp_start_gui():
    """Starting point when module is the main routine."""
    global root
    root = Tk()
    if sys.platform.__contains__(
            "win") and not sys.platform.__contains__("darwin"):
        root.iconbitmap(bitmap=defs.getWorkingDir() + '\icon.ico')
    easyInstallers_support.set_Tk_var()
    top = Easy_Installers(root)
    easyInstallers_support.init(root, top)
    root.mainloop()
示例#17
0
def vp_start_gui():
    '''Starting point when module is the main routine.'''
    global val, w, root
    root = Tk()
    if sys.platform.__contains__("win") and not sys.platform.__contains__("darwin"):
        import defs
        root.iconbitmap(bitmap=defs.getWorkingDir()+'\icon.ico')
    top = Cma_Directory (root)
    cmaDir_support.init(root, top)
    root.mainloop()
    root.resizable(0, 0)
示例#18
0
def isKeyKnown(titleid):
    configParser = ConfigParser.RawConfigParser()
    configParser.read(defs.getWorkingDir()+"/keydb.ini")
    try:
        if configParser.has_option("zrif",titleid):
            return True
        if configParser.has_option("klicense",titleid):
            return True
        else:
            return False
    except:
        return False
示例#19
0
def decrypt(titleid):
    print("Preparing to PFS decrypt "+titleid)
    rifkey = getKey(titleid)
    CMADir = defs.getCmaDir()
    if rifkey == 404:
        return 404
    if defs.getKeyType(rifkey) == "zrif":
        keyType = "--zRIF="
    else:
        keyType = "--klicensee="
    if os.path.exists(CMADir+'/EXTRACTED/APP/'+titleid+'/app/ux0_temp_game_'+titleid+'_app_'+titleid):
        if sys.platform.__contains__("linux" or "darwin"):
            cmd = defs.getWorkingDir()+'/psvpfsparser --title_id_src="'+CMADir+'/EXTRACTED/APP/'+titleid+'/app/ux0_temp_game_'+titleid+'_app_'+titleid+'" --title_id_dst="'+CMADir+'/EXTRACTED/DPFS/APP/'+titleid+'" '+str(keyType)+str(rifkey)+' --f00d_url=cma.henkaku.xyz'
        elif sys.platform.__contains__("win") and not sys.platform.__contains__("darwin"):
            cmd = defs.getWorkingDir() + '\\psvpfsparser.exe --title_id_src="' + CMADir + '\\EXTRACTED\\APP\\' + titleid + '\\app\\ux0_temp_game_' + titleid + '_app_' + titleid + '" --title_id_dst="' + CMADir + '\\EXTRACTED\\DPFS\\APP\\' + titleid + '" ' + str(keyType) + str(rifkey) + ' --f00d_url=cma.henkaku.xyz'
        print "Executing: "+cmd
        os.system(cmd)
    if os.path.exists(CMADir+'/EXTRACTED/APP/'+titleid+'/patch/ux0_temp_game_'+titleid+'_patch_'+titleid):
        if sys.platform.__contains__("linux" or "darwin"):
            cmd = defs.getWorkingDir()+'/psvpfsparser --title_id_src="'+CMADir+'/EXTRACTED/APP/'+titleid+'/patch/ux0_temp_game_'+titleid+'_patch_'+titleid+'" --title_id_dst="'+CMADir+'/EXTRACTED/DPFS/PATCH/'+titleid+'" '+str(keyType)+str(rifkey)+' --f00d_url=cma.henkaku.xyz'
        elif sys.platform.__contains__("win") and not sys.platform.__contains__("darwin"):
            cmd = defs.getWorkingDir() + '\\psvpfsparser.exe --title_id_src="' + CMADir + '\\EXTRACTED\\APP\\' + titleid + '\\patch\\ux0_temp_game_' + titleid + '_patch_' + titleid + '" --title_id_dst="' + CMADir + '\\EXTRACTED\\DPFS\\PATCH\\' + titleid + '" ' + str(keyType) + str(rifkey) + ' --f00d_url=cma.henkaku.xyz'
        print "Executing: "+cmd
        os.system(cmd)
    if os.path.exists(CMADir+'/EXTRACTED/APP/'+titleid+'/savedata/ux0_temp_game_'+titleid+'_savedata_'+titleid):
        if sys.platform.__contains__("linux" or "darwin"):
            cmd = defs.getWorkingDir()+'/psvpfsparser --title_id_src="'+CMADir+'/EXTRACTED/APP/'+titleid+'/savedata/ux0_temp_game_'+titleid+'_savedata_'+titleid+'" --title_id_dst="'+CMADir+'/EXTRACTED/DPFS/SAVEDATA/'+titleid+'" --f00d_url=cma.henkaku.xyz'
        elif sys.platform.__contains__("win") and not sys.platform.__contains__("darwin"):
            cmd = defs.getWorkingDir() + '\\psvpfsparser.exe --title_id_src="' + CMADir + '\\EXTRACTED\\APP\\' + titleid + '\\savedata\\ux0_temp_game_' + titleid + '_savedata_' + titleid + '" --title_id_dst="' + CMADir + '\\EXTRACTED\\DPFS\\SAVEDATA\\' + titleid + '" --f00d_url=cma.henkaku.xyz'
        print "Executing: "+cmd
        os.system(cmd)
示例#20
0
def vp_start_gui(backup, account):
    bkup = backup
    acc = account
    '''Starting point when module is the main routine.'''
    global val, w, root
    root = Tk()
    if sys.platform.__contains__(
            "win") and not sys.platform.__contains__("darwin"):
        import defs
        root.iconbitmap(bitmap=defs.getWorkingDir() + '\icon.ico')
    top = New_Toplevel_1(root)
    emububble_support.init(root, top)
    root.mainloop()
示例#21
0
def vp_start_gui():
    '''Starting point when module is the main routine.'''
    global val, w, root
    root = Tk()
    if sys.platform.__contains__(
            "win") and not sys.platform.__contains__("darwin"):
        import defs
        root.iconbitmap(bitmap=defs.getWorkingDir() + '\icon.ico')
    accMgr_support.set_Tk_var()
    top = Account_Mannager(root)
    accMgr_support.init(root, top)
    root.mainloop()
    root.resizable(0, 0)
示例#22
0
def vp_start_gui(acc=0, bkup=0, cma=0):
    global account
    global oldtitleid
    global CMA
    account = acc
    oldtitleid = bkup
    CMA = cma
    '''Starting point when module is the main routine.'''
    global val, w, root
    root = Tk()
    if sys.platform.__contains__(
            "win") and not sys.platform.__contains__("darwin"):
        import defs
        root.iconbitmap(bitmap=defs.getWorkingDir() + '\icon.ico')
    top = Clone_Bubble(root)
    clone_support.init(root, top)
    root.mainloop()
示例#23
0
 def __init__(self, top=None):
     """This class configures and populates the toplevel window.
     top is the toplevel containing window."""
     _bgcolor = '#d9d9d9'
     _fgcolor = '#000000'
     _compcolor = '#d9d9d9'
     _ana1color = '#d9d9d9'
     _ana2color = '#d9d9d9'
     font10 = '-family {DejaVu Sans Mono} -size 12 -weight normal -slant roman -underline 0 -overstrike 0'
     self.style = ttk.Style()
     if sys.platform == 'win32':
         self.style.theme_use('winnative')
     self.style.configure('.', background=_bgcolor)
     self.style.configure('.', foreground=_fgcolor)
     self.style.map('.',
                    background=[('selected', _compcolor),
                                ('active', _ana2color)])
     top.geometry('600x450+387+80')
     top.title('Easy Installers')
     top.configure(highlightcolor='black')
     self.Button3 = Button(top)
     self.Button3.place(relx=0.62, rely=0.91, height=26, width=217)
     self.Button3.configure(activebackground='#d9d9d9')
     self.Button3.configure(command=lambda: easyInstallers_support.install(
         self.backupList.get(ACTIVE)))
     self.Button3.configure(text='Install')
     a = 0
     self.backupList = ScrolledListBox(top)
     self.backupList.place(relx=0.02,
                           rely=0.02,
                           relheight=0.96,
                           relwidth=0.58)
     self.backupList.configure(background='white')
     self.backupList.configure(font=font10)
     self.backupList.configure(highlightcolor='#d9d9d9')
     self.backupList.configure(selectbackground='#c4c4c4')
     self.backupList.configure(width=10)
     for root, dir, files in os.walk(defs.getWorkingDir() +
                                     '/easyinstallers'):
         for items in fnmatch.filter(dir, '*'):
             a += 1
             if defs.isPlugin(items):
                 self.backupList.insert(a, items)
示例#24
0
def getKey(titleid):
    print "Looking up key for "+titleid
    try:
        configParser = ConfigParser.RawConfigParser()
        configParser.read(defs.getWorkingDir()+"/keydb.ini")
        print("Checking zRIF..")
        key = configParser.get("zrif",titleid)
        print "Key found in zRIF"
        return key
    except ConfigParser.NoOptionError:
        print "Key not found in zRIF"
    try:
        print("Checking klicense..")
        key = configParser.get("klicense",titleid)
        print("Key found in klicense")
        return key
    except:
        print "Key not found in klicense"

    print "Key is not found in the key database."
    return 404
示例#25
0
    def __init__(self, top=None):
        '''This class configures and populates the toplevel window.
           top is the toplevel containing window.'''
        _bgcolor = '#d9d9d9'  # X11 color: 'gray85'
        _fgcolor = '#000000'  # X11 color: 'black'
        _compcolor = '#d9d9d9'  # X11 color: 'gray85'
        _ana1color = '#d9d9d9'  # X11 color: 'gray85'
        _ana2color = '#d9d9d9'  # X11 color: 'gray85'
        font10 = "-family {DejaVu Sans Mono} -size 12 -weight normal "  \
            "-slant roman -underline 0 -overstrike 0"
        self.style = ttk.Style()
        if sys.platform == "win32":
            self.style.theme_use('winnative')
        self.style.configure('.', background=_bgcolor)
        self.style.configure('.', foreground=_fgcolor)
        self.style.map('.',
                       background=[('selected', _compcolor),
                                   ('active', _ana2color)])

        top.geometry("600x450+453+158")
        top.title("Create Emulator Bubble")

        global a
        a = 0
        self.Label1 = Label(top)
        self.Label1.place(relx=0.02, rely=0.02, height=28, width=576)
        self.Label1.configure(text='''Create Emulator Bubble''')
        self.Label1.configure(width=576)

        self.Scrolledlistbox1 = ScrolledListBox(top)
        self.Scrolledlistbox1.place(relx=0.02,
                                    rely=0.09,
                                    relheight=0.81,
                                    relwidth=0.96)
        self.Scrolledlistbox1.configure(background="white")
        self.Scrolledlistbox1.configure(font=font10)
        self.Scrolledlistbox1.configure(highlightcolor="#d9d9d9")
        self.Scrolledlistbox1.configure(selectbackground="#c4c4c4")
        self.Scrolledlistbox1.configure(width=10)
        print "Looking in: " + defs.getWorkingDir(
        ) + "/easyinstallers/EmuBubble/FILES"
        for root, dir, files in defs.walklevel(
                defs.getWorkingDir() + "/easyinstallers/EmuBubble/FILES",
                level=0):
            for items in fnmatch.filter(dir, "*"):
                a += 1
                self.Scrolledlistbox1.insert(a, items)

        self.Button1 = Button(top)
        self.Button1.place(relx=0.02, rely=0.91, height=36, width=377)
        self.Button1.configure(activebackground="#d9d9d9")
        self.Button1.configure(text='''Create Bubble''')
        self.Button1.configure(width=377)
        self.Button1.configure(command=lambda: emububble_support.createBackup(
            self.Scrolledlistbox1.get(ACTIVE), account, backup))

        self.Button2 = Button(top)
        self.Button2.place(relx=0.65, rely=0.91, height=36, width=197)
        self.Button2.configure(activebackground="#d9d9d9")
        self.Button2.configure(command=lambda: emububble_support.folder(
            self.Scrolledlistbox1.get(ACTIVE)))
        self.Button2.configure(text='''Open Emulators Folder''')
        self.Button2.configure(width=197)
示例#26
0
def folder(dir):
    defs.openFolder(defs.getWorkingDir()+"/easyinstallers/EmuBubble/FILES/"+dir)
示例#27
0
def run():
    CMA = defs.getCmaDir()
    if not os.path.exists(CMA + "/EXTRACTED/APP/PCSI00011"):
        shutil.copytree(defs.getWorkingDir() + "/easyinstallers/PSMRuntime/PCSI00011", CMA + "/EXTRACTED/APP/PCSI00011")
    import easyinstallers.PSMRuntime.signTo as signTo
    signTo.vp_start_gui()
def install(plugin):
    if plugin == 'ARK':
        if tkMessageBox.askyesno(
                title="3.65?",
                message=
                "ARK WILL NOT WORK ON 3.65+\nDo you still want to continue?"):
            ARK.vp_start_gui()
    elif plugin == 'VHBL':
        VHBL.vp_start_gui()
    elif plugin == 'HiddenApps':
        HiddenApps.run()
    elif plugin == 'Whitelister':
        Whitelister.vp_start_gui()
    elif plugin == 'UriCaller':
        UriCaller.vp_start_gui()
    elif plugin == 'PSMRuntime':
        PSMRuntime.run()
    elif plugin == 'Skype':
        if tkMessageBox.askyesno(
                title="3.65?",
                message=
                "SKYPE WILL NOT WORK ON 3.65+\nDo you still want to continue?"
        ):
            Skype.run()
    elif plugin == 'RemoveFeatured':
        RemoveFeatured.vp_start_gui()
    elif plugin == 'CmBackup':
        cmbackup.vp_start_gui()
    elif plugin == 'EmuBubble':
        emububble.vp_start_gui()
    elif plugin == 'ClonePSP':
        clonePSP.vp_start_gui()
    elif plugin == 'VitaShell':
        VitaShell.run()
    elif plugin == 'hencore':
        if not os.path.exists("easyinstallers/hencore/PCSG90096/app"):
            if tkMessageBox.askyesno(
                    title="Download h-encore?",
                    message=
                    "h-encore is not downloaded\nIt will not work unless you download it\nDo you want to download h-encore?"
            ):
                if os.path.exists("hencore"):
                    shutil.rmtree('hencore')
                if os.path.exists("easyinstallers/hencore/PCSG90096/app"):
                    shutil.rmtree('easyinstallers/hencore/PCSG90096/app')
                if os.path.exists("easyinstallers/hencore/PCSG90096/appmeta"):
                    shutil.rmtree('easyinstallers/hencore/PCSG90096/appmeta')
                if os.path.exists("easyinstallers/hencore/PCSG90096/license"):
                    shutil.rmtree('easyinstallers/hencore/PCSG90096/license')
                if os.path.exists("easyinstallers/hencore/PCSG90096/savedata"):
                    shutil.rmtree('easyinstallers/hencore/PCSG90096/savedata')
                if os.path.exists("easyinstallers/hencore/PCSG90096/sce_sys"):
                    shutil.rmtree('easyinstallers/hencore/PCSG90096/sce_sys')
                print 'Downloading bitter smile...\nThis may take a while.'
                os.makedirs("hencore")
                open("hencore/bittersmile.pkg", "wb").write(
                    urllib2.urlopen(
                        "http://ares.dl.playstation.net/cdn/JP0741/PCSG90096_00/xGMrXOkORxWRyqzLMihZPqsXAbAXLzvAdJFqtPJLAZTgOcqJobxQAhLNbgiFydVlcmVOrpZKklOYxizQCRpiLfjeROuWivGXfwgkq.pkg"
                    ).read())
                print 'Downloading pkg2zip...'
                open("hencore/pkg2zip_32bit.zip", "wb").write(
                    urllib2.urlopen(
                        "https://github.com/mmozeiko/pkg2zip/releases/download/v1.8/pkg2zip_32bit.zip"
                    ).read())
                print 'Unzipping pkg2zip...'
                zip_ref = zipfile.ZipFile("hencore/pkg2zip_32bit.zip", 'r')
                zip_ref.extractall("hencore")
                zip_ref.close()
                os.remove("hencore/pkg2zip_32bit.zip")
                print 'Downloading h-encore...'
                open("hencore/h-encore.zip", "wb").write(
                    urllib2.urlopen(
                        "https://github.com/TheOfficialFloW/h-encore/releases/download/v1.0/h-encore.zip"
                    ).read())
                print 'Unzipping h-encore...'
                zip_ref = zipfile.ZipFile("hencore/h-encore.zip", 'r')
                zip_ref.extractall("hencore")
                zip_ref.close()
                os.remove("hencore/h-encore.zip")
                print 'Decrypting pkg...'
                subprocess.call('hencore/pkg2zip -x hencore/bittersmile.pkg')
                print 'Copying game to h-encore folder...'
                source = "app/PCSG90096/"
                dest1 = "hencore/h-encore/app/ux0_temp_game_PCSG90096_app_PCSG90096/"
                files = os.listdir(source)
                for f in files:
                    shutil.move(source + f, dest1)
                shutil.rmtree('app')
                print 'Copying license...'
                shutil.copy2(
                    "hencore/h-encore/app/ux0_temp_game_PCSG90096_app_PCSG90096/sce_sys/package/temp.bin",
                    "hencore/h-encore/license/ux0_temp_game_PCSG90096_license_app_PCSG90096"
                )
                shutil.move(
                    "hencore/h-encore/license/ux0_temp_game_PCSG90096_license_app_PCSG90096/temp.bin",
                    "hencore/h-encore/license/ux0_temp_game_PCSG90096_license_app_PCSG90096/6488b73b912a753a492e2714e9b38bc7.rif"
                )
                print 'Finishing up...'
                if not os.path.exists("hencore/h-encore/sce_sys/"):
                    os.makedirs("hencore/h-encore/sce_sys/")
                source = "hencore/h-encore/PCSG90096/sce_sys/"
                dest1 = "hencore/h-encore/sce_sys/"
                files = os.listdir(source)
                for f in files:
                    shutil.move(source + f, dest1)
                os.rmdir("hencore/h-encore/PCSG90096/sce_sys")
                os.rmdir("hencore/h-encore/PCSG90096/")
                source = "hencore/h-encore/"
                dest1 = "easyinstallers/hencore/PCSG90096"
                files = os.listdir(source)
                for f in files:
                    shutil.move(source + f, dest1)
                shutil.rmtree('hencore')
                hencore.run()
        else:
            hencore.run()

    else:
        ### Load Custom EasyInstaller. ###
        defs.executePy(defs.getWorkingDir() + '/easyinstallers/' + plugin +
                       '/main.py')

    sys.stdout.flush()
示例#29
0
import defs
import os
import fnmatch
import getopt
import sys
import urllib
import main

# Requires BPlistLib -- https://github.com/tungol/bplistlib
# Requires REQUESTS -- pip install requests

version = "v0.5.3"
os.chdir(defs.getWorkingDir())
print "/--PSVIMGTOOLS-FRONTEND " + version + "--\ "
print '|  GUI BY SILICAANDPINA!        |'
print '|  CLI BY YIFANLU / MOLECULE    |'
print '\-------------------------------/'

opts, args = getopt.getopt(sys.argv[1:], 'x:y:')
try:
    if args[0] == "m":
        print "Running in MANUAL mode."
        print "In this mode you have to setup the application yourself."
        print "The only reason i added this mode is because people keep getting errors where\nthe application opens and then closes immediatley."
        print "So yea you just need to enter a few things: "
        PSNName = raw_input("What is your PSN Account Name? ")
        aid = raw_input("What is your AID/PSID? ")
        CmaDir = raw_input("Where is your QCMA Backups Directory? ")
        print "Downloading key.. - Make sure you are connected to the internet and have access to cma.henkaku.xyz!"
        urllib.urlretrieve('http://cma.henkaku.xyz/?aid=' + aid,
                           'tempKey.html')