Mod Thinkcentre M82 AMI Bios for Simply Changing Splash Screen Logo Help

After hours of trial and error and lots of research, it’s clear to me that this is by far the best place to ask for help.

First off the goal of what I am trying to do is simply change the splash screen image on a Lenovo Thinkcentre M82

It seems from the M82 BIOS update readme, that doing so should be an allowable function, but I can’t get it to work.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
*****************************************************************************
* 3. Flash Program Options *
* *
* wflash2.exe [option1] [option2] ... [optionX] *
* *
* [OPTIONS] *
* /h Show help messages. *
* /rsmb Preserve all SMBIOS structures. *
* /clr Clear BIOS settings. *
* /ign Ingore BIOS version check. *
* /sn:nnnnnnn Update system serial number (up to 20 characters). *
* /csn:nnnnnnn Update chassis serial number (up to 20 characters). *
* /mtm:nnnnnnn Update machine type and model number (up to 25 *
* characters). *
* /tag:nnnnnnn Update system asset tag (up to 25 characters). *
* /uuid The flash utility will generate an Universally *
* Unique Identifier (UUID), replacing the one that *
* is currently in the system. *
[b]* /logo:<filename> Change logo. The max supported size of logo file *[/b]
* is displayed on the screen during the compressing. *
* /cpu Update Intel CPU microcode. *
* /pass:nnnnnnn Input current system password. *
* /quiet Operating without physical presence. *
* *
* The following example shows how to update system asset tag number *
* to "1234567" use command line: *
* wflash2.exe /tag:1234567 *
* *
* The following example shows how to update bios and update system *
* asset tag number by one command: *
* wflash2.exe bios.cap /tag:1234567 *
* *
* The following example shows how to change the power-on logo. *
* wflash2.exe /logo:myfav.bmp *
* *
* Note: A flash update image using these program options should be *
* tested carefully before widespread usage. *
* *
*****************************************************************************
 


I perform that logo function but what I get an error "Child process failed. Return code: 74", see screen capture. I am running cmd as administrator. I have also tried a number of different image formats; png, bmp, gif. It seems to accept the image fine, compresses within limits, but fails whatever the next step is. Another thing I tried was performing this on a 32 bit instance of Windows 7. Originally tried on Windows 10 64bit. The image is a 640x480 image.



I have no problem flashing the bios otherwise, but this option does not work for me and with no support from Lenovo I gave up on this.



****SO****

The bios image is a .CAP file

