Source code for bbarchivist.loadergen

import os
import glob
try:
    from . import pseudocap  # @UnusedImport
except SystemError:
    import pseudocap  # @UnresolvedImport @Reimport


[docs]def generate_loaders( osversion, radioversion, radios=True, cap="cap.exe", localdir=os.getcwd()): """ Create and properly label autoloaders. Leverages Python implementation of cap.exe. :param osversion: OS version, 10.x.y.zzzz. :type osversion: str :param radioversion: Radio version, 10.x.y.zzzz. :type radioversion: str :param radios: Whether to make radios or not. True by default. :type radios: bool :param cap: Path to cap.exe. Default is local dir\\cap.exe. :type cap: str :param localdir: Working path. Default is local dir. :type localdir: str """ # #OS Images print("GETTING FILENAMES...") # 8960 try: os_8960 = glob.glob( os.path.join( localdir, "*qc8960*_sfi.desktop*.signed"))[0] except IndexError: print("No 8960 image found") # 8x30 (10.3.1 MR+) try: os_8x30 = glob.glob( os.path.join( localdir, "*qc8x30*desktop*.signed"))[0] except IndexError: print("No 8x30 image found") # 8974 try: os_8974 = glob.glob( os.path.join( localdir, "*qc8974*desktop*.signed"))[0] except IndexError: print("No 8974 image found") # OMAP (incl. 10.3.1) try: os_ti = glob.glob(os.path.join(localdir, "*winchester*.signed"))[0] except IndexError: print("No OMAP image found") # Radio files # STL100-1 try: radio_z10_ti = glob.glob( os.path.join( localdir, "*radio.m5730*.signed"))[0] except IndexError: print("No OMAP radio found") # STL100-X try: radio_z10_qcm = glob.glob( os.path.join( localdir, "*radio.qc8960.BB*.signed"))[0] except IndexError: print("No 8960 radio found") # STL100-4 try: radio_z10_vzw = glob.glob( os.path.join( localdir, "*radio.qc8960*omadm*.signed"))[0] except IndexError: print("No Verizon 8960 radio found") # Q10/Q5 try: radio_q10 = glob.glob(os.path.join(localdir, "*8960*wtr.*.signed"))[0] except IndexError: print("No Q10/Q5 radio found") # Z30/Classic try: radio_z30 = glob.glob(os.path.join(localdir, "*8960*wtr5*.signed"))[0] except IndexError: print("No Z30/Classic radio found") # Z3 try: radio_z3 = glob.glob(os.path.join(localdir, "*8930*wtr5*.signed"))[0] except IndexError: print("No Z3 radio found") # Passport try: radio_8974 = glob.glob(os.path.join(localdir, "*8974*wtr2*.signed"))[0] except IndexError: print("No Passport radio found") # Pretty format names # 10.x.y.zzz becomes 10.x.0y.0zzz splitos = osversion.split(".") if len(splitos[2]) == 1: splitos[2] = "0" + splitos[2] if len(splitos[3]) < 4: splitos[3] = splitos[3].rjust(4, '0') osversion = ".".join(splitos) splitrad = radioversion.split(".") if len(splitrad[2]) == 1: splitrad[2] = "0" + splitrad[2] if len(splitrad[3]) < 4: splitrad[3] = splitrad[3].rjust(4, '0') radioversion = ".".join(splitrad) # Generate loaders print("\nCREATING LOADERS...") # STL100-1 try: print("\nCreating OMAP Z10 OS...") pseudocap.make_autoloader( # @UndefinedVariable, since PyDev is dumb filename="Z10_" + osversion + "_STL100-1.exe", cap=cap, firstfile=os_ti, secondfile=radio_z10_ti, folder=localdir) except Exception: print("Could not create STL100-1 OS/radio loader") if radios: print("Creating OMAP Z10 radio...") try: pseudocap.make_autoloader( "Z10_" + radioversion + "_STL100-1.exe", cap=cap, firstfile=radio_z10_ti, folder=localdir) except Exception: print("Could not create STL100-1 radio loader") # STL100-X try: print("\nCreating Qualcomm Z10 OS...") pseudocap.make_autoloader( "Z10_" + osversion + "_STL100-2-3.exe", cap=cap, firstfile=os_8960, secondfile=radio_z10_qcm, folder=localdir) except Exception: print("Could not create Qualcomm Z10 OS/radio loader") if radios: print("Creating Qualcomm Z10 radio...") try: pseudocap.make_autoloader( "Z10_" + radioversion + "_STL100-2-3.exe", cap=cap, firstfile=radio_z10_qcm, folder=localdir) except Exception: print("Could not create Qualcomm Z10 radio loader") # STL100-4 try: print("\nCreating Verizon Z10 OS...") pseudocap.make_autoloader( "Z10_" + osversion + "_STL100-4.exe", cap=cap, firstfile=os_8960, secondfile=radio_z10_vzw, folder=localdir) except Exception: print("Could not create Verizon Z10 OS/radio loader") if radios: print("Creating Verizon Z10 radio...") try: pseudocap.make_autoloader( "Z10_" + radioversion + "_STL100-4.exe", cap=cap, firstfile=radio_z10_vzw, folder=localdir) except Exception: print("Could not create Verizon Z10 radio loader") # Q10/Q5 try: print("\nCreating Q10/Q5 OS...") pseudocap.make_autoloader( "Q10_" + osversion + "_SQN100-1-2-3-4-5.exe", cap=cap, firstfile=os_8960, secondfile=radio_q10, folder=localdir) except Exception: print("Could not create Q10/Q5 OS/radio loader") if radios: print("Creating Q10/Q5 radio...") try: pseudocap.make_autoloader( "Q10_" + radioversion + "_SQN100-1-2-3-4-5.exe", cap=cap, firstfile=radio_q10, folder=localdir) except Exception: print("Could not create Q10/Q5 radio loader") # Z30/Classic try: print("\nCreating Z30/Classic OS...") pseudocap.make_autoloader( "Z30_" + osversion + "_STA100-1-2-3-4-5-6.exe", cap=cap, firstfile=os_8960, secondfile=radio_z30, folder=localdir) except Exception: print("Could not create Z30/Classic OS/radio loader") if radios: print("Creating Z30/Classic radio...") try: pseudocap.make_autoloader( "Z30_" + radioversion + "_STA100-1-2-3-4-5-6.exe", cap=cap, firstfile=radio_z30, folder=localdir) except Exception: print("Could not create Z30/Classic radio loader") # Z3 try: print("\nCreating Z3 OS...") pseudocap.make_autoloader( "Z3_" + osversion + "_STJ100-1-2.exe", cap=cap, firstfile=os_8x30, secondfile=radio_z3, folder=localdir) except Exception: print("Could not create Z3 OS/radio loader") if radios: print("Creating Z3 radio...") try: pseudocap.make_autoloader( "Z3_" + radioversion + "_STJ100-1-2.exe", cap=cap, firstfile=radio_z3, folder=localdir) except Exception: print("Could not create Z3 radio loader") # Passport try: print("\nCreating Passport OS...") pseudocap.make_autoloader( "Passport_" + osversion + "_SQW100-1-2-3.exe", cap=cap, firstfile=os_8974, secondfile=radio_8974, folder=localdir) except Exception: print("Could not create Passport OS/radio loader") if radios: print("Creating Passport radio...") try: pseudocap.make_autoloader( "Passport_" + radioversion + "_SQW100-1-2-3.exe", cap=cap, firstfile=radio_8974, folder=localdir) except Exception: print("Could not create Passport radio loader")
[docs]def generate_lazy_loader( osversion, radioversion, device, cap="cap.exe", localdir=os.getcwd()): """ :func:`generate_loaders`, but for making one OS/radio loader. :param osversion: OS version, 10.x.y.zzzz. :type osversion: str :param radioversion: Radio version, 10.x.y.zzzz. :type radioversion: str :param device: Selected device, from :type device: int :param cap: Path to cap.exe. Default is local dir\\cap.exe. :type cap: str :param localdir: Working path. Default is local dir. :type localdir: str """ print("\nCREATING LOADER...") if device == 0: try: os_ti = str(glob.glob("*winchester*.signed")[0]) except IndexError: print("No OMAP image found") return try: radio_z10_ti = str(glob.glob("*radio.m5730*.signed")[0]) except IndexError: print("No OMAP radio found") return else: print("Creating OMAP Z10 OS...") try: pseudocap.make_autoloader( filename="Z10_" + osversion + "_STL100-1.exe", cap=cap, firstfile=os_ti, secondfile=radio_z10_ti, thirdfile="", fourthfile="", fifthfile="", sixthfile="", folder=localdir) except Exception: print("Could not create STL100-1 OS/radio loader") return elif device == 1: try: os_8960 = str(glob.glob("*qc8960*_sfi.desktop*.signed")[0]) except IndexError: print("No 8960 image found") return try: radio_z10_qcm = str(glob.glob("*radio.qc8960.BB*.signed")[0]) except IndexError: print("No 8960 radio found") return else: print("Creating Qualcomm Z10 OS...") try: pseudocap.make_autoloader( "Z10_" + osversion + "_STL100-2-3.exe", cap, os_8960, radio_z10_qcm, folder=localdir) except Exception: print("Could not create Qualcomm Z10 OS/radio loader") return elif device == 2: try: os_8960 = str(glob.glob("*qc8960*_sfi.desktop*.signed")[0]) except IndexError: print("No 8960 image found") return try: radio_z10_vzw = str(glob.glob("*radio.qc8960*omadm*.signed")[0]) except IndexError: print("No Verizon 8960 radio found") return else: print("Creating Verizon Z10 OS...") try: pseudocap.make_autoloader( "Z10_" + osversion + "_STL100-4.exe", cap, os_8960, radio_z10_vzw, folder=localdir) except Exception: print("Could not create Verizon Z10 OS/radio loader") return elif device == 3: try: os_8960 = str(glob.glob("*qc8960*_sfi.desktop*.signed")[0]) except IndexError: print("No 8960 image found") return try: radio_q10 = str(glob.glob("*8960*wtr.*.signed")[0]) except IndexError: print("No Q10/Q5 radio found") return else: print("Creating Q10/Q5 OS...") try: pseudocap.make_autoloader( "Q10_" + osversion + "_SQN100-1-2-3-4-5.exe", cap, os_8960, radio_q10, folder=localdir) except Exception: print("Could not create Q10/Q5 OS/radio loader") return elif device == 4: try: os_8960 = str(glob.glob("*qc8960*_sfi.desktop*.signed")[0]) except IndexError: print("No 8960 image found") return try: radio_z30 = str(glob.glob("*8960*wtr5*.signed")[0]) except IndexError: print("No Z30/Classic radio found") return else: print("Creating Z30/Classic OS...") try: pseudocap.make_autoloader( "Z30_" + osversion + "_STA100-1-2-3-4-5-6.exe", cap, os_8960, radio_z30, folder=localdir) except Exception: print("Could not create Z30/Classic OS/radio loader") return elif device == 5: try: os_8x30 = str(glob.glob("*qc8x30*desktop*.signed")[0]) except IndexError: print("No 8x30 image found") return try: radio_z3 = str(glob.glob("*8930*wtr5*.signed")[0]) except IndexError: print("No Z3 radio found") return else: print("Creating Z3 OS...") try: pseudocap.make_autoloader( "Z3_" + osversion + "_STJ100-1-2.exe", cap, os_8x30, radio_z3, folder=localdir) except Exception: print("Could not create Z3 OS/radio loader") return elif device == 6: try: os_8974 = str(glob.glob("*qc8974*desktop*.signed")[0]) except IndexError: print("No 8974 image found") return try: radio_8974 = str(glob.glob("*8974*wtr2*.signed")[0]) except IndexError: print("No Passport radio found") return else: print("Creating Passport OS...") try: pseudocap.make_autoloader( "Passport_" + osversion + "_SQW100-1-2-3.exe", cap, os_8974, radio_8974, folder=localdir) except Exception: print("Could not create Passport OS/radio loader") return else: return