T480/s T480 (bzw. X270/T470/etc.): BIOS Advanced Menu (skyra1n) & me_cleaner

iks230

Active member
Registriert
8 Dez. 2021
Beiträge
604
Ich hoffe mal bei der Forensuche kein Thema übersehen zu haben, was dies bereits behandelt.

Modfiziertes BIOS (erweiterte Optionen und ausgeschaltete Intel Management Engine) am Beispiel eines T480 (gleiche Patch-Datei lässt sich auch auf X270, T470, xx70 bzw. xx80 anwenden).

Ich konzentriere mich in der Anleitung auf einen CH341a als Programmer für den Chip. Alternativ kann auch ein Raspberry Pi verwendet werden (Links dazu weiter unter).

optional vorher anschauen bzw. durchlesen
benötigte Hard- und Software
  • zweiter Rechner mit Linux für flashrom (geht auch unter Mac mit Homebrew; Windows wohl eher schwierig)
  • CH341a (3,3 V-Version!) plus SOIC8-Clip und entsprechende Verkabelung / Adapter
Allgemeine Hinweise
  • BIOS-Passwörter entfernen und BIOS auf Werkeinstellungen zurücksetzen
  • BIOS mindestens zweimal auslesen und überprüfen, ob beide Dateien identisch sind (z. B. via Prüfsumme) und Sicherheitskope anfertigen
  • Akku entfernen bzw. internen Akku im BIOS deaktivieren
  • da das TPM betroffen sein kann: ggf. vorher das System entschlüsseln, wenn die Verschlüsselung auf TPM aufbaut
  • den Clip immer nur stromlos auf den Chip aufsetzen bzw. loslösen
  • viele CH341a liefern 5 V statt der geforderten 3,3 V (hier ein Fix oder auf die v1.6 ausweichen; Kauflinks weiter unten)
  • auslesen hat ca. zweieinhalb Minuten gedauert, zurückschreiben ca. viereinhalb Minuten
  • sollte irgendwas schiefgehen: Sicherheitskopie zurückflashen
BIOS Advanced Menu (bietet zum Beispiel Overclocking-Optionen)
  • BIOS auslesen
  • in der Patch-Datei die Patches, die nicht angewendet werden sollen, mit # auskommentieren
  • UEFIPatch plus Patch-Datei (z. B. xx70_xx80_patches_v7.txt) auf das ausgelesene BIOS anwenden
  • mit einem HEX-Editor den Wert 4C 4E 56 42 42 53 45 43 FB durch 4C 4E 56 42 42 53 45 43 FF ersetzen (z. B. Okteta)
  • modifiziertes BIOS zurückschreiben
Nachteil: TPM funktioniert nicht mehr, da das BIOS nicht mehr signiert ist bzw. TPM ist im Manufacturing (MFG) Mode (wobei manchmal Bitlocker doch noch zu gehen scheint; könnte aber ein Problem bei Windows 11 werden wegen TPM-Pflicht).

Beispiel Kommandozeilen-Befehle (mit einem CH341a):
Code:
sudo flashrom -p ch341a_spi -r bios1.bin # BIOS auslesen Nr. 1

sudo flashrom -p ch341a_spi -r bios2.bin # BIOS auslesen Nr. 2

sha512sum bios1.bin bios2.bin # sollte die gleiche Prüfsumme ergeben

diff bios1.bin bios2.bin # Alternative zu sha512sum: keine Ausgabe bedeutet "Dateien identisch"

nano xx70_xx80_patches_v7.txt # Patch-Datei bearbeiten bzw. Patches ggf. auskommentieren mit # (z. B. für X270)

./UEFIPatch bios1.bin xx70_xx80_patches_v7.txt -o bios_patched.bin # Patch anwenden

okteta bios_patched.bin # bios_patched.bin mit dem HEX-Editor bearbeiten

sudo flashrom -p ch341a_spi -w bios_patched.bin # BIOS zurückschreiben

Intel Management Engine abschalten
Beispiel Kommandozeilen-Befehle (mit einem CH341a):
Code:
sudo flashrom -p ch341a_spi -r bios1.bin # BIOS auslesen Nr. 1

sudo flashrom -p ch341a_spi -r bios2.bin # BIOS auslesen Nr. 2

sha512sum bios1.bin bios2.bin # sollte die gleiche Prüfsumme ergeben

diff bios1.bin bios2.bin # Alternative zu sha512sum: keine Ausgabe bedeutet "Dateien identisch"

./me_cleaner.py -s -O bios_ohne_me.bin bios1.bin

