Yesterday, 03:45 AM
Hello everyone, my goals with the BIOS mod is very simple. I just want to switch some UEFI variables to enable undervolting using Throttlestop on my i7-14700HX CPU. HP locks it even though it's an HX CPU.
The only modifications I made were switching the default value bits of 7 variables. CFG Lock, Overclocking Lock, Undervolt Protection, Overclocking Feature, BIOS Lock, RTC Memory Lock, FPRR, and FLL Overclock Mode Enable. I am not THAT interested in fancy things like showing hidden menus in the BIOS setup menu.
I did these modifications in the following way:
-First of all I extracted my full BIOS using a CH341a programmer and made sure that I got a good read and obtained backup.bin.
-Extracted SetupUtility.bin from backup.bin (16MB) using UEFITool.
-Extracted SetupUtility.txt from SetupUtility.bin using IFRExtractor.
-Modified the variables in the following way:
Consider CFG Lock as an example, from SetupUtility.txt its located on 0x186370 with {05 91 8F 03 90 03 87 01 03 00 43 00 10 10 00 01 00}
After this string of hex bits comes the Disabled and Enable strings which are {09 07 0D 00 00 00 00} and {09 07 0C 00 30 00 01} respectively.
The only modification I did was the following:
09 07 0D 00 **00** 00 00 -> 09 07 0D 00 **30** 00 00
09 07 0C 00 **30** 00 01 -> 09 07 0C 00 **00** 00 01
Which I think sets Disabled to be the default value of CFG Lock. Am I doing it correctly?
When I extract the SetupUtility.txt from the modified SetupUtility.bin it shows that "(default)"
is moved from the Enabled line to the Disabled line. Same thing was done for the other variables mentioned above.
Sadly after I flashed the modified BIOS, on boot, the laptop gave an error saying "BIOS is corrupted, recovery process is starting soon" and it recovered the original BIOS.
Do you think a checksum validation bypass is necessary, is it something other than a checksum?
Also I have tried flashing the original BIOS which I extracted and it did not give a "BIOS is corrupted, recovery process is starting soon" error. So I am not so worried about bricking the laptop I think.
I linked the unmodified BIOS and the modified BIOS as well.
original BIOS: https://www.mediafire.com/file/l2gtkqosw...p.bin/file
modified BIOS: https://www.mediafire.com/file/j87xzibbk...d.bin/file
Please let me know what Im doing wrong or if there is a way to do this correctly at all. Thank you for this amazing forum, literally 1 month ago I knew almost nothing about BIOS modding and thought that UEFI variable editing was the craziest thing xD
Also side note: The reason I went for a BIOS mod to make these simple changes is because all of the relevant UEFI variables are write-protected and I was not able to edit them with setup_var, RU.efi, or H2OUVE -sv vars.txt. So this was my last resort I think.
The only modifications I made were switching the default value bits of 7 variables. CFG Lock, Overclocking Lock, Undervolt Protection, Overclocking Feature, BIOS Lock, RTC Memory Lock, FPRR, and FLL Overclock Mode Enable. I am not THAT interested in fancy things like showing hidden menus in the BIOS setup menu.
I did these modifications in the following way:
-First of all I extracted my full BIOS using a CH341a programmer and made sure that I got a good read and obtained backup.bin.
-Extracted SetupUtility.bin from backup.bin (16MB) using UEFITool.
-Extracted SetupUtility.txt from SetupUtility.bin using IFRExtractor.
-Modified the variables in the following way:
Consider CFG Lock as an example, from SetupUtility.txt its located on 0x186370 with {05 91 8F 03 90 03 87 01 03 00 43 00 10 10 00 01 00}
After this string of hex bits comes the Disabled and Enable strings which are {09 07 0D 00 00 00 00} and {09 07 0C 00 30 00 01} respectively.
The only modification I did was the following:
09 07 0D 00 **00** 00 00 -> 09 07 0D 00 **30** 00 00
09 07 0C 00 **30** 00 01 -> 09 07 0C 00 **00** 00 01
Which I think sets Disabled to be the default value of CFG Lock. Am I doing it correctly?
When I extract the SetupUtility.txt from the modified SetupUtility.bin it shows that "(default)"
is moved from the Enabled line to the Disabled line. Same thing was done for the other variables mentioned above.
Sadly after I flashed the modified BIOS, on boot, the laptop gave an error saying "BIOS is corrupted, recovery process is starting soon" and it recovered the original BIOS.
Do you think a checksum validation bypass is necessary, is it something other than a checksum?
Also I have tried flashing the original BIOS which I extracted and it did not give a "BIOS is corrupted, recovery process is starting soon" error. So I am not so worried about bricking the laptop I think.
I linked the unmodified BIOS and the modified BIOS as well.
original BIOS: https://www.mediafire.com/file/l2gtkqosw...p.bin/file
modified BIOS: https://www.mediafire.com/file/j87xzibbk...d.bin/file
Please let me know what Im doing wrong or if there is a way to do this correctly at all. Thank you for this amazing forum, literally 1 month ago I knew almost nothing about BIOS modding and thought that UEFI variable editing was the craziest thing xD
Also side note: The reason I went for a BIOS mod to make these simple changes is because all of the relevant UEFI variables are write-protected and I was not able to edit them with setup_var, RU.efi, or H2OUVE -sv vars.txt. So this was my last resort I think.