03-03-2019, 07:59 AM
Hello, I'm currently trying to mod the UEFI/BIOS of a notebook to enable hidden features such as Intel vt-d and I'm having trouble to tell if my modified ROM was actually flashed or if the mod was actually applied correctly to the ROM file in the first place.
Now I'm wondering if there is a safe of to verify these things. (I was thinking about something like changing the version number that is displayed in the UEFI/BIOS setup.)
Here is all the information on what I used/did:
Notebook: Gigabyte P35X v4
OS: Windows 10 (x64)
BIOS/UEFI info:
Tool to extract the ROM from the self-extracting archive: 7-Zip
What I did:
So it seems to me like the ROM has been modified, but maybe wasn't actually flashed OR maybe changing the "Hidden Function" from "Default" to "USER" doesn't actually enable these features as other people have said it would.
Any help would be greatly appreciated.
Edit: It indeed didn't get flashed. There seems to be some sort of security check. I guess you can only flash ROMs that are signed. Well, I figured out how to bypass that with afuwinx64.exe, but ended up bricking the notebook for now. I assume this is because there are two ROM files... maybe they have to be flashed to different memory regions? I don't know. I hope I can figure out how to flash the ROMs using an SPI programmer.
Now I'm wondering if there is a safe of to verify these things. (I was thinking about something like changing the version number that is displayed in the UEFI/BIOS setup.)
Here is all the information on what I used/did:
Notebook: Gigabyte P35X v4
OS: Windows 10 (x64)
BIOS/UEFI info:
- AMI APTIO 2.17.1249. Copyright © 2018 American Megatrends, Inc.
- Project Name: P35V4
- BIOS FW Version: FD0C
- Build Date and Time: 07/31/2018 12:30:16
- EC FW Version: F01A
- ME FW Version 9.1.30.1008
- Access Level: Administrator
Tool to extract the ROM from the self-extracting archive: 7-Zip
What I did:
- I downloaded the latest "BIOS" (Version: FB0C FD0C - 2018/08/03) from the official download page
- I flashed it by simply running the downloaded exe (a self-extracting archive) and clicking OK.
- After a reboot, I manually extracted the self-extracting archive that I just ran, using 7-Zip.
- I found two ROM files (P35V4BF.B0C and P35V4BF.D0C) in this folder: \extracted_files\BIOS\BIOS.BIN\ each 8.192 KB in size.
- I started AMIBCP and opened the first ROM and in the "Setup Configuration" tab navigated to \\Setup\Advanced\ and changed the "Access/Use" of the Control Group Structure "Hidden Function" from Default to USER. Then I simply saved it, overwriting the the original ROM file.
- Then I did the same with the second ROM file.
- And finally I launched a powershell in \extracted_files\ and ran .\SmartFlash.exe
- I got the same prompt that I got for flashing the official ROM and accepted by clicking OK. The upload progress etc looked fine, I got no errors.
- After a reboot I checked the UEFI/BIOS setup and it looked exactly the same. No new functions no new Build version or date.
- I booted into Windows again and opened the two ROM files with AMIBCP again and my changes still appeared to be there.
- I also tried flashing the ROMs by copying them into \extracted_files\BIOS\AUFUEFI\WIN64\ opening a powershell in the directory and running .\afuwinx64.exe .\P35V4BF.B0C and .\afuwinx64.exe .\P35V4BF.D0C but again no errors and the UEFI/BIOS setup looked the same.
So it seems to me like the ROM has been modified, but maybe wasn't actually flashed OR maybe changing the "Hidden Function" from "Default" to "USER" doesn't actually enable these features as other people have said it would.
Any help would be greatly appreciated.
Edit: It indeed didn't get flashed. There seems to be some sort of security check. I guess you can only flash ROMs that are signed. Well, I figured out how to bypass that with afuwinx64.exe, but ended up bricking the notebook for now. I assume this is because there are two ROM files... maybe they have to be flashed to different memory regions? I don't know. I hope I can figure out how to flash the ROMs using an SPI programmer.