[Tool][Experimental][WIP] UniversalFormBrowser

Hi, a month ago I released [TOOL] Lenovo (H20) Bios Unlocker and Locker, for Legion H20 Laptop.
Today I’m here to release another tool:

UniversalFormBrowser: Is an alternative Bios Interface, It can be booted from a USB, stick and it will load a simple and ugly BIOS (When I have time will make a prettier interface), but this Interface will load and show all HII interfaces “Exported” by the modules.

This mean that on any AMD PC/Laptop will show at least the AMD PBS/ AMD CBS menu.

Regarding Intel one, I don’t have any to test on, but I suppose that given that Normally they have only one IFR, this tool will show the same setting as the regular BIOS, just in a ugliest FORM, my plan is to make a custom IFR parser so il will skip the “hide part”, so instead of dumping the bios/ Modifing the IFR/ Reflashing etc. It will be done at runtime without touching it; but this will not happen in the near future.


How to use, extract the zip in a FAT32 USB stick and boot from it.

Please report any graphic glitches or errors, as for now It has been tested only on two machine.

This Is heavily based on EDK2/ OVMF UiApp.

Download Redacted Due to couple of BUG, will be up when I fix these.

1 Like

It even works on my HP 255 G5 back from 2015. But the thing is that the BIOS developers didn’t work on the hidden menus at all. Because initially access to them was not provided and they simply leaved them as they were in the SDK. Some entrys redirect to the wrong HII or makes the device to hang.

With redirect to the wrong HII what do you mean?

In this version I "replace" just the Basic Form browser, so may be that on some HII, Advance Form is called, so the old UI pop up and then crash.

Navigating to menus displayed in your universal form browser works fine, but those menus contain their own redirection links to other HIIs.
It’s hard to explain in words. I can record a video if needed.

Ok, I Think that I understood what you mean. thanks for trying

If you don’t mind I have a question. Would it be possible that you could work on your app a little more so that it can handle and open modules with forms that do not follow the rules which now common to modern Insyde BIOSes. I mean your app do not see any form in Setup Utility module of my BIOS. Which, I think, is connected with that this module does not have any separate GUID to call to in its IFR table. It works differently.
I don’t know how to program, so if I wrote some nonsense right here, just say so and I won’t bother you.

Now it only load and show IFR with the class guid EFI_HII_PLATFORM_SETUP_FORMSET_GUID, that is

1
 
 { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } 
 
,
this guid is the "standard one", and is written on top of the ifr, for example:
1
2
 
0x7F48 Form Set: AMD CBS [B04535E3-3004-4946-9EB7-149428983053], ClassGuid0 [93039971-8545-4B04-B45E-32EB8326040E] {0E A7 E3 35 45 B0 04 30 46 49 9E B7 14 94 28 98 30 53 03 00 04 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E}
 
 

Notice the ClassGuid0 [93039971-8545-4B04-B45E-32EB8326040E]

If I'm not wrong The insyde H20 setup one, Have another class guid, if you check and send me the guid of the missing IFR, I can add it to the APP, I could also make that show all the available, but on my laptop became a mess, with a couple of duplicated one, so I decided to show only the one that export itself fit the right GUID.

I've done this as loading other IFR, without Injecting and replacing also the ADVANCED Form browser (I had problem to compile with that feature enabled), was a bit messed up on my laptop, with part of the ui from the original bios.

@AARCH64_EL3
Hmm. Those IFR in my BIOS uses the absolute same class guid.

imstupod.jpg

@Sweet_Kitten
This has almost no check over what is show, it will show many duplicate and some of these will be empty.
Can you check that what you’re searching will be show here?
Just replace this uefiApp.efi in the USB stick

UiApp.zip (67.2 KB)

Not shown.

pic.jpg

What you mean can be fixed editing IFR?
I think that the setting that you are searching are not displayed because:
* the SetuputilityDxe/APP is not loaded when booting from USB, so it doesn’t export the HII

Edit: can you check if under device manager is shown something useful, on my AMD PBS/CBS are shown also under device manager

Fix form IDs so they match. Now they do not. This is how I modify BIOSes. I add new transtion links in IFR table. But I want to have access without reflashing.

Boot Manager, Device Manager and Boot Maintenance Manager.

I’ve just found one useful feature of bootx64 loader you compiled. Since it is loading multiple EFIs at a time. It is capable of starting HP Bios Image Interface

1
2
3
4
5
 
2022-01-16 21:53:31  EFI HP BIOS Update 3.6.4.r31880 Started
2022-01-16 21:53:32 All Required Protocols Located
2022-01-16 21:53:32 Load Options Blank
2022-01-16 21:53:32 Current Directory = U
2022-01-16 21:53:32 SMBIOS Init Success
 
This is excellent.

Just tested again on mine, and yes the H20one are missing also on mine, will dig deep on this, I wasn’t expection to work perfectly right away.

Regarding booting the “HP Bios Image Interface”, If you want I can make a simple Loader for you, without using my bootx86, as this before starting any efi image, it uninstall the Formbrowser protocol, that will be replaced by the new loaded modules, If you replace one of that .efi app you might end up with some missing protocol.

Btw, why HP Bios Image Interface is important, what can be done from there?

Not needed. Thank you.

This is the protocol that is stored in BIOS image, without which .efi update utilities do not work. If you use it outside the BIOS environment, you can modify these .efi utilities to bypass RSA check. Only they can fully overwrite BIOS Image block by block. HP calls it UEFI update mode.

Ok, got it, you basically want to load a modified module, so you can skip the rsa check, and flash a modified bios without external programmer.

Brw, maybe this can be usefull, that bootx64, try also to load DriverSample.efi and SetupUtility.efi, in that order, ao maybe this can be useful, for not replacing the SetupBrowser or Display engine

hello! where i can download the tool ?

I removed It, as I discovered that It hd a couple of bug That I didn’t liked, will be up when these bug are fixed, but surely is not a quick think…

ayyy very cool!

lenovo xiaoxin pro16 (IdeaPad 5 Pro 16ACH6)
BIOS:GSCN29WW
Cannot scroll the screen,Can’t see the item below