sudo flashrom -p ch341a_spi -w bios_ohne_me.bin # BIOS zurückschreiben

Links zu Raspberry Pi
Links, die mir weitergeholfen haben:
Beispiele für Terminal-Ausgaben:

BIOS auslesen:
Code:
$ sudo flashrom -p ch341a_spi -r bios1.bin
flashrom v1.2 on Linux 5.18.11-200.fc36.x86_64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25Q128.V" (16384 kB, SPI) on ch341a_spi.
Reading flash... done.

Checksummen überprüfen:
Code:
$ sha512sum *
ebc50f6fbf58d4ff9f67a81487f18c1f[...] bios1.bin
ebc50f6fbf58d4ff9f67a81487f18c1f[...] bios2.bin

me_cleaner anwenden:
Code:
$ ./me_cleaner.py -s -O bios_ohne_me.bin bios1.bin
Full image detected
Found FPT header at 0x3010
Found 13 partition(s)
Found FTPR header: FTPR partition spans from 0x1000 to 0x130000
Found FTPR manifest at 0x1478
ME/TXE firmware version 11.8.92.4222 (generation 3)
Public key match: Intel ME, firmware versions 11.x.x.x
The HAP bit is NOT SET
Checking the FTPR RSA signature... VALID

mit me_cleaner den Status von ME auslesen:
Code:
$ ./me_cleaner.py -c bios_ohne_me.bin
Full image detected
Found FPT header at 0x3010
Found 13 partition(s)
Found FTPR header: FTPR partition spans from 0x1000 to 0x130000
Found FTPR manifest at 0x1478
ME/TXE firmware version 11.8.92.4222 (generation 3)
Public key match: Intel ME, firmware versions 11.x.x.x
The HAP bit is SET
Checking the FTPR RSA signature... VALID

BIOS zurückschreiben:
Code:
$ sudo flashrom -p ch341a_spi -w bios_ohne_me.bin
flashrom v1.2 on Linux 5.18.11-200.fc36.x86_64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25Q128.V" (16384 kB, SPI) on ch341a_spi.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.

BIOS patchen für Advanced Menu:
Code:
$ ./UEFIPatch bios1.bin xx70_xx80_patches_v7.txt -o bios_patched.bin
parseVolume: unknown file system FFF12B8D-7696-4C8B-A985-2747075B4F50
parseBios: one of volumes inside overlaps the end of data
parseFile: non-empty pad-file contents will be destroyed after volume modifications
patch: replaced 16 bytes at offset 3B60h 04320B483CC2E14ABB16A73FADDA475F -> 778B1D826D24964E8E103467D56AB1BA
patch: replaced 16 bytes at offset 118D0h 04320B483CC2E14ABB16A73FADDA475F -> 778B1D826D24964E8E103467D56AB1BA
patch: replaced 28 bytes at offset 6B80Ch 09072C1300000209072D1300000309072E1300000409072F13000005 -> 09072C1300001909072D1300001A09072E1300001B09072F1300001C
patch: replaced 58 bytes at offset 53B44h 00143100300030004D0068007A000000143100350030004D0068007A000000143200300030004D0068007A000000143200350030004D0068007A -> 00143100320035003000200020000000143100330030003000200020000000143100330035003000200020000000143100340030003000200020
patch: replaced 26 bytes at offset 69DDFh 0A821286A10B04001206A60B010016021206A60B020016022902 -> 0A821286A10B04001206A60B000016021206A60B000016022902
patch: replaced 11 bytes at offset 545h 0BC8394B040F8437020000 -> 0BC8394B04E93802000000
patch: replaced 5 bytes at offset 535h C8390B7516 -> C8390B7500
Image patched
 
Zuletzt bearbeitet:
Solche Dinge dürften Im Wiki besser aufgehoben sein.
 
Ich finde solche threads bewundernswert... Und sicherlich für die Nachwelt im Wiki interessant!

Weiter so!
 
Danke für die Infos! Und ich glaube dein v1.6-Kauf-Link ist falsch, der verweist auf gleiche Youtube-Video. Oder soll das so? Aber du erinnerst mich daran, dass ich meinen CH341a auch noch auf 3,3V umrüsten wollte - aber da ich aktuell keinen Anwendungsfall habe, wofür ich das brauche, werde ich das wohl weiter vor mir herschieben :D
 
v1.6-Kauf-Link ist falsch

Sollte kein Kauf-Link sein, sondern ist ein Video vom gleichen Menschen der den Fix zeigt und auf die v1.6 aufmerksam macht. Aber ja, ist nicht so eindeutig geschrieben. Werde ich anpassen :)

