From d6b313ad75ac4ccda3668042d0a8dacd4fef2f0f Mon Sep 17 00:00:00 2001 From: Kamay Xutax Date: Thu, 4 Aug 2022 23:02:08 +0200 Subject: [PATCH] Added support for Alder Lake (Intel ME 16) Needs testing --- me_cleaner.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/me_cleaner.py b/me_cleaner.py index 6918f7a..f4bc610 100755 --- a/me_cleaner.py +++ b/me_cleaner.py @@ -48,6 +48,7 @@ "3efc26920b4bee901b624771c742887b": ("ME", ("12.x.x.x",)), "8e4f834644da2bef03039d69d41ecf02": ("ME", ("14.x.x.x",)), "b29411f89bf20ed177d411c46e8ec185": ("ME", ("15.x.x.x",)), + "5887caf9b677601ffb257cc98a13d2a9": ("ME", ("16.x.x.x",)), "bda0b6bb8ca0bf0cac55ac4c4d55e0f2": ("TXE", ("1.x.x.x",)), "b726a2ab9cd59d4e62fe2bead7cf6997": ("TXE", ("1.x.x.x",)), "0633d7f951a3e7968ae7460861be9cfb": ("TXE", ("2.x.x.x",)), @@ -667,8 +668,11 @@ def start_end_to_flreg(start, end): mef.seek(ftpr_offset + 0x10) data = mef.read(0x18) - ## Intel ME version 15 seems to have 4 more bytes ## - if data[0] >= 128: + ## Intel ME version >= 15 seems to have 4 more bytes ## + intel_me_15 = bytes([0xDA, 0x3D, 0xC8, 0xE5]) + intel_me_16 = bytes([0x0D, 0xA2, 0xFA, 0xED]) + + if intel_me_15 in data or intel_me_16 in data: mef.seek(ftpr_offset + 0x14) ftpr_mn2_offset = -1 @@ -704,6 +708,8 @@ def start_end_to_flreg(start, end): gen = 5 elif version[0] == 15: gen = 6 + elif version[0] == 16: + gen = 7 print("ME/TXE firmware version {} (generation {})" .format('.'.join(str(i) for i in version), gen)) @@ -769,6 +775,11 @@ def start_end_to_flreg(start, end): pchstrp31 = unpack("