Recover BIOS on a Lenovo 330S-15ARR Laptop

Update: See bottom of post, I managed to get the laptop working again after a lot of failed attempts.

I have a Lenovo 330S-15ARR with a corrupt BIOS after what I assume was a Windows update since it was never manually updated. The laptop powers on (fans spinning) but screen stays black, I have tried all the usual recovery methods but nothing is working.
The laptop has a Winbond 25Q64FWSIQ BIOS chip.

I am now trying to find a clean BIOS that I can flash to the laptop. I purchased a CH341A Programmer and it appears to have read the current non-working BIOS off the laptop OK.

I found some threads here which potentially had bios files that could be flashed, but all links are now dead. So I extracted the bios from the .exe downloaded from Lenovos website here:
using innoextract. I ended up with a .cap file which was larger than original BIOS, so I used this guide:
to strip out the extra data at the end of the BIOS. I couldn’t find “BIOS” region nor “Padding” (5:15 in the video) when opening the original BIOS in UEFITool, however I used the same method to remove extra data at the end to remove extra data at the front instead, by finding a few similar hex values and comparing them.

The file size of this modified BIOS appears to be correct now, but I am unsure if I need to do something else, or if this BIOS is ready to be flashed?


The key point here is: Do not flash using CH341A-1.2-programmer-software (CH341A_C.exe) in Windows, because it for whatever reason does not work.

In case anyone else stumbles upon this post in the future.
1. Make sure you are using a 1.8V adapter, you can find them on amazon/ebay for a few dollars by searching for “SPI 1.8V” or just “1.8V adapter” - I do not know if you 100% must use one, however it is a 1.8V chip so it is the correct thing to use and it did work for me.
2. The clip that comes with the CH341A kit is completely useless and won’t clip on after about 3 uses since the plastic tips get worn down, I strongly suggest always reading the chip 2 times at least and comparing the files in HxD to make sure they are the same to ensure you have good connectivity. I have managed to read the clip but ended up with corrupt data once - no errors were shown in the program software indicating something went wrong, so be careful.
3. Do not attempt to flash in Windows (you can read using Windows, just don’t flash), I tried using CH341A-1.29 and IT DOES NOT WORK. You can compare the flashed BIOS after reading it again with what you are attempting to write to confirm that it does not work.
Instead you must use Linux, I for example used Ubuntu. I also disconnected the internal main battery + CMOS battery before attaching anything to the BIOS chip.
5. Install Ubuntu on a spare hard drive/SSD and install flashrom instead, there is a very good and easy to follow guide available on this forum here:
6. Put the BIOS you want to flash in the same directory as the .bios file you just created by reading the chip (backup).
7. The BIOS I ended up flashing in the end is available here in post #2, it’s the 30WW version of the BIOS (38WW is the latest one at time of posting). If this link is dead PM me and I will share it with you. You need an account (free) to download the file.
8. After flashing the BIOS using flashrom under Linux make sure it does not throw any errors, flashrom automatically verifies the flash for you.
9. After turning on the laptop, go to Lenovos download page and download + install the latest BIOS (38WW at time of writing).
10. After BIOS has been updated successfully, run all Windows updates.
11. There is something called “BIOS Back Flash” in BIOS settings, it might be a good idea to enable this should the BIOS become corrupted in the future, although I have 0 experience using the feature.

Unique information will be missing from BIOS, unless you can transfer them from your original BIOS yourself or ask someone else to do it for you. I personally don’t care.

I had issues shutting down the laptop after all this, after pressing shut down in Windows screen would just go black and fans continue spinning indefinitely until the power button is held down to cut the power.

I did the following to fix it:
1. Go here:
and install
a) latest GPU driver
b) Latest power management software
2. In Windows I disabled “Turn on fast startup (recommended)” under “Control Panel - Hardware and Sound - Power Options - System Settings”.