Hab folgende Links gefunden um die v1.6 (mittlerweile v1.7) kaufen zu können:

 
Was passiert, wenn man mittels fwupdmgr ein BIOS-Update wie etwa 1.44 installiert? Sind dann nur die Modifikationen weg oder riskiert man damit einen Brick, den man nur mit einem Hardware-Flasher richten kann?
 
Was passiert, wenn man mittels fwupdmgr ein BIOS-Update wie etwa 1.44 installiert? Sind dann nur die Modifikationen weg oder riskiert man damit einen Brick, den man nur mit einem Hardware-Flasher richten kann?

Dazu kann ich leider (noch) nichts sagen, da ich bisher kein Update via fwupdmgr gemacht habe (und das Advanced Menu nicht freigeschaltet ist wegen TPM). Aber vielleicht habe ich demnächst Zeit für ein Downgrade, Anwendung der Patches und dann den Versuch eines von dir beschriebenen Upgrades.

Meine Vermutung wäre: Die Änderungen werden rückgängig gemacht und es ist wieder ein Standard-BIOS vorhanden. Ggf. bleibt Intel ME deaktiviert, weil nur der BIOS-Bereich überschrieben wird.


Hier übrigens die Ausgabe bzgl. Status von Intel ME:
Code:
PS C:\Users\T480\Downloads\IntelME\Intel CSME System Tools v11 r30\MEInfo\WIN64> .\MEInfoWin64.exe -verbose

Intel(R) MEInfo Version: 11.8.77.3665
Copyright(C) 2005 - 2019, Intel Corporation. All rights reserved.

Windows OS Version : 10.0

    Table Type  90 ( 0x 5A ) found, size of   0 (0x 00 ) bytes
    Table Type 222 ( 0x DE ) found, size of  72 (0x 48 ) bytes
    Table Type  14 ( 0x 0E ) found, size of  42 (0x 2A ) bytes
    Table Type 134 ( 0x 86 ) found, size of  15 (0x 0F ) bytes
    Table Type  16 ( 0x 10 ) found, size of  25 (0x 19 ) bytes
    Table Type  17 ( 0x 11 ) found, size of 107 (0x 6B ) bytes
    Table Type  19 ( 0x 13 ) found, size of  33 (0x 21 ) bytes
    Table Type  14 ( 0x 0E ) found, size of  14 (0x 0E ) bytes
    Table Type 222 ( 0x DE ) found, size of  72 (0x 48 ) bytes
    Table Type  14 ( 0x 0E ) found, size of  42 (0x 2A ) bytes
    Table Type 134 ( 0x 86 ) found, size of  15 (0x 0F ) bytes
    Table Type  16 ( 0x 10 ) found, size of  25 (0x 19 ) bytes
    Table Type  17 ( 0x 11 ) found, size of 107 (0x 6B ) bytes
    Table Type  19 ( 0x 13 ) found, size of  33 (0x 21 ) bytes
    Table Type  14 ( 0x 0E ) found, size of  14 (0x 0E ) bytes
FW Status Register1: 0x80022004
FW Status Register2: 0x304D0106
FW Status Register3: 0x00000030
FW Status Register4: 0x00A86000
FW Status Register5: 0x00001F01
FW Status Register6: 0x04400AC9

  CurrentState:                               Disabled
  ManufacturingMode:                          Disabled
  FlashPartition:                             Valid
  OperationalState:                           Transitioning
  InitComplete:                               Initializing
  BUPLoadState:                               Success
  ErrorCode:                                  Disabled
  ModeOfOperation:                            Alt Disable Mode
  SPI Flash Log:                              Not Present
  FPF HW Source value:                        Original FPF HW Fuse Bank
  ME FPF Fusing Patch Status:                 ME FPF Fusing patch NOT required
  Phase:                                      BringUp
  ICC:                                        Valid OEM data, ICC programmed
  ME File System Corrupted:                   No
  PhaseStatus:                                UNKNOWN
  FPF and ME Config Status:                   Not committed

Error 86: Communication error between application and Intel(R) ME module (FWU client)

Error 81: Internal error (Could not determine FW features information)

So sieht es im BIOS aus:

1659947148929.png

Und im Geräte-Manager von Windows 10 ist der Eintrag Intel(R) Management Engine Interface verschwunden.
 
Zuletzt bearbeitet:
Sehr ausführlich und gut zusammen gefasst.
Auf die Frage was bei einem Bios update passiert. Klar die Änderungen sind dann weg weil die Bios Region komplett neu geschrieben wird.