Using UEFITool I imported the .CAP image. In the .CAP I was able to located the lenovo images (they are not in the standard GUID blocks for "logo" or "EPA logo" or anything like that. I found 3 of them in the following addresses:

4D3D82AE-2C3A-4C14-99BD-D59644EF6BC0
6C9013D0-4059-4723-AF2A-05E63FFECF19
83762026-D2AC-4A48-999C-D392C851A6C6

If you dump the raw data stored here you will get the lenovo boot image in .raw format that will open as a .bmp.

I modified the .raw files with my own image and reinserted them into those locations. (I will note that the size of the images inserted end up being smaller size ~200kb instead of 300kb, despite not changing much and keeping the original resolution).

However, I then fall victim to error 18 which is failing secure flash verification. If I could override secure flash, I think this would work, but I can't seem to figure that out.

I've disabled any "secure boot" options in bios. I've tried "ignore" functions in the flash tool. Nothing seems to work. Sort of frustrating and I've bricked two boards now.

I also note that I can't seem to override secure flash at all. Even using lenovo older images, it gives me the same issue, can't downgrade.

So I tried the /GAM method as recommended by this forum for boards without flashback

Using AFUWINx64 I flash using the original .CAP, which is successful. Then i follow with my modified ".ROM" which I complied by dumping the bios ("/O" function in AFUWIN) and edited the .raw files in UEFITool. When I load that rom I get "rom file size does not match" and if fails. Any other number of things I try otherwise gives me Error 18 Secure Flash Fail.

I'm really frustrated by now trying to do a relatively mundane thing and have become desperate for some help. Any advice or guidance I can try?

@odelay17 - How are you bricking boards if it’s refusing to flash? Flashback is an Asus thing only. Since you found working AFUWinx64, proper method for flashing mod BIOS would be to flash the stock BIOS, and without reboot immediately flash your mod BIOS.
Put your rom back into the capsule for flashing may help, sometimes this does, other times no

Also, smaller image may be OK, but in case it’s not, I would make the edit the same exact size, that way you don’t need to adjust header info anywhere, fill with FF or 00, whichever it looks to be already using for free space within the file.

I assume this is the BIOS (9SKT9CA)? https://support.lenovo.com/us/en/downloads/ds029265
There is a change logo utility in the package, did you try that instead? This needs to be ran on 32bit system

6. Flash Customized Logo

logo.bat <logo file name>

The size of logo file after compression should be less than 8KB
(the size of compressed logo file is displayed on the screen during the processing).

The following example shows how to change the power-on logo.
logo.bat myfav.bmp


Also, since you’re bricking boards, did you order $2.50 flash programmer and $2.50 SOIC8 test clip cable yet? If not, get on it, no reason anyone should not own these since they are so cheap, especially if you are wanting to modify BIOS

Is this an Intel based board? If yes, does it have Intel ME? Check BIOS Main page, or driver downloads, do you see ME?

First off, thank you for the useful reply.

I have bricked boards by trying to force flash using AFUWINGUI to flash a modified .rom
For some reason AFUWINGUI will allow me to bypass secureflash, but it doesn’t flash. It acts like its going to flash, prompts me that the computer is going to restart, and then when it restarts the mobo is bricked. I will definitely order a flash programmer.


Yes the version you are linking to is the stock bios .cap image I am using. When you download the Flash UEFI BIOS (flash from OS) it will download a .exe that will unpackage the BIOS image which is a .cap as well as it gives you AFUWINx64 and their own programming tool called wflash2.

I have tried all sorts of ways to use the “change logo utility”, even by running the logo.bat on 32 bit OS. The compression routine seems to work just fine, but it doesn’t seem to write it the BIOS image file. I think it is failing to write to the .cap… maybe the tool was designed for .rom which I’ve noticed some lenovo bios update images are.

This is an Intel based board, and to my knowledge it has Intel ME. In device manager it says “Intel Management Engine Interface”. CPU is LGA1155 3rd gen intel.

I took your suggestion at adding the filler to the end of the modified “.raw” file (it was all 00’s). Now the files match the same in size exactly. I would have liked to try this, but another issue happened, its not allowing me to even flash the stock image .cap file. It is giving me the old “secure flash verification failed” error. No idea why it does this. In bios I have “secure boot” disabled, “configuration change detection” disabled, and “allow flashing BIOS to previous version” yes. But it just decides to not work anymore. I have about 8 of these units I’m playing with. When I get to this point I grab a new unit which has an old BIOS already installed, which lets me “try again for limited time”. Sure seems like a whole bunch of nonsense for such a seemingly simple thing.

Greatly appreciate the help

You’re welcome! Maybe incorrect AFUWINGUI for this board/BIOS, does that version work properly with stock BIOS, but then not mod BIOS? If yes, then you may need to feed it a encapsulated file instead of rom/bin.
Proper method to flash mod BIOS, with working AFU for whatever BIOS type, when it works is to flash the stock BIOS and then without rebooting flash the mod BIOS (And if you get size error, put BIOS region back into capsule and try again).
Open “CAP” BIOS in hex editor, open mod bios .rom/bin in hex editor (Copy), then go to CAP BIOS, go to location/address 1000h and paste the mod BIOS bin/rom, then save as new modbios.cap

The bricks you are getting may not be due to how it’s flashing or not properly flashing, it could simply be due to your edit is failing and breaking the BIOS, so you have to consider that too.
Upload one of your modified BIOS and let me look and see if it looks OK.

On the logo app, give it the rom extracted from capsule then and see if that works to update the logo image. Secure boot, etc settings in BIOS have nothing to do with BIOS flash security.

Great, since this has Intel ME, you can easily dump and modify the BIOS region, which is all you need to do here anyway! You may need to do a setting unlock via grub / setup_var, but I’ll show you how to do that and it’s easy.
Please check on BIOS main page and see if you see ME FW version listed. If not, download HWINFO64 and on the large window on left side expand motherboard section, then find ME inside there and look for the ME Firmware version.
Once you find ME FW version, go to this thread and in section “C” download the matching ME System Tools package (ie ME FW = 9.0-9.1 then get V9.1, if ME 10.2, get V10 etc)
Intel Management Engine: Drivers, Firmware & System Tools

Inside you will find Flash Programming Tool folder, inside that a Windows or Win/Win32 folder, select that Win folder, hold shift and press right click, choose open command window here (not power shell)
Then at the command prompt run the following command >> FPTw.exe -bios -d biosreg.bin

Edit that, then flash it back >> FPTw.exe -bios -f modbiosreg.bin

If you get an error, please stop, FPT can brick board easy. Stop and show me image of command entered and error given if you get an error (Sometimes region may be protected, so programmer may be needed, or some other way to flash in a BIOS with lock removed first, before other mod BIOS flash in easily)
DO NOT use FPT with CAP BIOS, only use it with file created from above command, with above commands, nothing else unless I mention other stuff here later (don’t try this or that because you read it in another thread)

Once you have programmer you can fix all these boards you bricked, so order now!
You can get cheap on ebay, but long 3-5 week delivery, or pay more and purchase from local seller or faster shipper on ebay, or you can also find in stores like Amazon or Newegg, places like that, usually shipped much quicker but at a much higher price too.

Secure flash failing with stock BIOS doesn’t sound correct, download the package again, maybe you’ve edited or mixed up the stock BIOS with one that’s been modified

Thanks!

First I checked HWinfo64 and ME version says "8.1"

So I downloaded version 8 tools, since I didn’t see a specific download for 8.1

I performed FPTw.exe -bios -d biosreg.bin

Edited biosreg.bin in UEFITool to replace the splash screen logos with the properly sized replacement ones I created

Saved the modified bios to modbiosreg.bin

I performed FPTw.exe -bios -f modbiosreg.bin and I got a write protection error. Images are attached to show where I’m at, I tried to upload the stock and modded bios here, but I got an error (filetype not allowed). Seems like you’ve helped me on the right track, but I have another hurdle to overcome. I’m ready to tackle the next hurdle if you are able to provide the advice! Thank you!

syssummary.png

moboMEsummary.png

failedwriteprotection.png

@odelay17 - If you want to attach files here, put I a zip or rar, or you can upload to some other place and give me a download link (zip or rar preferred there too)
The error you showed would require another mod and flash using some other method (or programming). Or flash using some working version/method of AFU, or using various tricks/methods can sometimes get around it too (Other times, only way is via programmer and SOIC8 test clip)
There is a trick you can try, BIOS bug, to see if it’s still left in your BIOS. Put the system to sleep (S3) for one minute, wake it up and try FPT again, see if you get same error (If you do, manufacturer has fixed this bug already in your BIOS)

Other thing to check to be sure if before using FPT is if you can see BIOS setting “Secure Boot” set to disabled and “Allow Flashing BIOS to a Previous Version” set to enabled. I see both in your BIOS, but unsure if they are visible to you.
These may or may not help with the FPT error, but best to set first just in case. Then test the above sleep bug

If all fails still, you can retry same stuff, but with FPTw64 instead, usually doesn’t matter, but sometimes might work when other one doesn’t (rare)

Also, some older BIOS may allow FPT flash without error 280, so you can first download to some older BIOS after changing above setting (either in BIOS or if not visible then use grub and setup_var)
Then once on older BIOS, FPT flash your new BIOS region again.

The sleep method worked!!!

Haha, my mind is blown. However, i only tried on a pc using an old version of bios (because i wasn’t hopeful it would work). So i may still be out of luck for this method when i try on the updated bios.

But more importantly, my moded bios worked too! The splash screen showed up correctly! That is a huge win for me! Now I only need to find a reliable method, and most likely just a programmer since i want to unbrick the motherboards i bricked.

I donated to this site, do you have a personal donation link? Your prompt advice has been highly valuable to me. You don’t find support like this very often.

Sleep method works on new bios too! Very happy. I will come back and summarize the steps so we can mark solved and hopefully will help others

[SOLVED]

Summary of steps

Determine Intel Management Engine Version (HWinfo64 works well)

Download the matching Intel ME tools (section C):
Intel Management Engine: Drivers, Firmware & System Tools

Run the Flash Programming Tool (FPTw.exe or FPTw64.exe) inside the Flash Programming Tool folder, inside that a Windows or Win/Win32 folder, select that Win folder, hold shift and press right click, choose open command window here (not power shell). If no option to run cmd, run cmd as administrator and navigate to the directory (cd C:*directory tree containing FPTw.exe)

At the command prompt run the following command >> FPTw.exe -bios -d biosreg.bin (this will dump current bios image)

Import biosreg.bin into UEFItool (must be an older version, the newer version disables the “replace body” function.

To modify the splash screen search for GUID address that contains the splash screen images. For Lenovo M82, these images are stored as .raw files in the following GUID addresses:
4D3D82AE-2C3A-4C14-99BD-D59644EF6BC0
6C9013D0-4059-4723-AF2A-05E63FFECF19
83762026-D2AC-4A48-999C-D392C851A6C6

Extract the .raw files (right click, extract body in UEFItool) and save them.

Open the .raw in paint and edit the image. Make the image fit in the existing space/resolution. Save your new file and make sure it saves as a .raw file.

You may notice that the original .raw file and your edited .raw file are two different sizes (in my case my edited .raw file was smaller).

Using a hex editor, you can add empty space to your edited .raw file as "00"s. An easy way to do this is open up both the original and modded .raw files in a hex editor. Copy any addition "00"s from the original .raw and add them to the edited .raw to make them the same size. Save and verify the edited files are the same size as the original. (I’m not 100% sure this step is necessary, but i recommend it).

In UEFItool, navigate to the GUIDs and replace the .raw files with the edited ones (right click, replace body and select your edited files)

Save your modified bios modbiosreg.bin

Attempt to flash the modified bios using FPT by following command
>>FPTw.exe -bios -f modbiosreg.bin

If write protected, the bypass trick works for the Lenovo M82. Put the computer to sleep (sleep state 3) for 1 minute. Wake the computer and immediately flash in FPT with the same command:
>>FPTw.exe -bios -f modbiosreg.bin

The flash should suceed

@odelay17 - You’re very welcome and it’s great this trick worked for you! I often forget to have people try, since it’s usually fixed in many BIOS now.

Thanks for your donation as well, it will help keep the site going strong for others to get help in the future! Sorry, no I don’t have any personal donation setup, but I appreciate the gesture and am happy to see you happy and issue is solved

I also appreciate you taking the time to come back and write out method for your mod and flash etc. Thanks from everyone reading and using your method in the future

For UEFITool, you can specify version 25 or 26 etc, those are new too, it’s the NE Alpha version that can’t be used for modifications, this is more specialized and directed at inspecting BIOS, extracting etc.

If you don’t keep image size same in there, you will need to correct header for each module, which may or may not get done on rebuild by UEFITool
You’d have to test not doing it, and changing image/file size, then insert, save, re-open with NE version and check to see if header size changed or not either by info on the right or right click view by hex (not body, so you can see header info)

I’m back hoping to learn some more!

I purchased my CH341a programmer and SOIC8 clip. It seems clear that the clip it came with is not very good and I don’t think I will get it to work so I will probably have to buy a better quality Pomona clip.

However, a major issue will be identifying the BIOS chip. There are several 8 pin chips on the board, but I am fairly certain it is one of the Winbond chips.

The three Winbond chips present are:
25Q64FVSIG
25Q16CVSIG
25Q808VSIG

I’ve managed to pull some data using CH341 programmer software, but it seemed to be garbage. Most of the times it read nothing… which I assume means I’m not making a connection. Since its so hard to even make a connection, I really want to make sure I’m focusing on the correct chip for the BIOS.

I’m wondering if there is any recommended software to use with the CH341a programmer. I did not see the exact chip part numbers listed in the software I was using. Also wondering what the recommended way to flash good data to the chip. Extract .rom from a good computer? Save as a .bin and flash? I’ve read a few different tutorials, but haven’t really succeeded so far.

  1. BIOS flash memories are always located near the battery.
    1. Try to correct/confirm the model number with Google, e.g. 25Q808V should be 25Q80BVSIG, then find some datasheets by the way.
    2. Take a look into those datasheets and confirm the density, e.g. 25Q64FV is a 64M bit(8M Bytes) memory.
    3. Try to find some BIOS file for your motherboard, then it’s easy to find out the very chip by cross-referencing the size of file and memory.

    Make sure you set up a connection with firm pin contact carefully, this could need some experience, then try to update your software to the latest version, AFAIK, CH341A’s native software support 25Q16CV since v1.32, support 25Q64FV and 25Q80BW since v1.29, so the 25Q80BV is not a problem since it’s just a matter of voltage(BW means 1.8v and BV means 3.3v), and of course the CH341A is compatible with other software.

    The default operation of flashing in CH341A’s native software is “Auto”, it combines a set of procedure by default.

    I’d suggest you purchase some retail flash memory chips so that you can learn how to clip those chips with firm contact, then you’ll see how to avoid damaging the clip and what’s it looks like when clipping onboard chips, also, clipping a standalone chip is the best way for novice to successfully repeating flash.

@odelay17 - The cheap clips look and work fine for me and many others I’ve seen use them (all the time), but yes they are cheaper than Pomona clips. If you get a Pomona clip you need to order a set of M/F DuPont cables, long enough for your intended usage.
Larger sets are cheaper, I think I purchased 120pcs 20cm for around $2.80 not long ago Came as 1x Male to Male (40 count) + 1x Male to Female (40) + 1x Female to Female (40)
You can get less cheaper, but you never know how many you might want, and getting a mixed set at 20CM this seemed like best deal. Let me know if you want ebay link

Dump all chips, send me the contents and I’ll tell you which are which. Probably 25Q64FVSIG = BIOS / 25Q808VSIG = EC / 25Q16CVSIG = ME/FD/Part of BIOS etc, hard to know without checking.

When CH341A is not making connection you will get “Not Detected” however, you may bump the cable loose if you move things while doing the dump, keep it as still as possible.
And yes, some dumps may look like garbage to you, if they need to be combined with other dumps (Sometimes BIOS is split between two chips, not at an even point and neither will open in BIOS tools until merged

Here is all the main software versions for CH341A - use 1.30 and choose 25Q64BV for this FV chip, already know this works and FV doesn’t. The others should be there too, but you may need to try other versions for the other chips if you get all FF or 00 dumps.
http://s000.tinyupload.com/index.php?fil…257455007472602

Good data to chip, program back in once you are sure it’s correct and good BIOS.

0. BIOS not always located near battery, good majority of the time yes but not always. Sometimes it’s near/between PCI/PCIE slots and battery over near SB/SATA, sometimes BIOS under memory slots above NB, other times can be near SATA and battery by PCI/PCIE slots, it’s all random I think.
1. https://www.winbond.com/resource-files/w…%2007182017.pdf
https://cdn-shop.adafruit.com/datasheets/W25Q80BV.pdf
https://www.winbond.com/resource-files/da00-w25q16cvf1.pdf

2 . 128 megabit = 16 megabyte (MB) / 64 megabit = 8 megabyte (MB) / 32 megabit = 4 megabyte (MB) / 8 megabit = 1 megabyte (MB)
3. Unsure what you’re doing there

Do not write BIOS you find online, or even download from the manufacturer to your chip without doing a few things first. Before you write anything, make sure your backups and valid and proper contents.
Two, with most BIOS you are going to need to put in your board specific details before programming in if it’s not a dump from your board, this involves NVRAM, VSS, serial, UUID, LAN MAC ID etc.
Three, make sure again before you write, that you have a confirmed proper backup of that chips contents, have someone check if you are not sure.
Writing stock/Downloaded BIOS from manufacturer to board is rarely ideal, usually incomplete NVRAM or missing an entire NVRAM volume, and all board specific details will be lost if you do not do as mentioned, with either your backup or some other boards dump and you change out it’s details with your actual details.
I view that kind of write of stock BIOS and a last ditch effort, only to be done in rare cases when you want to try and revive something fast rather than properly. Sometimes stock BIOS will get you running, but all of above will apply.
Never write a .CAP BIOS to board with programmer, nor any BIOS that says “Encapsulated” when you open it with UEFITool - BIOS needs extracted from these before you write to chip.

On CH341A Auto, uncheck erase and blank, do those operations manually so no mistaken erase happens. I do erase manually, blank check manually, then open BIOS and hit auto that has only write/verify checked.

@simhfc - sorry for some of the above comments, I thought both replies there were from odelay17 and I was answering them as if they were his additional posed questions I wrote out too much to erase, hopefully it will help someone in the future

@Lost_N_BIOS
Nah, please don’t be sorry, some of those content also increased my experience, so it IS helpful, me included. :slight_smile:

I hate to ask right away, but would greatly appreciate a point into the right direction.

I am trying to recover bios that I have already bricked (at least I assume I did. I tried flashing and then was not able to boot after a flash).

So I have multiples of these machines. I can could extract a backup from any other machine.

However, I understand what you are saying about needing to load the board specific details in, but 1) how do I know all details I need and 2) how are they read from the board to be recovered?

As always, greatly appreciate the help.

@odelay17 - if you have an original dump from the machine you bricked that’s great, send it over in it’s own folder along with all details you can gather from that machine - on stickers on back, inside it’s case, on the motherboard itself etc.
Be sure to check sides of 24 pin, top/bottom sides of PCI/PCIE Slots, and back of board too. Also, if memory is laid down like laptops systems, be sure to look between and under it too.
That way, I can locate it’s info in the dumped BIOS if you have it, if not then it will be needed to insert into a new BIOS and other good working system dump/info can be used to find proper locations.

If you do not have a “before” dump from this system, it’s OK. Send all this info (Stickers, or serial, UUID, LAN MAC ID etc) from a known working system, this can be gathered from the stickers/casing as mentioned, or obtained from within windows too if you want.
Just need to have a good known working BIOS and all of it’s exact details, so I can locate all the locations in BIOS this info goes. Then use that to make a new BIOS for the bricked system, with it’s details from stickers.

You can get these details in windows from programs like HWINFO64 or AIDA64, for UUID, serial. For LAN you can get from command prompt >> ipconfig /all
YOu can also get lots of info this way via command line >>
wmic csproduct get name,identifyingnumber,uuid
wmic baseboard get serialnumber,product,Manufacturer,version
wmic bios get name,serialnumber,version

Hello,
Does CH341A supports 25Q80BW? Thanks

@roots
Yes

dd.jpg