An EFI application and driver to add SSDTs and/or patch in your own DSDT
I made this tool because I wanted a way to use RehabMans ACPI Debug tool on my MacBook Pro without using Clover. Although I made this with macOS in mind it will work with any OS along with any bootloader (provided your bootloader does not do its own ACPI patching).
Using this is fairly straighforward. Just place a folder titled ACPI in the same directory as ACPIPatcher.efi and it will search the folder for any .aml files. Any file not named DSDT.aml will be added to the XSDT table as SSDTs while DSDT.aml will completely replace the OEM DSDT. Once you have everything in place just call ACPIPatcher.efi from an EFI shell and reboot when you are done.
However, if you would like your patches to survive reboots you can use the driver version of this software. To do this simply place ACPIPatcherDxe.efi in your bootloaders driver folder along with the ACPI folder mentioned above.
I have also provided a test SSDT in Build/ACPI.
Your directory listing should look something like this:
FS0:> ls
<DIR> ACPI
ACPIPatcher.efi
FS0:> ls ACPI/
SSDT-TEST.aml
DSDT.aml
Place ACPIPatcherPkg in your EDKII folder and build as usual. Prebuilt binaries are provided however.
build -p ACPIPatcherPkg/ACPIPatcherPkg.dsc
This is my first EFI application so I'm sure there is much work to be done here. Things I can think of:
Rewrite as a driver so the application does not need to be called before every boot- Better memory management/error handling??