Enable Direct Mode in Catalina

To install a kext file on Catalina, this page helped a lot(https://www.tonymacx86.com/threads/guide-installing-3rd-party-kexts-el-capitan-sierra-high-sierra-mojave-catalina.268964/). It is just an informational page if you want to get into more details about installing/removing kext extensions.

You do not need that to enable direct mode by yourself. I tried to explain everything step by step. I hope it helps. You can just follow the steps explained below.

  1. Make Time Machine backup before everything. If you do not know how to make a bootable backup, Direct Mode is not for you,too. It may be complicated for you to follow.

  2. In order to disable SIP, reboot OS X into recovery mode by holding Command + R keys simultaneously, after you hear the startup chime. When you see the apple logo, let go of the keys, and choose Terminal App in the menu bar and execute the following command to disable SIP and reboot. Please make sure that there are 2 spaces before reboot.
    csrutil disable; reboot

  3. Now we disabled SIP successfully and restarted Catalina. Now, You need the modified IOAudioFamily.kext file used for Enabling Direct Mode on Mojave as it was done before. Therefore, download the following zip file to your desktop.


  4. Create a folder on your desktop named DirectModeCatalina .Now you have an empty folder and a downloaded zip file.

  5. Extract the downloaded zip file and just copy IOAudioFamily.kext to the new created folder, which we created in step 4 and named it as DirectModeCatalina. After copying, you should see that only IOAudioFamily.kext file exists in DirectModeCatalina folder.

  6. While in the finder, navigate to the folder DirectModeCatalina where we want to open a terminal. Right click on that folder. One of the options is to open a terminal on that folder. Click on it to open the Terminal. So, we opened the terminal on DirectModeCatalina folder. We can check it by typing pwd on the terminal window and see whether the displayed path is the path of the folder , or not.

  7. Run the following commands . Write the first line to the window and then press enter. After that write the second line and press enter… If it prompts to enter your password, just enter your password and press enter again. Repeat this pattern for each line in order. The last statement takes little longer( sudo kextcache -i /). So wait after the last step.

    sudo spctl --master-disable
    sudo mount -uw
    sudo killall Finder
    sudo cp -R IOAudioFamily.kext /Library/Extensions
    sudo chown -v -R root:wheel /System/Library/Extensions
    sudo touch /System/Library/Extensions
    sudo chmod -v -R 755 /Library/Extensions
    sudo chown -v -R root:wheel /Library/Extensions
    sudo touch /Library/Extensions
    sudo kextcache -i /

  8. After all these steps, we expect to see that IOAudioFamily.kext file under /System/Library/Extensions folder has been modified.

    If it is the new modified file, everything will probably be ok :smile: . Just reboot OS X…
    Open Audirvana…
    Click Audio Settings from the menu.
    Navigate to the Low Level Playback options as shown in the picture.
    If you see “Direct Mode” and “Integer Mode Type” , then everything seems to be fine. Enable Direct Mode and play your favorite song to see whether it works, or not.

    If it is still the original file, it means something went wrong and you could not modify it. You may try Hakintool method at your own risk. I installed the program and used it as it is explained under the The Hackintool Method section of the page explains how to do it. (https://www.tonymacx86.com/threads/guide-installing-3rd-party-kexts-el-capitan-sierra-high-sierra-mojave-catalina.268964/).
    After applying the hakintool method, check whether the file is modified, or not. You may need to redo the steps 6 and 7 if it is still not modified.

  9. If everything is ok(we see that the file,IOAudioFamily.kext, under /System/Library/Extensions is finally modified), reboot OS X into recovery mode by holding Command + R keys simultaneously, after you hear the startup chime. When you see the apple logo, let go of the keys, and choose Terminal App in the menu bar and execute the following command to enable SIP back again and reboot
    csrutil enable; reboot

  10. After everything works fine, I advise you to get a bootable backup again using Time Machine.

    Happy Listening :smile:

1 Like

Maybe a stupid question, where do I find this file?

Mojave Link:

just use the .ktext file, don’t read the text there it is for Mojave :slight_smile:

1 Like

Thanks, where does this file come from?

Here they are mine… been helping with that since el capitan :grinning:

Just use the IOAudioFamily.kext file in the zip file… The other part (the commands to be executed) is the same as installing any other kext file on Catalina… It is a straight-foward, easy step.

If you have the …ktext of El Capitan, you could just use yours…

@congofather your post is not straight forward to read and easy :slight_smile:

i downloaded the 2 software that are free that i saw on your link… one is free but you have to registered there to have it… i will read all that later, but will surely wait till 10.15.1 is out because i’m sure it will have to be done again…

One question… Have you put back SIP enable after it worked, restart MAC and see if it is still working with SIP back on?

No, I have not yet enabled SIP. You do not need any software. Hackintool did not work. You do not need any other software to install Kext(kernel extensions) file on Catalina…

If you execute the commands in order step by step, you can enable direct mode by installing IOAudioFamily.kext. It’s that easy…

In previous versions(Mojave, Sierra), we need to restart operating system by pressing CMD + R in order to reboot into recovery mode. Then we open the terminal window and execute “csrutil disable; reboot”…

I have also repeated this step on Catalina but maybe you do not need that anymore. First simply follow the instructions and execute the 10 lines of code in order without installing any other software.

Edit: Before executing the following code “sudo cp -R *.kext /Library/Extensions”, be sure that you change your current directory to the directory containing the kext file ("cd <KEXT_FILE_DIRECTORY>) . Or, you can give the full path of the IOAudioFamily.kext file as follows;

sudo cp -R KEXT_FILE_DIRECTORY/IOAudioFamily.kext /Library/Extensions

That line is for disabling sip… you have to redo cmd r and enable back sip after the procedure worked or your system will still be we no security…

Yes, it is more secure to re-enable it… Maybe rebooting into recovery mode with CMD+R, and executing “csrutil enable; reboot” is better after we see that everything works…

Does it work if you enable sip back :grinning:
That is a good question that i’ll wait for answer before doing it :grinning:

And also, you put the .ktext in library then in extension? Before it had to be in system… extension

No you do not need to… First it copies the kext file to /Library/Extensions; then the file is copied to /System/Library/Extensions after executing all the commands.

I’ll try that and share the result here :slight_smile:

If it worked, you should write a recipe, starting with: i have put the .ktext of El Capitan on my desktop then i did… step by step for simple people like me :grinning:

Ok, I will edit my first message after all to make it simpler to understand…

Cool, because without sip back most people won’t take a chance, and if you read my included text for past versions, you saw that you need to be precise for people that never touch terminal, they are scared of it :grinning:

It works after enabling SIP :smile: . I’ll edit my first message to make it clear for everyone.

Cool :grinning:… (need 20 characters to post)