This guide should work with any laptop model that has a K series/unlocked CPU as an optional upgrade. The following will work (H, HK, K) Untested (T, P, U) Doubtful any 12th gen or newer would work
If you are able to successfully unlock voltage control please make a pull request here adding your devices series/model to this list.
This guide walks through the process of re-enabling voltage control on Dell/Lenovo laptops. Voltage control was 'removed' to prevent the plundervolt vulnerability (CVE-2019-11157). Even though Dell took way voltage control from the user, the exploit can still be taken advantage of because the variable controlling it was not made read only. This guide goes over rewriting the variable to restore the ability to undervolt/overvolt your CPU.
Modifying the incorrect EFI offset could brick your computer. Please do some research and make sure you have recovery methods.
There is an automated script below...
Download links are alongside the required items
list. A PowerShell script has been included to setup everything.
The below commands require PowerShell 7, otherwise you can manually download the files.
The following script will setup everything for you, just execute it in PowerShell
mkdir C:\Users\$Env:UserName\Downloads\undervolting-tools;
Set-location C:\Users\$Env:UserName\Downloads\undervolting-tools;
## Download UEFI Tool, req: PS 7
[System.IO.Compression.ZipFile]::ExtractToDirectory([System.IO.MemoryStream]::new((Invoke-WebRequest -Uri "https://github.com/LongSoft/UEFITool/releases/download/A68/UEFITool_NE_A68_win32.zip").Content), $PWD);
## Modded grub shell
curl -LO https://github.com/datasone/grub-mod-setup_var/releases/download/1.1/modGRUBShell.efi;
## Bios utils
curl -L https://github.com/platomav/BIOSUtilities/archive/refs/heads/main.zip --output - | tar -xf - -C .;
## IRFE, req: PS 7
[System.IO.Compression.ZipFile]::ExtractToDirectory([System.IO.MemoryStream]::new((Invoke-WebRequest -Uri "https://github.com/LongSoft/Universal-IFR-Extractor/releases/download/v0.3.6/IRFExtractor_0.3.6_win.zip").Content), $PWD);
## Install deps for IRFE, req: winget
winget install -e --id Microsoft.VCRedist.2013.x86;
bios_extract_dir
BIOSUtilities
Error: This is not a supported input!
go to Step 1. Alt## using ../ as we are inside the folder and the extract dir should have been created in the parent folder
## it is expected that you have cd into the folder containing the bios utilities
## -i specifies the input folder
python .\dell_PFS_Extract.py -i ../bios_extract_dir
extract
folder will be created in the input (-i) folderSystem BIOS
N40ET46W
.FL1
, this is your bin file
UEFITool
to open any file typeUEFITool
click file, open new image file. Navigate to the extract folder, open the .bin
file mentioned previously.Text
tabOverclocking Lock
Setup/PE32
PE32 image section
highlighted
Extract as is
..
Section_PE32_image_Setup.sct
Extract
Section_PE32_image_Setup IFR.txt
Section_PE32_image_Setup IFR.txt
Overclocking Lock
Overclocking ... VarStoreInfo (VarOffset/VarName): 0x789
Write down the exact numbers/letters of the offset
0x789
FAT32
partitionEFI
folder
EFI
modGRUBShell.efi
to bootx64.efi
BOOT
If you enter the incorrect offset you could brick your system. Double check!
offset
you got in Step 3.5' 0x00"setup_var_3 0x789 0x00