Beginner’s guide to patch DSDT in Hackintosh

After installing macOS the first thing you need to do is patching dsdt because patching dsdt eliminates so many errors. But patching dsdt is not an easy task and the guides available on the internet are so difficult to understand even I was unable to understand after 4-5 times. So I decided to write a noob friendly guide which will help the beginners which are unable to understand the tutorials and confused about what to do. This guide is not for specific problem solving but after reading this you will have a clear idea about dsdt patching and will be able to patch them according to your needs. So let gets started!

1. Extracting the ACPI files.

There are 3 methods of extracting ACPI files of your pc but here I have only used 1 method because it is very easy and has less chance of corruption

Extracting ACPI files through this method is very simple, all you have to do is press F4 while in clover after startup. The ACPI files will be available in EFI/clover/ origin/.

“Diskutil list” in terminal to see the EFI drive

After you log in to your hackintosh open the terminal and type ‘diskutil mount diskXsXX’ then head over to the EFI partition you just mounted. (Note: replace all the X in diskXsXX with your EFI disk number, as you can see in the above image mine is disk0s4).

Or you can mount the EFI partition in just one click using clover configurator.

2. Preparing tools.

The ACPI files that you have extracted through clover cannot be patched directly so we have to first disassemble it and then patch it. So to patch them you will IASL which can be downloaded from here.

After downloading IASL, copy and paste these command in terminal:-

cd ~/Downloads unzip 
sudo cp iasl /usr/bin

3. Disassembling the ACPI files.

Now the time has come to dissemble the files. We will disassemble the ACPI using refs.txt, it can be also done without using refs.txt but it removes some error from the disassembled ACPI files. Now open Textedit and copy paste the following:-

External(MDBG, MethodObj, 1)
External(_GPE.MMTB, MethodObj,0)
External(_SB.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)
External(_SB.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)
External(_SB.PCI0.LPCB.H_EC.ECMD, MethodObj, 1)
External(_SB.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External(_GPE.VHOV, MethodObj, 3)
External(_SB.PCI0.XHC.RHUB.TPLD, MethodObj, 2)

And save it as refs.txt then move the file to origins folder Or just copy the above code and execute the following code in terminal:-

Cd desktop

a refs.txt file will be created on your desktop.

Now run the command in terminal:-

iasl -da -dl -fe refs.txt DSDT.aml SSDT*.aml
Disassembled ACPI files

The DSDT and all the SSDT files will be disassembled

Also read: How to dual boot MacOS sierra and windows 10 in Hackintosh

Head over to the folder containing ACPI files and delete those SSDT files in which there is x in the end, example- SSDT-5x.dsl. These are dynamic files and we don’t need them.

4. Error fixing.

After the extracted ACPI files have been dissembled the files are not error-free. DSDT and some SSDTs contain some error which will cause instability and even may prevent the OS from loading, So fixing those errors is very important and very easy.

Download patchmatic from here and open downloads folder then launch terminal and type:

cp patchmatic /usr/local/bin/patchmatic

After done download the latest version of maciASL from here and open it then head over to preferences of maciASL and add this :

adding patches to maciASL

to sources and name it patches. Then open your DSDT.dsl and press compile, it will give you some error see the line of error and click patch then find the suitable patch for the error. If you are unable to identify the error then comment below here.

5. Applying some common patch.

There are some patch that you should apply to your DSDT, these patches are not compulsory to apply but can be applied for better stability. However, if any unusual patches are applied without needing, it may cause problems or kernel panic. The patches are:

"Fix _WAK Arg0 v2"
"HPET Fix"
"IRQ Fix"
"RTC Fix"
"OS Check Fix"
"Fix Mutex with non-zero SyncLevel".

(Note: The above patches will not resolve any specific problem of your hackintosh)

After the patching is done don’t forget to place the patched dsdt into efi/clover/patched/ otherwise it will not load.

Your basic DSDT patching is now done if you face any problem comment down below.

This guide is just simplified version of this guide for better understanding.
Credits: Rehabman(

Get more stuff like this

Subscribe to our mailing list and get interesting stuff and updates to your email inbox.

54 thoughts on “Beginner’s guide to patch DSDT in Hackintosh

  1. Nice guide, but you may write little bit noob friendly.
    Like, to mount EFI folder, easy way i think is use Clover Configurator, just couple mouse clicks and no need to find out what is EFI partition. And editing Clover config.plist also nice to use Clover Configurator, i think for hackintosh this app is must have.

    And after user read all the steps you forgot to say in the end that .dsl files after paching and compile have to save as .aml files and then put in EFI Cover pached folder.

    Just saying.
    Have a nice day or night!

    • Glad that you like it. the post has been updated as you said and don’t forget to subscribe to email and push notification to get notified when I publish more simplified guides on hackintosh.

  2. i keep getting “syntax error, unexpected PARSEOP_ARG1” that i cant get past. I have posted on many forms looking for a fix and googled the shit out of this issue, with no success. And followed every guide i can find. I have a ProBook 450G3 i7 6500U Skylake. Im trying to add a battery patch to change my EC values to 8bit, so i can get a working battery status.

    Device (SAT0)
    Name (_ADR, 0x00170000) // _ADR: Address
    Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method
    If (PCIC (Arg0))
    Return (PCID (Arg0, Arg1, Arg2, Arg3))

    If (CondRefOf (\_SB.PCI0.SAT0.SDSM))
    Return (SDSM)
    Arg1 <–Error here

    Return (Zero)

  3. Tonymacx was my first try. After a conversation with RehabMan himself. I didn’t get any further than I am now. All they do is refer me to the guide which i have followed several times now. They wont directly answer any of my question, they always respond with a link to the guide. I even provided my problem reporting files, for them to argue me over using voodooHDA because appleHDA wouldn’t work for me. And because VoodooHDA wasn’t in the guide they said I “didn’t follow instructions properly” there for wouldn’t help me. Thats why I am reaching out to other forms. Thank you for all your help and taking the time to look at this for me. It shows me that there are good people out there that just want to help. I will keep searching. Thank you.

  4. Hey Manash

    Your guide is great and all however ive been trying to patch my dsdt for my KabyLake Laptop the only thing i cant do is get the battery percentage working, because i work from home i had to revert back to windows until i can figure the issue if i reinstall and send you my Origin folder could you take a look at it for me please!!

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.