summaryrefslogtreecommitdiff
path: root/resources/bios_extract/patches/0002-dell_inspiron_1100_unpacker-Convert-from-python-2-to.patch
diff options
context:
space:
mode:
Diffstat (limited to 'resources/bios_extract/patches/0002-dell_inspiron_1100_unpacker-Convert-from-python-2-to.patch')
-rw-r--r--resources/bios_extract/patches/0002-dell_inspiron_1100_unpacker-Convert-from-python-2-to.patch105
1 files changed, 105 insertions, 0 deletions
diff --git a/resources/bios_extract/patches/0002-dell_inspiron_1100_unpacker-Convert-from-python-2-to.patch b/resources/bios_extract/patches/0002-dell_inspiron_1100_unpacker-Convert-from-python-2-to.patch
new file mode 100644
index 0000000..f49c8db
--- /dev/null
+++ b/resources/bios_extract/patches/0002-dell_inspiron_1100_unpacker-Convert-from-python-2-to.patch
@@ -0,0 +1,105 @@
+From 34ecbda8cc75eecb747004520c9e0bd6de3c7723 Mon Sep 17 00:00:00 2001
+From: Nicholas Chin <nic.c3.14@gmail.com>
+Date: Fri, 5 May 2023 19:35:45 -0600
+Subject: [PATCH 2/3] dell_inspiron_1100_unpacker: Convert from python 2 to 3
+
+TEST: The output of the script is the same as the python 2 version when
+run against the Inspiron 1100 BIOS
+
+Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
+Change-Id: I2ab9a72bc65121b1106e9867b7d58d1eefb0eb3d
+---
+ dell_inspiron_1100_unpacker.py | 34 +++++++++++++++++-----------------
+ 1 file changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/dell_inspiron_1100_unpacker.py b/dell_inspiron_1100_unpacker.py
+index b12059b..5e43813 100755
+--- a/dell_inspiron_1100_unpacker.py
++++ b/dell_inspiron_1100_unpacker.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python2
++#!/usr/bin/env python3
+ # Dell/Phoenix ROM BIOS PLUS unpacker
+ # 2012-09-12 version 0.1
+ # 2012-10-10 version 0.2 added support for older BIOSes with 16-bit length (Dell Inspiron 1100)
+@@ -61,16 +61,16 @@ def dell_unpack(indata):
+ dstoff += count
+ srcoff += count
+
+- return dst.tostring()
++ return dst
+
+ mod_types = {
+ 0x01: "Main ROM",
+ 0x0C: "Microcode update",
+ }
+
+-print "Dell/Phoenix ROM BIOS PLUS unpacker"
++print("Dell/Phoenix ROM BIOS PLUS unpacker")
+ if len(sys.argv) < 2:
+- print "Usage: dell_unpack.py bios.bin [offset]"
++ print("Usage: dell_unpack.py bios.bin [offset]")
+ sys.exit(1)
+ fname = sys.argv[1]
+ offs = 0
+@@ -78,32 +78,32 @@ f = open(fname, "rb").read()
+ if len(sys.argv) > 2:
+ offs = int(sys.argv[2], 16)
+ else:
+- offs = f.find("\xF0\x00Copyright 1985-\x02\x04\xF0\x0F8 Phoenix Technologies Ltd.")
++ offs = f.find(b"\xF0\x00Copyright 1985-\x02\x04\xF0\x0F8 Phoenix Technologies Ltd.")
+ if offs == -1:
+- print "Does not look like a Dell/Phoenix ROM BIOS PLUS"
++ print("Does not look like a Dell/Phoenix ROM BIOS PLUS")
+ sys.exit(2)
+- if f[offs-5] == '\x01':
++ if f[offs-5] == 0x01:
+ hlen = 5 # 32-bit length
+ offs -= 5
+ fmt = "<BI"
+- elif f[offs-3] == '\x01':
++ elif f[offs-3] == 0x01:
+ hlen = 3 # 16-bit length
+ offs -= 3
+ fmt = "<BH"
+ else:
+- print "Unhandled format!"
++ print("Unhandled format!")
+ sys.exit(1)
+- print "Found compressed module at %08X" % offs
++ print("Found compressed module at %08X" % offs)
+ if offs > 0:
+ fn = "EC.bin"
+- print "%08X EC code, %08X %s" % (0, offs, fn)
++ print("%08X EC code, %08X %s" % (0, offs, fn))
+ open(fn, "wb").write(f[:offs])
+ while True:
+ type_id, leng = struct.unpack(fmt, f[offs:offs+hlen])
+- print "%08X type %02X" % (offs, type_id),
++ print("%08X type %02X" % (offs, type_id), end=" ")
+ offs += hlen
+ if type_id == 0xFF:
+- print "<end of chain>"
++ print("<end of chain>")
+ break
+ data = f[offs:offs+leng]
+ offs += leng
+@@ -111,11 +111,11 @@ while True:
+ odata = dell_unpack(data)
+ else:
+ odata = data
+- print " %08X -> %08X" % (leng, len(odata)),
++ print(" %08X -> %08X" % (leng, len(odata)), end=" ")
+ fn = "mod_%02X.bin" % type_id
+- print " %s" % fn,
++ print(" %s" % fn, end=" ")
+ if type_id in mod_types:
+- print "(%s)" % mod_types[type_id]
++ print("(%s)" % mod_types[type_id])
+ else:
+- print ""
++ print("")
+ open(fn, "wb").write(odata)
+--
+2.40.1
+