summaryrefslogtreecommitdiff
path: root/resources/bios_extract/patches/0001-dell_inspiron_1100_unpacker-Fix-minor-style-issues.patch
diff options
context:
space:
mode:
Diffstat (limited to 'resources/bios_extract/patches/0001-dell_inspiron_1100_unpacker-Fix-minor-style-issues.patch')
-rw-r--r--resources/bios_extract/patches/0001-dell_inspiron_1100_unpacker-Fix-minor-style-issues.patch132
1 files changed, 132 insertions, 0 deletions
diff --git a/resources/bios_extract/patches/0001-dell_inspiron_1100_unpacker-Fix-minor-style-issues.patch b/resources/bios_extract/patches/0001-dell_inspiron_1100_unpacker-Fix-minor-style-issues.patch
new file mode 100644
index 0000000..e00379b
--- /dev/null
+++ b/resources/bios_extract/patches/0001-dell_inspiron_1100_unpacker-Fix-minor-style-issues.patch
@@ -0,0 +1,132 @@
+From d187ceefacc4909c4a3fdb8098878cb9bcd2c198 Mon Sep 17 00:00:00 2001
+From: Nicholas Chin <nic.c3.14@gmail.com>
+Date: Fri, 5 May 2023 19:34:29 -0600
+Subject: [PATCH 1/3] dell_inspiron_1100_unpacker: Fix minor style issues
+
+- Make indent width consistent
+- Use spaces around -= operator
+- Rename variable type to type_id to avoid shadowing the type method,
+ though that method isn't ever used in this program
+
+Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
+Change-Id: I2d47501845591e228b6c5d61c36ca2edce91d36a
+---
+ dell_inspiron_1100_unpacker.py | 84 +++++++++++++++++-----------------
+ 1 file changed, 42 insertions(+), 42 deletions(-)
+
+diff --git a/dell_inspiron_1100_unpacker.py b/dell_inspiron_1100_unpacker.py
+index 3d5adf5..b12059b 100755
+--- a/dell_inspiron_1100_unpacker.py
++++ b/dell_inspiron_1100_unpacker.py
+@@ -19,7 +19,7 @@ def memcpy(arr1, off1, arr2, off2, count):
+ raise Exception("Trying to write out of bounds")
+ off1 += 1
+ off2 += 1
+- count -=1
++ count -= 1
+
+ # looks like some lzss variation
+ def dell_unpack(indata):
+@@ -64,58 +64,58 @@ def dell_unpack(indata):
+ return dst.tostring()
+
+ mod_types = {
+- 0x01: "Main ROM",
+- 0x0C: "Microcode update",
++ 0x01: "Main ROM",
++ 0x0C: "Microcode update",
+ }
+
+ print "Dell/Phoenix ROM BIOS PLUS unpacker"
+ if len(sys.argv) < 2:
+- print "Usage: dell_unpack.py bios.bin [offset]"
+- sys.exit(1)
++ print "Usage: dell_unpack.py bios.bin [offset]"
++ sys.exit(1)
+ fname = sys.argv[1]
+ offs = 0
+ f = open(fname, "rb").read()
+ if len(sys.argv) > 2:
+- offs = int(sys.argv[2], 16)
++ offs = int(sys.argv[2], 16)
+ else:
+- offs = f.find("\xF0\x00Copyright 1985-\x02\x04\xF0\x0F8 Phoenix Technologies Ltd.")
+- if offs == -1:
+- print "Does not look like a Dell/Phoenix ROM BIOS PLUS"
+- sys.exit(2)
+- if f[offs-5] == '\x01':
+- hlen = 5 # 32-bit length
+- offs -= 5
+- fmt = "<BI"
+- elif f[offs-3] == '\x01':
+- hlen = 3 # 16-bit length
+- offs -= 3
+- fmt = "<BH"
+- else:
+- print "Unhandled format!"
+- sys.exit(1)
+- print "Found compressed module at %08X" % offs
++ offs = f.find("\xF0\x00Copyright 1985-\x02\x04\xF0\x0F8 Phoenix Technologies Ltd.")
++ if offs == -1:
++ print "Does not look like a Dell/Phoenix ROM BIOS PLUS"
++ sys.exit(2)
++ if f[offs-5] == '\x01':
++ hlen = 5 # 32-bit length
++ offs -= 5
++ fmt = "<BI"
++ elif f[offs-3] == '\x01':
++ hlen = 3 # 16-bit length
++ offs -= 3
++ fmt = "<BH"
++ else:
++ print "Unhandled format!"
++ sys.exit(1)
++ print "Found compressed module at %08X" % offs
+ if offs > 0:
+ fn = "EC.bin"
+ print "%08X EC code, %08X %s" % (0, offs, fn)
+ open(fn, "wb").write(f[:offs])
+ while True:
+- type, leng = struct.unpack(fmt, f[offs:offs+hlen])
+- print "%08X type %02X" % (offs, type),
+- offs += hlen
+- if type == 0xFF:
+- print "<end of chain>"
+- break
+- data = f[offs:offs+leng]
+- offs += leng
+- if type != 0xC:
+- odata = dell_unpack(data)
+- else:
+- odata = data
+- print " %08X -> %08X" % (leng, len(odata)),
+- fn = "mod_%02X.bin" % type
+- print " %s" % fn,
+- if type in mod_types:
+- print "(%s)" % mod_types[type]
+- else:
+- print ""
+- open(fn, "wb").write(odata)
++ type_id, leng = struct.unpack(fmt, f[offs:offs+hlen])
++ print "%08X type %02X" % (offs, type_id),
++ offs += hlen
++ if type_id == 0xFF:
++ print "<end of chain>"
++ break
++ data = f[offs:offs+leng]
++ offs += leng
++ if type_id != 0xC:
++ odata = dell_unpack(data)
++ else:
++ odata = data
++ print " %08X -> %08X" % (leng, len(odata)),
++ fn = "mod_%02X.bin" % type_id
++ print " %s" % fn,
++ if type_id in mod_types:
++ print "(%s)" % mod_types[type_id]
++ else:
++ print ""
++ open(fn, "wb").write(odata)
+--
+2.40.1
+