[TOOL] Virtual Bios Mod without flashing

[UPDATE] 11 Aug 2020
- Added Intel eXtreme Tuning Utility enabler to use turbo boost to 4.5Ghz
- Added various overclock settings
- Please download latest version https://github.com/serdeliuk/VirtualBiosMod

[UPDATE] 01 Aug 2020
- Added an option to disable HDMI audio to fix missing audio card radom disappear during concurrent reboots on hackintosh.
- Cleaned UI interface

[UPDATE] 26 Jul 2020
- Fixed drawing menu under OpenCore

[UPDATE] 12 Jul 2020
- Added Clover or OpenCore integration support, basically if you pass “reboot” boot parameter to VirtualBiosMod when exit instead to return to parent (Clover) reboot, if no parameters passed to VirtualBiosMod run as usual
- You can add this lines for Clover in GUI > Custom > Entries
<dict>
<key>Disabled</key>
<false/>
<key>FullTitle</key>
<string>VirtualBiosMod</string>
<key>Hidden</key>
<false/>
<key>Ignore</key>
<false/>
<key>Path</key>
<string>\EFI\VirtualBiosMod\VirtualBiosMod.efi</string>
<key>Type</key>
<string>Linux</string>
<key>Arguments</key>
<string>reboot</string>
</dict>


[UPDATE] 6 Jul 2020
- I have released version 1.0.2 which does not have the blue screen anymore at startup, instead wait for 3 seconds to press any key
- Fixed a keypress loop issue

[UPDATE] 1 Jul 2020
- I have released the source code for this nice tool please see https://github.com/serdeliuk/VirtualBiosMod
- I have created a small Wiki, please see https://github.com/serdeliuk/VirtualBiosMod/wiki
- Created a new release 1.0.1 which corrected some bugs and reduced the boot timeout



[UPDATE] 29 Jun 2020
- I have released first functional version, please download from VirtualBiosMod
- You need to put this in Clover drivers folder, if you have OpenCore you can add a new boot entry in bios and select this this efi, or add the efi to OC
- This version can unlock your bios flash and disable nvidia card, if you have a compatible bios.
- If you don’t have a compatible bios and your bios is uefi please let me know.
- This version have a 8 seconds timeout which can be skipped pressing any key.

Hello,

I started to build a efi driver application which will be able to mod our BIOS without actually a flashing requirement.
This efi app is not related to Clover, OpenCore or to an Operating System, should work with any boot loader which is capable to load efi drivers.
It was tested with Clover and with a new boot entry from bios and point to the efi file.

The efi app can be downloaded from here https://github.com/serdeliuk/VirtualBiosMod

It was tested on Asus ROG STRIX G531GT and few others, right now i am collecting infos, if the app does not work with your UEFI BIOS and you want to please let me know and provide a bios snapshot or a link on the vendor website to download.

Best regards,

reserved for future usage

I have released first working version

I have released the source code for this nice tool for anyone who need to modify their own bios. Please see post #1
Also there is a small wiki on how to use this and few tools to find what you need.

I have released version 1.0.2

Can you explain a bit more in non-developer terms about how it is supposed to work? So far, my understanding is the following:

1 - You mod the Firmware image as usual
2 - Instead of flashing the Firmware image to the Flash EEPROM in the Motherboard, you drop it as a file in the ESP (EFI System Partition)
3 - You do UEFI Boot of your application
4 - Your application then loads the Firmware image, so you can enter a Virtual BIOS Setup corresponding to that image
5 - The Virtual BIOS Setup uses the modded Firmware image but writes to the RTC SRAM and/or Flash EEPROM NVRAM as usual, so if I made a Firmware image to unlock a few options that are already supported by the Firmware but flagged as hidden, I can use your Virtual BIOS Setup to write values to the RTC SRAM and/or Flash EEPROM NVRAM.
6 - The Motherboard Firmware during a normal boot, would then read these options and apply them without having to be directly replaced.

Is that correct? It reminds me to this: http://www.minuszerodegrees.net/5170/setup/5170_setup.htm
Basically, the original 1984 IBM PC/AT hadn’t an integrated BIOS Setup, IBM supplied a Diskettte with an application that did that job to change the RTC SRAM values. But they could also be changed with pretty much anything, like the built-in ROM BASIC. However, this required low level Byte editing.

Hi @Lost_N_BIOS @zir_blazer

With VirtualBiosMod you don’t need to flash the bios anymore,you don’t even need to mod the firmware, you install the VirtualBiosMod.efi in your prefered bootloader drivers folder or create a new boot entry to directly boot the VBM, then you will be presented as of this stage with two options,
1. to unlock the bios flash (as grub/shell.efi setup_var does) but only at a keypress to lock or unlock the bios
2. change video card from SG to IGFX to disable Nvidia on unsupported OSes (hackintosh)
Values are saved in CMOS as the bios interface does and are erasable by removing CMOS battery, so a reboot or a power cycle will not change them, however it is easy to remove the cmos battery for one minute instead to reflash the bios if something goes wrong.

So you can use VBM on original unmodded bioses directly.

Basically it replace the usual bios setup interface and a standard flashing is not required anymore.

Right now works on few models of similar family Asus ROG Strix G531*** probably G731*** too didn’t tested yet.

I will implement in the next stages a xml config file to add menu entries so anyone will be able to add their own variables in a text file just by exporting them with ifrextract and create menuentries


Best regards,


Marc

P.S.
It is pretty much as the diskette setup interface in terms of comparison, you will provide the data (GUID, varname, offset, values) and the VBM will write desired values in CMOS for you instead to flash them.
At this stage you need to edit the source code to provide them and recompile, but in the near future you will be able to edit a txt/xml file to add all desired changes.

Released a new working version which accept reboot parameter in order to be integrated into Clover or OpenCore bootloaders, without this parameter at exit there is nothing to continue so a reboot it is required, without passing the reboot parameter app exit without without reboot if nothing is changed with a timeout of one second with press del message

I have released the source code for 1.0.6 version for anyone interested, please see the repo https://github.com/serdeliuk/VirtualBiosMod

Updated the binary and source code to 1.0.8, added some few functions to enable intel’s XTU and few overclock parameters


I experienced BIOS incompatibility error on this HP Laptop series.

err.jpg



So, I have attached the BIOS as a ROM file.

list.jpg

ROM.zip (3.17 MB)