mirror of
https://github.com/bkerler/mtkclient.git
synced 2024-12-02 20:26:57 -05:00
Optimize code for Tools
This commit is contained in:
parent
15af7e8324
commit
4a48dec4b1
6 changed files with 20 additions and 15 deletions
|
@ -203,7 +203,7 @@ class DAconfig(metaclass=LogBase):
|
|||
with open(preloader, "rb") as rf:
|
||||
data = rf.read()
|
||||
else:
|
||||
self.error("Preloader : " + preloader + " doesn't exist. Aborting.")
|
||||
self.error(f"Preloader : {preloader} doesn't exist. Aborting.")
|
||||
exit(1)
|
||||
try:
|
||||
self.emiver, self.emi = self.m_extract_emi(data)
|
||||
|
@ -211,7 +211,7 @@ class DAconfig(metaclass=LogBase):
|
|||
self.emiver = 0
|
||||
self.emi = None
|
||||
|
||||
def parse_da_loader(self, loader:str, dasetup:dict):
|
||||
def parse_da_loader(self, loader: str, dasetup: dict):
|
||||
try:
|
||||
with open(loader, 'rb') as bootldr:
|
||||
# data = bootldr.read()
|
||||
|
@ -245,7 +245,7 @@ class DAconfig(metaclass=LogBase):
|
|||
dasetup[da.hw_code].append(da)
|
||||
return True
|
||||
except Exception as e:
|
||||
self.error("Couldn't open loader: " + loader + ". Reason: " + str(e))
|
||||
self.error(f"Couldn't open loader: {loader}. Reason: {str(e)}")
|
||||
return False
|
||||
|
||||
def setup(self):
|
||||
|
|
|
@ -80,7 +80,8 @@ class legacyext(metaclass=LogBase):
|
|||
self.warning("Legacy DA2 CMD F0 not patched.")
|
||||
return da2patched
|
||||
|
||||
def fix_hash(self, da1, da2, da2sig_len, hashpos, hashmode):
|
||||
@staticmethod
|
||||
def fix_hash(da1, da2, da2sig_len, hashpos, hashmode):
|
||||
da1 = bytearray(da1)
|
||||
dahash = None
|
||||
if hashmode == 1:
|
||||
|
@ -245,8 +246,7 @@ class legacyext(metaclass=LogBase):
|
|||
except Exception:
|
||||
return
|
||||
hwc = self.cryptosetup()
|
||||
retval = {}
|
||||
retval["hwcode"] = hex(self.config.hwcode)
|
||||
retval = {"hwcode": hex(self.config.hwcode)}
|
||||
meid = self.config.get_meid()
|
||||
socid = self.config.get_socid()
|
||||
hwcode = self.config.get_hwcode()
|
||||
|
|
|
@ -91,7 +91,7 @@ class DA_handler(metaclass=LogBase):
|
|||
if mtk.config.target_config["sbc"] and not mtk.config.is_brom and mtk.config.loader is None:
|
||||
mtk = mtk.bypass_security()
|
||||
self.mtk = mtk
|
||||
if self.mtk.daloader.patch :
|
||||
if self.mtk.daloader.patch:
|
||||
self.info("Device was protected. Successfully bypassed security.")
|
||||
else:
|
||||
self.info("Device is still protected, trying to boot to brom")
|
||||
|
@ -685,7 +685,8 @@ class DA_handler(metaclass=LogBase):
|
|||
print(f"Failed to dump offset {hex(start)} with length {hex(length)} as {filename}.")
|
||||
elif cmd == "fs":
|
||||
print(f'Mounting FUSE fs at: {args.mountpoint}...')
|
||||
fs = FUSE(MtkDaFS(self, rw=args.rw), mountpoint=args.mountpoint, foreground=True, allow_other=True, nothreads=True)
|
||||
fs = FUSE(MtkDaFS(self, rw=args.rw), mountpoint=args.mountpoint, foreground=True, allow_other=True,
|
||||
nothreads=True)
|
||||
elif cmd == "footer":
|
||||
filename = args.filename
|
||||
self.da_footer(filename=filename)
|
||||
|
|
|
@ -89,7 +89,8 @@ class DAloader(metaclass=LogBase):
|
|||
return idx, hashmode, hashlen
|
||||
return idx, hashmode, hashlen
|
||||
|
||||
def find_da_hash_V6(self, da1, siglen):
|
||||
@staticmethod
|
||||
def find_da_hash_V6(da1, siglen):
|
||||
pos = len(da1) - siglen - 0x30
|
||||
hash = da1[pos:pos + 0x30]
|
||||
if hash[-4:] == b"\x00\x00\x00\x00":
|
||||
|
@ -110,7 +111,8 @@ class DAloader(metaclass=LogBase):
|
|||
self.debug("Error: No hash found")
|
||||
return -1, -1
|
||||
|
||||
def calc_da_hash(self, da1, da2):
|
||||
@staticmethod
|
||||
def calc_da_hash(da1, da2):
|
||||
hashdigest = hashlib.sha1(da2).digest()
|
||||
hashdigest256 = hashlib.sha256(da2).digest()
|
||||
idx = da1.find(hashdigest)
|
||||
|
@ -120,7 +122,8 @@ class DAloader(metaclass=LogBase):
|
|||
hashmode = 2
|
||||
return hashmode, idx
|
||||
|
||||
def fix_hash(self, da1, da2, hashpos, hashmode, hashlen):
|
||||
@staticmethod
|
||||
def fix_hash(da1, da2, hashpos, hashmode, hashlen):
|
||||
da1 = bytearray(da1)
|
||||
dahash = None
|
||||
if hashmode == 1:
|
||||
|
|
|
@ -14,7 +14,8 @@ class XMLCmd(metaclass=LogBase):
|
|||
self.mtk = mtk
|
||||
self.MAGIC = 0xFEEEEEEF
|
||||
|
||||
def create_cmd(self, cmd: str, content: dict = None, version="1.0"):
|
||||
@staticmethod
|
||||
def create_cmd(cmd: str, content: dict = None, version="1.0"):
|
||||
cmd = f"<?xml version=\"1.0\" encoding=\"utf-8\"?><da><version>{version}</version><command>CMD:{cmd}</command>"
|
||||
if content is not None:
|
||||
for item in content:
|
||||
|
|
|
@ -104,16 +104,16 @@ def main():
|
|||
pos -= 1
|
||||
else:
|
||||
pos2 = find_binary(data, "46FFF7", pos + 8)
|
||||
if pos2 != None:
|
||||
if pos2 is not None:
|
||||
if pos2 - pos < 0x20:
|
||||
pos = pos
|
||||
else:
|
||||
pos = pos2 - 1
|
||||
posr = -1
|
||||
startpos = 0
|
||||
while posr != None:
|
||||
while posr is not None:
|
||||
posr = find_binary(data, "2DE9F047", startpos)
|
||||
if posr == None:
|
||||
if posr is None:
|
||||
break
|
||||
if data[posr + 7] == 0x46 and data[posr + 8] == 0x92:
|
||||
break
|
||||
|
|
Loading…
Reference in a new issue