Thanks for testing, @brick2928!
zedk is more than just UniversalAMDFormBrowser, it is:
- A toolchain to build an up-to-date^* version of edk2 UEFI-Shell (as well as UIApp, drivers for a serial console, etc.), and setup_var.efi, from source
- An open-source implementation of @AARCH64_EL3’s idea to unload four drivers by UUID, such that edk2 UIApp can be launched (this is, as far as I understand, what UniversalAMDFormBrowser does)
- applying a previously unknown^** trick to temporarily unlock advanced BIOS settings in Lenovo Tiny BIOSes (at least Tiny 5 series, Intel and AMD), by setting the EFI variable
AmiSetupFormSetVar before launching UiApp
remarks:
^* up-to-date: Combining the latest with some older display driver; there’s a regression in edk2 between 20251105 and 20251108 releases, which zedk works around as well.
^** unknown as in: there’s a single chinese project, Lenovo-7000k-Unlock BIOS, that apparently sets AmiSetupFormSetVar to 1 to permanently enable admin-level features on Lenovo 7000k. This didn’t work on Lenovo Tiny5, as that variable is reset to 0 upon reboot. Only in combination with being able to enter UEFI-Setup after boot (via UIApp) it is possible to leverage this on Tiny5, and possibly many other AMI-based systems. This is new to zedk / not part of UniversalAMDFormBrowser either.
Regarding launching directly into UIApp: I tried doing so via the startup.nsh script, but it didn’t work for me (ended up with a black screen), so I ended up launching into the shell. Since zedk is supposed to get more features over time (for now, serial console redirection), I think it’s a good compromise.
You can try and see if it works for you by adding the following two lines to startup.nsh:
prepare-setup.nsh
UiApp.efi
… and if it does, then you have an automatic solution. But keep in mind that for UIApp, you’ll need a working keyboard, too. In any case, there are no 'Z’s or 'Y’s to mix up, and you can always autocomplete with [TAB], so a QWERTZ keyboard should be no trouble.
The black screen bug may be dependent on a specific system/firmware, or it’s a bug in edk2, all which can be fixed or worked around thanks to now having an open-source solution.
Contributions are very welcome!