Hi
I was wondering if anyone has a copy of Donovan’s EFI Variable Dumper since he made the link in his blog private :(.
I need the tool to edit a bios (actually just one setting) for my laptop.
many thanks in advance and best regards.
@Lost_N_BIOS os Thanks for your replay but this isn’t the tool I’m looking for Donovan6000 made two tools “Universal IFR extractor” and “EFI Variable Dumper” I’m looking for the latter of the two. a description of the tool can be found in his blog which he made private but can be accessed through the internet archive here
@Abdulla060 - Sorry, I see what you mean now! I thought that was the original name of the tool early on during it’s beta/creation phases, then later renamed to Universal IFR dumper, scrolling through that output I see it’s not exactly same.
However, I still believe this to be the case, see this page, at top he says it’s old new, succeeded by Universal IFR Dumper
[quote=donovan6000]This program is now outdated. I recommend you download it’s successor, Universal IFR Extractor, which supports extracting the IFR from both EFI and UEFI![/quote]
https://web.archive.org/web/201609161546…ifr-dumper.html
Which leads to
https://web.archive.org/web/201609162124…-extractor.html
@Lost_N_BIO I needed the tool to find the variable offset in the bios file. However now I think I have found a way to change the variable directly using the EFI shell instead of changing the bios and flashing it which “hopefully” be a safer approach. my new problem now is that I can’t boot into the EFI shell for some reason xD and need to start debugging that.
@Abdulla060 - Yes, you can use Universal IFR extractor to get variables from BIOS setup module (and others) and change via grub using Setup_var, here’s a guide I wrote for changing “BIOS Lock” setting, but will help you figure out how it all works if you are not sure
[GUIDE] Grub Fix Intel FPT Error 368 - BIOS Lock Asus/Other Mod BIOS Flash
Alt boot to grub when no boot to EFI on exit page - [Help needed] Hidden Advanced menu Bios HP Z1 J52_0274.BIN (2) << Maybe you need to try this method, if still no luck link me to BIOS and I will see if maybe you need to name file a certain thing.
Also, if you need any help finding something in BIOS, let me know maybe I can help
@Lost_N_BIOS I was actually reading this amazing post the other day and now I’ve noticed that it is actually written by you.
I did try this method but setup_var only give me “Looking for setup variable …” then back to grub>. it didn’t get stuck or give any error but the setting didn’t change either. also im using the Clover bootloader with the EFI shell from here https://github.com/the-darkvoid/XPS9360-macOS/issues/30 because I couldn’t boot the shell alone from the USB drive
edit1: I also tried setup_var2 with the same result
edit2: I forgot to mention that I also used the shell in your post and again the same results. also, my bios is InsydeH2O 3.5 f.42 but i tried with multiple versions as well and all of them yielded the same thing.
@Abdulla060 - thanks! Probably you are not booting to the correct thing is the issue, DOS or Clover boot loader etc, none of that is needed, nor should be used. You should arrive at a black screen only with white text at top middle saying grub version info
If you do not have exit to shell/UEFI option on the exit page of your BIOS then you need to use that second method I linked above, lay out all the files in same manner as shown in those images on the USB Stick (format it first, to FAT32, do not make it bootable or anything like that after)
If you still have no luck, show me the grub screen you arrive at, so we can at least check if that is correct first or not. If it is correct, then this method may just not work for your BIOS, some BIOS it doesn’t work due to how BIOS and setup variables are constructed.
@Lost_N_BIOS grub - https://i.imgur.com/44F7j79.jpg and a dump of my bios https://ufile.io/g2sq4 in case you want to take a look at it.
The variable 0x1BA (according to IFR Extractor) should change the virtualization technology setting but as you can see nothing happens.
Edit1: Btw what I actually want to change is a setting called “After G3 On” which basically makes the laptop automatically turn on when you connect the power cord.
@Abdulla060 - thanks for image, yes that is correct grub to be using, just wanted to make sure you were not using Shell or RU (Many tend to this it’s same, and it’s not)
You may need to use those Setup_var2 or Setup_Var3 modified grubs instead, you said you tried the modified grub with Var2 command already, same thing or no luck?
Or did you mean you tried var2 command with regular grub? If regular, that wont work, you need that special modified grub to use, let me know if you need those links
Or, this could explain it, I see different variable for that setting that what you are trying to use
Setting: Virtualization Technology, Variable: 0x1BA[1] {05 09 BA 01 01 5E 00 5F 00}
Option: Enabled, Value: 0x1 {09 09 80 00 01 00 04 45 00}
Option: Disabled, Value: 0x0 {09 09 81 00 00 00 05 45 00}
I can make you mod BIOS with the “After G3 On” setting changed, what do you want it changed to, “Last State” or "S5"
Setting: After G3 On, Variable: 0x1F6[1] {05 09 F6 01 01 D2 02 D3 02}
Option: S0, Value: 0x0 {09 09 D4 02 00 00 01 00 00} << This is default value
Option: S5, Value: 0x1 {09 09 D5 02 01 00 00 00 00}
Option: Last State, Value: 0x2 {09 09 D6 02 02 00 00 00 00}
Do you need either of these changed too?
Setting: Board Capability, Variable: 0x20C[1] {05 09 0C 02 01 ED 04 EE 04}
Option: SUS_PWR_DN_ACK, Value: 0x0 {09 09 EF 04 00 00 01 00 00} << Default
Option: DeepSx, Value: 0x1 {09 09 F0 04 01 00 00 00 00}
Setting: DeepSx Power Policies, Variable: 0x1FF[1] {05 09 FF 01 01 D7 02 D8 02}
Option: Disable, Value: 0x0 {09 09 D9 02 00 00 01 00 00} << Default
Option: Enable In S5, Value: 0x1 {09 09 DA 02 01 00 00 00 00}
Option: Enable In S4-S5, Value: 0x3 {09 09 DB 02 03 00 00 00 00}
@Lost_N_Bios first yeah i did use var2 which you can actually see in the image and i didn’t use a modified grub. Please do send me the links to that. Also for the G3 option actually i want S0 state (which means that the machine is fully functional) but i did flash an unlocked bios before and i know for a fact that the default is S5 not S0.
But i had to remove that bios because if i change ANYTHING in the settings the laptop won’t boot anymore and i had to reset the CMOS to get it back to a working state
Typing Var2 and using the correct grub that allows Var2 usage is what I was asking about, normal grub does not work with Var2 or Var3, you need to use modified one. That’s what I mean, did you download the modified grub files that are made for Var2 and Var3 (Both different files)
So yes, sounds like you didn’t use the correct files for those commands, here is links
Var3 grub (in release tab) - https://github.com/datasone/grub-mod-setup_var
Var2 download/guide, I Russian - https://habr.com/en/post/190354/ >> Direct link to Var2 grub file from that blog >> http://brains.by/posts/bootx64.7z
I was also trying to point out to you in bold that you were maybe using incorrect variable on your example 0x1BA, correct one is 0x1BA[1] I would try again using normal grub first, with that variable instead, or the G3 variable 0x1F6[1], before trying the var2/var3 grubs, they may not be needed
BIOS used does not matter, and yes I understood you had to flash different BIOS back on. What BIOS did you mean, once you change setting it would fail?
With these grub changes, once you find correct method to change the settings, mod BIOS will not be needed, you will change setting directly via setup_var commands without needing a modified BIOS.
On BIOS, I meant I can also make you a modified BIOS, with the changes you want already done, if you tell me what you want set in the above settings I listed for you.
Maybe S5 was default in unlocked BIOS you tested, unsure, but S0 looks to be the default to me in the BIOS I looked in.
If you want to test BIOS I make, not unlocked for now, maybe I can do for you later and it will be better than the other you tested. Anyway, I can make you one with G3 set to S0
* Edit - on your “Unlocked” BIOS, could you see and adjust this G3 setting, or was it not visible? Who made the BIOS for you, someone at BIOS-mods?
@Lost_N_BIOS Alright I give up all 3 failed all with the same problem I tried setup_var, setup_var2, and setup_var_3 with 0x1BA and 0x1BA[1].
the bios modded bios I downloaded was in fact from bios-mods link: https://www.bios-mods.com/BIOS/index.php?dir=Insyde%2F (SP53128) which was the only one compatible with my board (0166c) when I flashed this one I was able to browse the advanced and power menus but if I change any setting and I mean ANYTHING and save then the laptop won’t boot and I get the flashing caps-lock code (two flashes = corrupted bios according to hp). in the advanced menu I could see that the G3 option is set to S5 which what it should be (because if they set it to S0 then all their laptops will startup as soon as you plug them into a power cord).
so now and as much as I hate to ask it but could you make me a modded bios, please just set the G3 option to “Last State” which will be a good middle ground.
here is a link to the original bios file https://ftp.hp.com/pub/softpaq/sp55001-55500/sp55451.exe
this is f.41-A, not the same one you have.
you need the file (0166CF41.bin)
also how exactly do you edit the bios? what software do you use?
and lastly, I want to say thank you very much for your kind help you are the first person that actually replied to any of my posts since i started working on this whole thing.
I see some BIOS 0x1BA[1] >> Means 0x1BA00 too, you can try that as well, in place of the [1]
Maybe what I see as “Default” I thought simply isn’t the one used, I’ll look through more settings and see if I can better spot what’s indicating default, since it appears to not be usual pattern.
Or it may be defaults are not specified there like usual, and that’s why all the setup_vars are failing too, and “Defaults” are saved only in NVRAM on this system?
If you want S0 set, and I can do that, we’ll do that, no need to set last state as a middle ground.
Have you ran H2OUVE before and able to get proper output? If not, lets try, and then yes I can make you an unlocked BIOS. I wonder why that BIOS didn’t work for you better from BIOS-mods, I think that guy usually makes good BIOS from what I see in the threads, but we can’t win them all I suppose
Please download all three versions of H2OUVE from here, and run the following commands from each of the versions and see if we can get any output files
https://github.com/mikebdp2/Insider_BIOS_Tools
H2OUVE.exe -gv vars.txt
H2OUVE.exe -gs -all Setup.txt
I have not used this tool in a while, so please forgive me if I have those commands backwards above, and try this instead if above does not give txt files
H2OUVE.exe vars.txt -gv
H2OUVE.exe Setup.txt -gs -all
I edit BIOS using many different software, it all depends on what I’m doing and what the BIOS is compatible with.
Once I make an unlocked BIOS for you I’ll let you know what all was used, so far I’ve only used UEFITool, IFR extractor and hex editor while talking to you about it, but I’m sure it’s compatible with other stuff probably (Whole time, I don’t even know what board/system )
You’re welcome, sorry no one else has tried to help! No replies even on BIOS-mods? Not sure if Camiloml is still around chatting with users there or not? If he is still replying, I wonder if he could tell you why this BIOS mod fails that way or if he knows how to correct it?
@Lost_N_BIOS
The output of each command: https://pastebin.com/FnhUFP8M
Var.txt: https://pastebin.com/wKcdY9JK
alright then do S0 and let’s try it
Thanks. That vars.txt shows it’s set to 00 as well. same as the setup IFR >> @ Setup >> 000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00
So we can’t change to S0 and write back vars.txt with H2OUVE This must be defaulkt setting as it appears, but then later changed to other value in NVRAM or other setup module is used
What is BIOS dump you sent me, F.14-red.rom? Do you want me to use that to unlock, or above linked sp55451.exe (0166CF41.bin)?
The f.14-red dump you sent, has untouched Setup Module (hex match) to the stock BIOS of sp53128 / 0166CF14.bin, so this dump is not from “unlocked” BIOS, only stock. Can you see “Advanced >> Chipset” Menu on this BIOS? If yes, I can just unhide G3 setting for you
I think the BIOS you want modified is not moddable? There is a moddable/notmoddable list here
https://www.bios-mods.com/forum/archive/…read-20767.html
Some can’t be decrypted, all are encrypted, and seems some are RSA signed later so can’t be modified
When you flashed in the mod by camiloml, did you first flash some other lower BIOS? If not, that may be why it’s failing for you, you need to find a thread where he posted that BIOS for someone to use, and see which stock BIOS he said to downgrade to first.
Ok in that case try this ftp://ftp.hp.com/pub/softpaq/sp53001-53500/sp53128.exe
This is same as f.14-red also forget about G3 settings try to enable wake on lan
Edit: yes i did flash a lower one in fact i flashed this one then flashed the modded version from Cameloml
@abdulla060 - The way mod BIOS like that usually work, you don’t flash same stock version then mod, you flash some older version before that one, then flash mod. You’ll have to find the post where he originally shared that BIOS to know which you need to flash, but I know from experience it’s not that same stock one, has to be older/previous.
That’s probably why Camiloml mod BIOS was failing for you and breaking as soon as you changed any setting, it was flashed incorrectly.
The one you are using now sp55451 (F.41) is newer than the one Camiloml modified, so if you meant you flashed that one first, then defiantly not the correct one to flash before 53128 (F.14) Mod.
It would be sp52812 (F.07), or sp52469 (F.06), or some other before those not shown on the page above, that you’d need to flash before flashing in the 53128 mod by Camiloml
Wake on LAN is disabled by default, so yes, we can enable that via setup mod BIOS, or by using H2OUVE.
Here’s how to do it using H2OUVE
At setup section near end of vars.txt you got
000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00
Change that line/4th byte ^^ To This >>
000001F0: 00 00 00 01 00 00 00 00 00 00 00 00 01 00 03 00
Then write back the edited vars.txt using this command from admin CMD Prompt
H2OUVE.exe -sv vars.txt
Then redump vars using this command, to verify it saved properly
H2OUVE.exe -gv vars2.txt
Once confirmed, reboot and then test wake on LAN
welp after all of this work and time I have finally managed to change the settings using this method but the settings didn’t do sh8 lol.
now I can change whatever I want but the things I want are unaffected even if I change the settings. Like Wake on Lan enable or disable it doesn’t work same for G3 settings. looks like I’m connecting an Arduino to the power button and call it a day.
Thank you very much for your kind help @Lost_N_BIOS without it I couldn’t reach this point.
And for the future reader if you want to do anything with the power button. Then just connect an Arduino to it and don’t take my route xD.
@Abdulla060 - Did you change the G3 setting like this
000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00
Change to
000001F0: 00 00 00 00 00 01 00 00 00 00 00 00 01 00 03 00 << Change to 01 for S5 or 02 for Last State
It may be like I mentioned a few times earlier, all these settings in IFR are not used, and actual applied settings are only in NVRAM instead.
I checked, and I see the same exact settings there, I think VARS.txt is NVRAM output here, and if changes not applied, then maybe I’m thinking backwards, NVRAM not used and changes can only be applied at the setup module instead
So yes, if you have programmer we can change your default setup module settings too and see if those get applied or not. Do you want me to send you BIOS with those changes in setup module?