Oh, that commit is using a separate function and property. Anyway, you have to keep the order of offsets in the array the same since they’re being accessed by index here. In hindsight, I should’ve just used an object with proper property names, but back then I was planning on keeping the .json somewhat compact because it was meant to be an IFR Formatter output replacement (which is whatever now since I wrote another formatter). I’ll change that array to an object eventually to make it less confusing.
Regarding the page IDs: I was thinking of just adding a dropdown to the “Info” column for Ref Prompts to avoid making the table even wider. I’ll try to confirm that this method works on various boards before implementing it.
I know. Like, (child.offsets[0]), (child.offsets[1]) and etc. I added up to (child.offsets[3]). Order was correct. And the tool still had weird behaviour.
The second thing I want to add is new entry type that can’t be parsed from IFRE output.
But it can be also used on any other. It might be handy to access Forms outside Setup, if you aren’t going to enhance the Menu section.
I can’t flash the modded BIOS, I need a signature file and the one from the original BIOS version (that I modified) does not work.
I have also tried to “trick” the flash tool that I want to flashback or recovery-flash (Win+B on boot) but it’s the exact same thing everywhere.
I have read in several places that the signature is not needed but for me it clearly is.
What am I doing wrong?
The numbers I see when comparing the intact and modified BIOS files all seem to check out, I used the older version of the UEFITool to create the bin.
(I have modded BIOSes before, but we didn’t have signatures, UEFIs, certificates or really anything but simple checksums. Sure, if you fd up you fd up for real, but at least you knew if your were making any progress at all )
Thankful for any and all help.
Omen 25L GT-12xxxa, F.28a.
This is HP. You can’t mod it.
I’ve looked through the PDF and your repo a bit. I’m confused why you replace 4 bytes in the PDF but only 2 bytes in the repo. The location also seems to be different.
First two bytes are for parent Page ID. It goes to this ID when you press Esc.
Could you elaborate?
In your fork, you did .{20}(....)
while it should be .{14}(........)
from what I’ve gathered from the PDF. Am I missing something?
Firstly, in the PDF I was converting every little endian values to big endian. So,
parent[01 00] and destination[3B 00]
to [00 01] and [00 3B].
That’s where 00 01 00 3B
came from.
Secondly, you allowed to not alter the parent id. This wasn’t said in the pdf and it sucks in this term.
What bytes are we interested in, then? In your fork, the gap between byteArray[7] and byteArray[4] is 16 bytes, while it should be 18 bytes.
Ayoo, I even started thinking that ChatGPT wrote the code for you.
Yes.
I’m just living up to my name with some brain farts . I don’t use ChatGPT for this, I don’t trust it.
Anyway, I’m going to try to get confirmation from volunteers that this works as intended next week and then implement it in the main branch. Thanks.
So it really is that bad… Thanks for the fast reply.
Hi! I was wondering how much luck you’ve had with the unlocked options. I have the 12800H erying motherboard and managed to get the options to show up following your instructions.
However, it seems like the options I was most interested in (BCLK and ICCmax) don’t actually have any effect, despite me now being able to change them in the bios.
Is this something you’ve managed to tackle?
BTW, where does this info come from? Is there official documentation somewhere?
Don’t know if there’s a documentation. I just copypasted the info from some russian forum.
I left a hyperlink on the first page of the pdf.
Actually, I have something that can be called documentation. But I’m not sure if it’s okay to publish it.
Here's a piece of it. Definitions for offset 0x14 (Type).
#define CONTROL_TYPE_NULL 0x0000
#define CONTROL_TYPE_SUBMENU 0x0001
#define CONTROL_TYPE_LABEL 0x0002
#define CONTROL_TYPE_TEXT 0x0003
#define CONTROL_TYPE_DATE 0x0004
#define CONTROL_TYPE_TIME 0x0005
#define CONTROL_TYPE_POPUPSEL 0x0006
#define CONTROL_TYPE_MEMO 0x0008
#define CONTROL_TYPE_MSGBOX 0x0009
#define CONTROL_TYPE_CHECKBOX 0x000A
#define CONTROL_TYPE_NUMERIC 0x000B
#define CONTROL_TYPE_EDIT 0x000C
#define CONTROL_TYPE_PASSWORD 0x000D
#define CONTROL_TYPE_MENU 0x000E
#define CONTROL_TYPE_ORDERED_LIST 0x000F
#define CONTROL_TYPE_POPUPEDIT 0x0010
#define CONTROL_TYPE_VARSTORE_SELECT 0x0011
#define CONTROL_TYPE_VARSTORE_SELECT_PAIR 0x0012
#define CONTROL_TYPE_POPUP_STRING 0x0013
#define CONTROL_TYPE_VARSTORE 0x0014
#define INCONSISTENT_IF 0x0015
#define NO_SUBMIT_IF 0x0016
#define DISABLE_IF 0x0017
#define CONTROL_TYPE_VARSTORE_NAME_VALUE 0x0018
#define CONTROL_TYPE_VARSTORE_EFI 0x0019
#define CONTROL_TYPE_VARSTORE_DEVICE 0x001A
#define CONTROL_TYPE_ACTION 0x001B
#define CONTROL_TYPE_RESET 0x001C
#define CONTROL_TYPE_RULE 0x001D
Can share the file in private if needed.
I’ve had a volunteer test this method on an X670 Taichi, and it didn’t work for him. What boards did you test this with and confirmed it works?
Haven’t touched those settings. So do not know.
I have only played around with pcie settings and aspm. Those seems to work as intended.
(Apart from that hardware is buggy)