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