Etwas einfacher:
#SystemSetup2Dxe
721C8B66-426C-4E86-8E99-3457C46AB0B9 10 P:04320B483CC2E14ABB16A73FADDA475F:778B1D826D24964E8E103467D56AB1BA
Und beim offeset. LNVBBSEC den letzten wert auf FF setzen. Damit ist das Gerät im MFG Mode (deswegen auch das TPM "Problem)
Damit ist bootguard entsprechend ausgeschaltet. Eigentlich ist damit schon lange der Weg frei Coreboot auf die 80ziger Serie zu übernehmen aber irgendwie hat sich so noch keiner die Mühe gemacht. Man muss dazu noch ein paar PXE Treiber behalten aber das sollte eigentlich das kleinste Problem sein.
 
Danke erstmal :)

Klar die Änderungen sind dann weg weil die Bios Region komplett neu geschrieben wird.

Habe vor ein paar Tagen ein Update von 1.44 auf 1.45 gemacht. Die Intel ME-Änderungen blieben erhalten, wovon ich aber auch ausgegangen war. Das Advanced Menu hatte ich nicht aktiviert.


Was ist damit gemeint? (Eine Suche danach hat mich nicht wirklich weiter gebracht.)
 
SystemSetup2Dxe ist die Datei in der Bios Region, mit UEFITool anschauen/betrachten.
Die anderen Dateien in der patch.txt die Date/Time auf Advanced ändern ist nicht notwendig.

Intel ME ist ein eigener Firmware Part und soweit ich mich erinner bleibt das auch konsistent über die Updates, da es glaube ich in einer Config Region geschrieben wird. Mir hat das abschalten von ME in den Advanced Settings gereicht.

Wenn man sich den gesamten SPI Inhalt mal anschaut wird man die verschiedenen Regionen sehen. Descriptor, Bios, ME (usw. usw.).
 
Hallo,

ich habe das Ding nun drüberlaufen lassen, leider ist die Whitelist für die WWAN-Module trotz Anwenden des Patches noch da. Ich habe ein EM7455 in das T480 eingelegt und es erscheint wieder die alte Meldung ...
 
Da hat beim T480s schon jemand denselben Fehler gemeldet. Schade, ich habe das L830 schon echt satt, verbuggtes Ding
 
Also die patches sind nicht so richtig ideal gemacht. Ich hab selbst mal welche gemacht die einfach direkt wieder aus jeglichen check rausspringen. Leider hab ich die Dateien aber nicht mehr da ich keine Probleme mit Whitelist hatte.
Beitrag automatisch zusammengeführt:

Ihr könntet die dxe mit funktionierendem patch in den aktuellen dump importieren. die änderen werden vermutlich so maginal sein das es sehr wahrscheinlich funktionieren wird.
 
Hey zusammen, ich würde mich sehr freuen, wenn mir jemand seine Backups des ausgelesenen Flashs bereitstellen würde. :)

Ich habe ein T480 mit i5-8250 und MX 150-Grafikchip.

Hintergrund: Ich wollte mein BIOS-Flash auslesen und analysieren. Allerdings hat das Auslesen des Flash-Speichers mit zu geringer Spannung (1,8 statt 3,3) scheinbar meinen Flash-Speicher dazu veranlasst, seinen Inhalt zu "vergessen".

Ich hab zwischenzeitlich versucht, ein Binary zu flashen, das ich in einem englischsprachigen Forum für das T480 finden konnte. Damit bootet das Gerät nun wieder und ich kann in das Setup-Menü gehen. Allerdings werden nun keine Festplatten mehr erkannt (weder NVMe, noch meine nachgerüstete S-ATA im WWAN-Schacht). Lediglich der Boot von USB-Sticks funktioniert.

Über den USB-Boot habe ich auch schon ein BIOS-Update von der Lenovo-Website auf die neueste Version durchgeführt. Leider bleibt das Problem mit den nicht erkannten Festplatten bestehen.

Viele Grüße
krabbenhörnchen
 
Vielen Dank an @iks230. Bei meinem T460 hat das Signieren nicht funktioniert und unsigniert startet der Laptop nicht mehr. Der Tipp mit der Änderung von FB zu FF war erfolgreich!

btw: der Link Removing the Wi-Fi whitelist on Haswell Thinkpads (T440p, W540, T540, etc.) ist nicht mehr gültig. Wird wohl aktuell diese Adresse sein: https://notthebe.ee/blog/removing-the-wifi-whitelist/

@krabbenhörnchen: Hab leider kein T480 hier. Kann nur das Backup vom T460 anbieten. Aber ob das beim T480 funktioniert?
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben