mirror of
https://github.com/openwrt-xiaomi/xmir-patcher.git
synced 2026-09-22 22:57:55 +03:00
Add testmode into function create_xqimage
This commit is contained in:
+17
-8
@@ -73,11 +73,11 @@ xqModelList = [
|
||||
"<unk40>", # 40
|
||||
"<unk41>",
|
||||
"<unk42>",
|
||||
"RA80",
|
||||
"RA81",
|
||||
"RA82",
|
||||
"RA80", # AX3000
|
||||
"RA81", # Redmi AX3000
|
||||
"RA82", # AX3000
|
||||
"RA83",
|
||||
"RA74",
|
||||
"RA74", # AX5400
|
||||
"<unk48>",
|
||||
"YY01",
|
||||
"RB01", # 50
|
||||
@@ -102,6 +102,7 @@ def buf_align(buf, align, padfill = b'\x00'):
|
||||
|
||||
|
||||
class XQImage():
|
||||
testmode = False
|
||||
model = None
|
||||
type = 0
|
||||
version = None
|
||||
@@ -109,7 +110,8 @@ class XQImage():
|
||||
padfill = b'\xFF'
|
||||
files = [] # list of files
|
||||
|
||||
def __init__(self, model, type = 0):
|
||||
def __init__(self, model, type = 0, testmode = False):
|
||||
self.testmode = testmode
|
||||
self.model = model.upper()
|
||||
self.type = type
|
||||
self.header = XQImgHdr()
|
||||
@@ -187,6 +189,9 @@ class XQImage():
|
||||
if self.model == "R3G":
|
||||
poffset = 0x1058
|
||||
payload = i2b(0x416078) + i2b(0) + i2b(0) + i2b(0x402810) # 2.25.124, 2.28.44
|
||||
if self.model == "R3P":
|
||||
poffset = 0x1058
|
||||
payload = i2b(0x416078) + i2b(0) + i2b(0) + i2b(0x402810) # 2.16.29
|
||||
if self.model == "R3600": # AX3600
|
||||
poffset = 0x1070
|
||||
payload = i2b(0x415290) + i2b(0) + i2b(0x402634) + i2b(0) # 1.0.17 ... 1.1.19
|
||||
@@ -205,15 +210,19 @@ class XQImage():
|
||||
sign = i2b(poffset) + (b'\x00' * 12)
|
||||
# add fake sign
|
||||
size = poffset - len(payload)
|
||||
for i in range(0, size, 4):
|
||||
sign += (0xEAA00000 + i).to_bytes(4, byteorder='little')
|
||||
if self.testmode:
|
||||
for i in range(0, size, 4):
|
||||
sign += (0xEAA00000 + i).to_bytes(4, byteorder='little')
|
||||
else:
|
||||
sign += b'\xFF' * size
|
||||
# add payload
|
||||
sign += payload
|
||||
return sign
|
||||
|
||||
|
||||
def create_xqimage(model, name, mtd, size, data, outfilename = None):
|
||||
img = XQImage(model)
|
||||
testmode = True if os.getenv('XQTEST', default = '0') == '1' else False
|
||||
img = XQImage(model, testmode = testmode)
|
||||
if data is None:
|
||||
data = b''
|
||||
if len(data) > size:
|
||||
|
||||
Reference in New Issue
Block a user