Browse Source

Remove NR >= 2 check

It seems that the NR value doesn't really matter, as it is equal to 0 in some
images. The presence of a particular region is tied to the condition
region_end > region_start.
Nicola Corna 7 years ago
parent
commit
ba885fa9fc
1 changed files with 16 additions and 21 deletions
  1. 16 21
      me_cleaner.py

+ 16 - 21
me_cleaner.py

@@ -329,29 +329,24 @@ if __name__ == "__main__":
 
         f.seek(0x14)
         flmap0, flmap1 = unpack("<II", f.read(8))
-        nr = flmap0 >> 24 & 0x7
         frba = flmap0 >> 12 & 0xff0
         fmba = (flmap1 & 0xff) << 4
-        if nr >= 2:
-            f.seek(frba)
-            flreg0, flreg1, flreg2 = unpack("<III", f.read(12))
-            fd_start = (flreg0 & 0x1fff) << 12
-            fd_end = flreg0 >> 4 & 0x1fff000 | 0xfff + 1
-            me_start = (flreg2 & 0x1fff) << 12
-            me_end = flreg2 >> 4 & 0x1fff000 | 0xfff + 1
-
-            if me_start >= me_end:
-                sys.exit("The ME/TXE region in this image has been disabled")
-
-            f.seek(me_start + 0x10)
-            if f.read(4) != b"$FPT":
-                sys.exit("The ME/TXE region is corrupted or missing")
-
-            print("The ME/TXE region goes from {:#x} to {:#x}"
-                  .format(me_start, me_end))
-        else:
-            sys.exit("This image does not contains a ME/TXE firmware NR = {})"
-                     .format(nr))
+        f.seek(frba)
+        flreg0, flreg1, flreg2 = unpack("<III", f.read(12))
+        fd_start = (flreg0 & 0x1fff) << 12
+        fd_end = flreg0 >> 4 & 0x1fff000 | 0xfff + 1
+        me_start = (flreg2 & 0x1fff) << 12
+        me_end = flreg2 >> 4 & 0x1fff000 | 0xfff + 1
+
+        if me_start >= me_end:
+            sys.exit("The ME/TXE region in this image has been disabled")
+
+        f.seek(me_start + 0x10)
+        if f.read(4) != b"$FPT":
+            sys.exit("The ME/TXE region is corrupted or missing")
+
+        print("The ME/TXE region goes from {:#x} to {:#x}"
+              .format(me_start, me_end))
     else:
         sys.exit("Unknown image")