A Beginner's Guide: How to Patch AppleHDA for Laptops


EliteMacx86

Administrator
Staff member
Audio is an essential component of any system and it needs to be enabled. There are several ways to enable audio on the hardware. But those are not recommended when using a laptop. The following is a guide for patching AppleHDA for laptops.

On some audio codecs, it can give a kernel panic or crashes. There are several advantages when using AppleHDA. Before using this guide, we recommend you to perform a clean installation of macOS.

The method is supported on the following.

Chipsets :
  • Arrandale
  • Sandy Bridge
  • Ivy Bridge
  • Haswell
  • Broadwell
  • Skylake
  • Kaby Lake
  • Coffee Lake
macOS/OS X versions:
  • Supports all macOS/OS X versions: 10.14.x, 10.13.x, 10.12.x, 10.11.x
Supported Vendors:
  • Realtek
  • Conexant
  • IDT
  • Cirrus Logic
  • VIA VT
Requirements
  • Any of the above chipset
  • Any of the above macOS/OS X version
  • Any Audio Codec from the supported vendors
  • AppleHDA Patcher
  • Vanilla/Original AppleHDA in /S/L/E
Patching AppleHDA for any codec is a complex process and is time consuming. Mirone has developed a Application for patching AppleHDA. The Application supports Desktop and Laptops segments including number of codecs. But this guide is about patching AppleHDA on laptops.

Before you start

Notes
:
  • If you've used any other method such as VoodooHDA, AppleALC, or aDummyHDA, make sure to remove those files to avoid conflicts.
  • If you're using any injector, make sure to remove it.
  • AppleHDADisabler, HDAEnabler should be removed
Step 1: Get Codec Information
The very first step is to get the codec information. Getting codec information is necessary as without knowing the audio codec, it will create chaos while following the guide as each codec is unique and needs different edits. To get the codec information, follow the steps below.
  1. The easiest method to obtain the codec information is to visit your motherboard manufacturer site and look for the Audio information under the specification section.
  2. Use DPCIManager and look for the codec information under status tab.
  3. Use a Linux or Ubuntu and in terminal, type :
Code:
Code:
cat /proc/asound/card0/codec#1 > ~/Desktop/codec_dump.txt
or
Code:
Code:
cat /proc/asound/card0/codec#0 > ~/Desktop/codec_dump.txt
Step 2: Download AppleHDA Patcher
The next step is to download the AppleHDA patcher and then patch the AppleHDA for specific codec

Downloads
  1. AppleHDA Patcher (v1.8)
  2. MaciASL
Notes :
  • Download the latest version for better support.

  1. Extract the App to your Desktop
  2. Open the App
  3. Under the Laptop sections, select your Audio Codec
  4. Click on patch AppleHDA
  5. Now, under Find, select the Audio Device
Note :
  • To find the Audio Device, use DPCIManager

  1. If you find no audio device, select Skip
  2. Click on patch
  3. And the AppleHDA Patcher will patch a AppleHDA for the selected Codec
The path for the patched AppleHDA is
Code:
/Desktop/MironeAudio
Now, open the folder and open the codec folder.
There you'll find three respective folders
Audio Output folders.png

The Clover contains:
  • aDummyHDA.kext
  • config.plist
The DSDT Patches contains:
  • HDEF_Patch
  • System_IRQ
The full Patched AppleHDA contains:
  • AppleHDA.kext
Step 3: Rename Audio Device and set Layout ID
  1. After patching the AppleHDA, the next step is to rename the audio device and set the device id to enable audio.
  2. Open your config.plist file
  3. Navigate to Acpi tab and add the following patch in DSDT, patches section of your config.plist.
Code:
Comment: Rename HDAS to HDEF
Find* [HEX]: 48444153
Replace [HEX]: 48444546
4. Navigate to Devices tab in the left pane, and type the layout ID under Inject.

Layout IDs

Use Layout ID=3

Note :
Step 4: Installing the Kext
  1. Copy the AppleHDA.kext to your Desktop.
  2. Install it using Terminal or any kext installer such as Kext Utility.
Code:
sudo cp -R /Users/yourusername/Desktop/AppleHDA.kext /System/Library/Extensions
  • After installing the AppleHDA.kext, build the caches using
Code:
sudo kextcache -i /
  • Restart your laptop
The Audio should be functional now

Notes :
  • Mirone use layout-id 3 for laptop's audio codecs.
  • For some Audio codecs, such as Conexant, the patches from the config.plist are mandatory. It's a trial and error thing and not needed for all codecs.
  • If you need to use aDummyHDA.kext instead of AppleHDA, you'll need to use the patches from the config.plist.
  • For laptops, System IRQ patch is necessary.
  • For some Audio Codec, FakePCIID+FakePCIID Intel HDMI kext is required. This applies to Skylake and newer laptops.
Step 5: Setting Audio Output/Input
After restarting your system, you'll need to setup audio output and input through your rear audio jack located at back panel and headphones jack located at the front panel. You will need to set your output device to Internal Speakers for sound to work.
  1. Open System Preferences
  2. Select Sound
  3. Under Sound Effects tab, select

  • Play feedback when volume is changed
  • Select Show volume in menu bar

  1. Click on Output
  2. Select Internal Speakers
Note :
  • When using Headphones, the Output is automatically switched to Headphones.
Problem Reporting

Details
:
  1. Audio Codec
  2. macOS version
  3. Copy of IOReg
  4. Installed AppleHDA.kext or aDummyHDA.kext
Screen shots :
  • DPCIManager/Status
  • System Information/Hardware/Audio (All the available Devices)
  • System Preferences/Sound/Output
  • System Preferences/Sound/Input
Clover Files :
  • Compress EFI/Clover, exclude the themes folder. Do not include complete EFI folder.
Put all files in a folder with your name, compress files as Zip and attach files using site attachments only. Do not use any external links.

Credits :
Mirone
Micky1979
 

EliteMacx86

Administrator
Staff member
Please, update the Guide, AppleHDA Patcher v1.9 Support Mojave, using Layout-ID=2 Layout 3 was removed in Mojave, as well as others.
thanks!
The guide was having also v1.9 for Mojave users but there was some sort of issues with v1.9. The Audio doesn't works. So i removed the v1.9 support. I'm still using v1.8 for both Laptops. I still use v1.8 AppleHDA using Layout-ID=3.

I can test for Realtek ALC235 and Conexant CX8050

Thanks
 

Mirone

Member
Please test, All problems have been fixed, if there is any new problem please let me know, I use AppleHDA Patcher v1.9.2 to patch Conexant CX20757 and everything works like a charm.
 

EliteMacx86

Administrator
Staff member
Please test, All problems have been fixed, if there is any new problem please let me know, I use AppleHDA Patcher v1.9.2 to patch Conexant CX20757 and everything works like a charm.
I'll test it then. I tested it when the Mojave was in Beta, then with the final release with the v1.9. Is v1.9.2 released recently?
 

EliteMacx86

Administrator
Staff member
It works like a charm now :D
I think there was some sort of issues with the previous version (v1.9). The recent changes are very good. No more extra patches for KextsToPatch. Also, with Mojave and using layout-ID=2, the Audio quality is great, very great.

However, the Audio isn't working with ALC235.

Good Job
Much appreciated!
Thanks for reminding. The guide will be updated very soon.
 

Top