Title updated for searchability
My daughters Lenovo Flex 5-14ARE05 decided to do a BIOS update during Windows “quiet hours”, i.e. midnight. The Lenovo BIOS update process beeps loudly and it woke her up. She didn’t know what it was and forced a shutdown so it wouldn’t wake her roommate.
Anyway, I dove head first into the world of BIOS programming and ordered a garbage CH341A programmer from Amazon. After fixing the 1.8V adapter that had a bad solder connection on the vreg causing it to sporadically put out 2.8V and doing the 3.3V fix on the programmer (did I need to?), I got it all working.
The BIOS chip is a GD25LB128D and I successfully programmed it using AsProgrammer with GD25LQ128C_1.8V selected. Managed to extract a usable .bin file from the .cap BIOS using UEFITool. Should have seen the smile on my face when the laptop booted, and then I entered the BIOS and that smile quickly went away when I noticed the SN, UUID, etc. were all wiped out.
I’m hoping someone can take my corrupted original backup and copy the relevant device info into a clean BIOS. I will gladly buy that person dinner.
Title updated for searchability
Wow, I just managed to do this myself. I’m a complete idiot when it comes to this stuff, but I just got really lucky. I went from never touching a programmer before to successfully modding and flashing a BIOS in a single day.
I used HexComp2 to compared the corrupted BIOS to the new one. I just used my intuition and cut and pasted two areas that looked important. One started with NVR (non-volatile region?) and the other had the serial number and other info. Both those areas were blank in the new BIOS.
My daughter is going to be thrilled.
Good work Empty NVRAM is normally built up automatically again. Might help to look at the structur in UEFIToolNE, areas are more easy to identify.
Are you saying I just needed the small section with the serial number, etc? It was only 281 bytes.
I just experience the same problem but I let it beep for a long time before shutting it down and now it won’t turn on.
I would be grateful if you can let me know how you fixed it, i have been frantically searching the internet for clues on how to fix it.
I can’t send it back to Lenovo because I am studying overseas.
You need to buy a programmer first. I bought this one on Amazon because it had one day delivery, but the state it came in was not usable… https://www.amazon.com/gp/product/B07YFPJQ5W. I would see what similar CH341A programmer is available in your area. It needs to have a 1.8V adapter and SOIC clip.
I’m horrible at writing guides, but I’ll give it a go…
1) Install the CH341A drivers and make sure the device is fully recognized in device manager
2) Unplug the programmer USB from the PC and put the SOIC clip on the BIOS IC paying attention to where PIN1 is (battery should be disconnected at this point).
3) Open AsProgrammer 1.4.0, then click “Hardware” and select CH341a
4) Click IC → SPI → GigaDevice → GD25LQ128C_1.8V
5) Plug the programmer into the PC and then click “Read IC”, and after that is finished click “Verify IC”, making sure there were no errors
6) Click “Save file” and save as a .bin (NO NOT LOSE THIS FILE, SAVE ANOTHER COPY OF IT AS AN ADDITIONAL BACKUP)
7) This step requires taking the .bin you just read from the IC and copying certain info from it in a hex editor and pasting it in a clean BIOS.bin file extracted from the original .cap BIOS format. I would rather do this for you instead of trying to explain how. I’ll PM you my email
8) Click “Erase IC” and when that is done click "Blank check"
9) Click “Open file” and select the modified .bin file, click “Programm IC”, and when that is done click "Verify IC"
10) Unplug programmer USB from PC and then disconnect the SOIC clip
11) Reconnect battery and boot
EDIT for step 7 details: You need to use innoextract to get the .cap BIOS file from the installer, then in UEFITool you need to do “extract body” on 6C60EE00-C316-4C95-A684-CDC7E7033311 and save as .bin. Then you need to use a hex editor to copy/pase a couple regions from the BIOS that was read to the clean extraced .bin. The regions I copied were 21000-37D8F and B21000-B21280. The second region has the serial number and such, that was obvious. The first region just looked important, a total guess. Not sure if it’s really needed.
Like I said, this was my first time doing any of this, so if someone here wants to chime in and correct something in my instructions, please feel free to do so.
I cant seem to run innoextract. is there any way you can send me the extracted bios file from the cap? email@example.com I have been trying to get it flashed with other versions that i found online but it still does the same thing "caps light on and escape light on"
Just wanna thank you, got my laptop back up and running by following your comment!
You have to run innoextract in command prompt,
.<innoextract executable path>
well I got it extracted and copied the sections, saved flashed it in and it still does the same thing? This was my brother laptop and he robbed the m.2 hard drive from it before I had gotten to it. Is it possible that it wont boot even into bios without having the hard drive installed?
Maybe the test clip isn’t making good contact? I had to re-seat mine a few times, when it wasn’t making good contact it was just reading random data
Make sure the second region has actual data, “lenovo” should be in there somewhere
I’d think it’d still boot without a drive, when I first booted mine after flashing, my ssd was totally blank, so it threw me into a blue screen that let me get into the bios by pressing the escape key
You should have the exact same model and be on the same major bios version when copying the regions like that. This was a guide for this specific bios of this model.
Glad this was able to help someone else!
Did you erase and blank verify first before writing? If you did, try erasing again and write a non-modified BIOS file. If that works, then maybe something went wrong with your edit.
is anyone willing to look at my bios dump? I still cant get it to work
Yes, post it.
Thanks much for posting this. I am in the same situation as you were.
I purchased the CH341a programmer. and i found all the necessary drivers/files/apps.
I am fairly certain something is seriously wrong since when i read the BIOS IC, it was all FFFFFFF.
I saved it anyway, and then erased the IC.
Regardless, i am trying to write the new bios.bin and now i encounter an error that BIOS.BIN (17350240) is larger than the IC size (16777216)
Any ideas? IT would be a huge help
EDIT : I found a newer version, Asprogrammer 184.108.40.206. it has the BIOS chip in the IC dropdowns, macronix ,MX25U12873F_1.8V
but still the size discrepancy is an issue
EDIT2 : Somehow i got my laptop to boot. I am missing the key information in the bios since i wiped it, i am not sure the consequences of that. but in the meantime my laptop has a screen again!
Read with 1.8V adapter? File may have capsule, no link to file or model? Check structure with UEFIToolNE.
I am using the 1.8v adapter. Whether correctly or not is the question, i am a noob at this and never did i imagine it would get to this.
I found an old bios file (the first?) that is 13,421 KB so i am trying that now. and crossing my fingers.
it wrote successfully. whether the laptop can boot is yet to be seen.
here is my backed up bios file. https://drive.google.com/file/d/1ejAjpso…iew?usp=sharing
Oof… i would not have erased it without getting a clean read first. That happened to me when I was first trying to use CH341a Programmer to read it, which was why I ended up using AsProgrammer.
Is your laptop model the Flex 5-14ARE05? PM me your serial number and I’ll at least add that to a BIOS file for you.