{"id":27935187,"url":"https://github.com/boringboredom/uefi-editor","last_synced_at":"2025-05-15T15:04:48.245Z","repository":{"id":44198867,"uuid":"274190646","full_name":"BoringBoredom/UEFI-Editor","owner":"BoringBoredom","description":"Aptio V UEFI Editor: an alternative to AMIBCP","archived":false,"fork":false,"pushed_at":"2025-04-01T20:05:47.000Z","size":11311,"stargazers_count":686,"open_issues_count":1,"forks_count":55,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-05-07T06:15:04.050Z","etag":null,"topics":["ami","amibcp","aptio","bios","change","download","editor","format","grub","hidden","ifr","mod","setting","settings","setup","uefi","unhide","var","varoffset","varstore"],"latest_commit_sha":null,"homepage":"https://boringboredom.github.io/UEFI-Editor/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BoringBoredom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-06-22T16:36:13.000Z","updated_at":"2025-05-05T19:44:46.000Z","dependencies_parsed_at":"2024-06-25T14:33:22.657Z","dependency_job_id":"be0dd460-0b89-4994-8364-c39137fe5902","html_url":"https://github.com/BoringBoredom/UEFI-Editor","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoringBoredom%2FUEFI-Editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoringBoredom%2FUEFI-Editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoringBoredom%2FUEFI-Editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoringBoredom%2FUEFI-Editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BoringBoredom","download_url":"https://codeload.github.com/BoringBoredom/UEFI-Editor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254364270,"owners_count":22058878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ami","amibcp","aptio","bios","change","download","editor","format","grub","hidden","ifr","mod","setting","settings","setup","uefi","unhide","var","varoffset","varstore"],"created_at":"2025-05-07T06:15:01.182Z","updated_at":"2025-05-15T15:04:48.228Z","avatar_url":"https://github.com/BoringBoredom.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Aptio V UEFI Editor](https://boringboredom.github.io/UEFI-Editor/)\n\n![](./images/showcase/1.png)\n![](./images/showcase/2.png)\n\n# Usage guide\n\n## Prerequisites\n\n- [UEFITool NE](https://github.com/LongSoft/UEFITool/releases) (press `Show all assets`)\n- [UEFITool 0.28.0](https://github.com/LongSoft/UEFITool/releases/tag/0.28.0) ([why?](https://github.com/LongSoft/UEFITool#known-issues))\n- [IFRExtractor-RS](https://github.com/LongSoft/IFRExtractor-RS/releases)\n- [UEFI Editor](https://boringboredom.github.io/UEFI-Editor/)\n\n## Extracting the necessary files\n\n- Drag and drop the BIOS file into `UEFITool NE`.\n- Search (`CTRL + F`) for a known setting.\n\n  ![](./images/extraction/1.png)\n\n- Double-click the reference to `Setup/PE32 image section` at the bottom.\n\n  ![](./images/extraction/2.png)\n\n- Extract `PE32 image section` `as is`.\n\n  ![](./images/extraction/3.png)\n\n- Move `ifrextractor.exe` to the current folder, open the CLI inside and convert the `.sct` file you just extracted.\n\n  ```\n  ifrextractor.exe \"Section_PE32_image_Setup_Setup.sct\" verbose\n  ```\n\n  ![](./images/extraction/4.png)\n\n- Scroll down inside the currently expanded section and find `AMITSE` and `setupdata` (sometimes both required files are under `AMITSE`). Extract `PE32 image section` `as is` and `setupdata` as `body`.\n\n  ![](./images/extraction/5.png)\n  ![](./images/extraction/6.png)\n\n- Upload the 4 files to the `UEFI Editor` page.\n\n  ![](./images/extraction/7.png)\n\n## Using the UEFI Editor GUI\n\n- ### Navigation\n  - Dotted underlined text has references to Forms and can be clicked.\n- ### Menu\n\n  - You can change the target Form of top-level references here. This is useful for UEFIs that have a custom `Advanced` Form.\n\n    ![](./images/usage/1.png)\n    ![](./images/usage/2.jpg)\n\n  - E.g. on MSI boards, you can replace `OC Profiles` with `Advanced` (child of `Setup`) to gain access to a lot of Forms that are otherwise inaccessible due to missing references while still retaining access to `OC Profiles`. Press `ESC` after selecting `OC Profiles` to access `Setup`.\n\n- ### Item visibility control\n\n  - Make sure the parent forms are visible when targeting a setting. Use the top-right navigation to travel upwards.\n  - If one method doesn't work, try the other one. Using both at the same time can cause issues. It varies from UEFI to UEFI. Try modifying `Access Level` first.\n  - #### Suppress If\n\n    - A `Suppress If` opcode hides nested items if the condition is true. The presence of a `Suppress If` opcode doesn't always mean the condition is true. However, if it is, you can remove the suppression by unchecking the offset.\n\n      ![](./images/usage/3.png)\n\n  - #### Access level\n\n    - Another method of controlling item visibility is changing the access level. `05` usually works. A different value does not necessarily mean it's hidden. [Here is a forum post by Lost_N_BIOS with possible access level values](https://winraid.level1techs.com/t/request-maximus-xi-hero-unlock-amibcp/33743/4) (`CTRL + F` `05/Yes`).\n\n      ![](./images/usage/4.png)\n\n## Inserting modified files\n\n- Press the `UEFI Files` download button to download the modified files and the change log.\n- To find the correct sections in `UEFITool 0.28.0` you can search for `File GUID`s you copy from `UEFITool NE`.\n- Replace files the same way you extracted them: `Extract as is` -\u003e `Replace as is` and `Extract body` -\u003e `Replace body`\n\n  Example for `Setup/PE32 image section`:\n\n  `UEFITool NE`:\n\n  ![](./images/insertion/1.png)\n\n  `UEFITool 0.28.0`:\n\n  ![](./images/insertion/2.png)\n  ![](./images/insertion/3.png)\n\n- Save the modifications.\n\n  ![](./images/insertion/4.png)\n\n---\n\nThe section below is unrelated to the above tool.\n\n---\n\n# How to change hidden settings without flashing a modded BIOS\n\n## Preparation\n\nDownload [datasone's modded shell](https://github.com/datasone/grub-mod-setup_var/releases) and rename it to `BOOTX64.EFI`.\n\nFormat a USB drive as `FAT32` and move `BOOTX64.EFI` to `USB:\\EFI\\BOOT\\` (create the folders `EFI` and `BOOT` manually). The final path of the shell will be `USB:\\EFI\\BOOT\\BOOTX64.EFI`.\n\nDownload your **_current_** BIOS version from the motherboard vendor's site. The structure changes across different versions, so make sure you have the **_same_** BIOS.\n\nFollow [these instructions](#extracting-the-necessary-files) until and including the conversion with `ifrextractor.exe`. If there are two `Setup` sections, use the one that has matching offsets (change settings in BIOS and read values with datasone's shell to confirm).\n\nOptionally, download [IFR-Formatter.js](https://raw.githubusercontent.com/BoringBoredom/UEFI-Editor/master/IFR-Formatter/IFR-Formatter.js) (right-click and `Save link as...`) and [node.exe](https://nodejs.org/dist/latest/win-x64/node.exe). Place them in the same folder as the IFR Extractor output and execute `node IFR-Formatter.js yourIfrExtractorOutput.txt` in the CLI.\n\nDisable `Secure Boot` and `CSM` and boot from the USB drive in UEFI mode.\n\n## Example\n\n### IFR Extractor output\n\n```\nOneOf Prompt: \"Intel C-State\", Help: \"[...]\", QuestionFlags: [...], QuestionId: [...], VarStoreId: 0x2, VarOffset: 0x14, Flags: [...], Size: 8, Min: [...], Max: [...], Step: [...] { [...] }\n\tOneOfOption Option: \"Auto\" Value: 2, Default, MfgDefault { [...] }\n\tOneOfOption Option: \"Enabled\" Value: 1 { [...] }\n\tOneOfOption Option: \"Disabled\" Value: 0 { [...] }\nEnd  { 29 02 }\n```\n\n`Size` is a decimal in bits. Convert it to a hexadecimal in bytes.  \n`Value` is a decimal. Convert it to a hexadecimal.\n\nSearch for the `VarStoreId` to find the `VarStoreName`.\n\n```\nVarStore Guid: [...], VarStoreId: 0x2, Size: [...], Name: \"CpuSetup\" { [...] }\n```\n\n### IFR-Formatter.js output\n\n```\nIntel C-State | VarStore: CpuSetup | VarOffset: 0x14 | Size: 0x1\n    Auto: 0x2\n    Enabled: 0x1\n    Disabled: 0x0\n```\n\n### [Syntax](https://github.com/datasone/grub-mod-setup_var#setup_var_cv) (READ THIS)\n\n#### Writing\n\n```\nsetup_var_cv VarStoreName VarOffset Size Value\n```\n\n```\nsetup_var_cv CpuSetup 0x14 0x1 0x0\n```\n\n#### Reading\n\n```\nsetup_var_cv VarStoreName VarOffset Size\n```\n\n```\nsetup_var_cv CpuSetup 0x14 0x1\n```\n\n### Miscellaneous\n\nTo exit and reboot, type:\n\n```\nreboot\n```\n\n---\n\nWorkarounds for various issues (e.g. multiple `Setup` `VarStores`): [legacy commands](https://github.com/datasone/grub-mod-setup_var#legacy-commands)\n\n---\n\nIf something unexpected happens, force shutdown and reset CMOS.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboringboredom%2Fuefi-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboringboredom%2Fuefi-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboringboredom%2Fuefi-editor/lists"}