Skip to content

Latest commit

 

History

History
163 lines (131 loc) · 10 KB

File metadata and controls

163 lines (131 loc) · 10 KB

OpenCore Version macOS

Re-enabling Audio in macOS Tahoe beta 2+

TABLE of CONTENTS


Introduction

In macOS Tahoe beta 2, analog audio stopped working. Although AppleALC.kext had already been updated for macOS 26, the cause was quickly identified: Apple removed AppleHDA from its final x86-compatible release of macOS.

This change is tied to a broader architectural shift that began with the introduction of the Apple T2 Security Chip in 2017. Starting with the iMac Pro and later expanding to other Intel Macs, audio processing was routed through the T2 chip instead of the legacy AppleHDA controller. Since all Intel Macs still supported by Tahoe rely on T2-managed audio, Apple has now removed AppleHDA.kext entirely as of beta 2.

As a result, the driver layer required by AppleALC.kext to enable analog onboard audio on Hackintosh systems is no longer present, which is why analog audio no longer works out of the box in macOS Tahoe.

So what does AppleHDA do?

AppleHDA is a core audio driver framework used in macOS to manage audio hardware functionality. It acts as a bridge between the operating system’s audio stack and the hardware, enabling audio input and output for various devices like speakers, microphones, headsets – even external USB Audio Interfaces need this kext in order to be selectable as an audio output source. Below is an explanation of how it works and what it does, tailored to be concise yet comprehensive.

How does AppleHDA work?

AppleHDA is a fairly simple kernel extension for setting up audio support for devices. It does this by parsing the Layout ID detected in the firmware (via DeviceProperties) and loads the associated audio map off of disk.

  • These maps [used to be] located at /System/Library/Extensions/AppleHDA.kext/Contents/Resources/
  • Layout IDs are present on the HDEF device in IOService as layout-id, data is generally presented in Hexadecimal form but supports Integer and ASCII
  • Layout data is generally presented as 2 files: layout{x}.xml and Platforms.xml. Platforms.xml represents chipset definitions while layout.xml is reserved for model-specific data.

[…]

Source: Mykola's Blog

So why is there no sound?

Not only AppleHDA has been removed, but the associated dylib has also been deleted from the dyld_shared_cache1. To restore functionality, the Kernel Development Kit (KDK) from Tahoe beta 1 is required to overwrite the root directory and reinstall the missing files. Since AppleHDA operates at the system user level and cannot be injected via OpenCore (otherwise the system crashes during boot), both the kext and dylib need to be reinstated through root patches.

Re-enabling Audio-support in macOS Tahoe

Option 1: Using MyKextInstaller

If your system doesn't require any root patches to run macOS, you can use MyKextInstaller to install an older version of the AppleHDA kext to re-enable analog audio. Follow the instrcutions on the MyKextInstaller repo to so.

Note

There's also HDA Universal, an alternative AppleHDA-like audio solution for macOS Tahoe and Hackintosh systems. However, since it is "developed" by MaLd0n/Olarila and the source code is not publicly available, it is not covered or recommended in this guide.

Option 2: Using OCLP-Mod

If your system does require root patches to run macOS Tahoe, you should use this option instead. Since there's no official OCLP version available for macOS Tahoe , you can use OCLP Mod to apply root patches – it will also install an older version of AppleHDA, thereby re-enabling analog audio. To download the latest build, you need a Github account.

Caution

Don't use OCLP-Mod if your system requires root patches for enabling graphics acceleration (either iGPU or GPU) in macOS Tahoe. In this case, you should wait for an official OCLP release by Dortania! Don't blame me if your system doesn't boot into macOS after applying root patches with OCLP-Mod!

Pre-Requisites

  • In general: an OpenCore EFI and config.plist prepared to run macOS 13 and newer is required (→ see Configuration Guides).
  • If macOS Tahoe is up and running already, the following changes are required so that root-patches can be applied:
    • In your config.plist, change csr-active-config to 03080000
    • Add AMFIPass.kext to EFI/OC/Kexts and your config.plist.
    • Update AppleACL.kext to the latest nightly version
    • Add the following NVRAM Settings to your config:
      […]
      <dict>
          <key>NVRAM</key>
          <dict>
              <key>Add</key>
              <dict>
                  <key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
                  <dict>
                      <key>OCLP-Settings</key>
                      <string>-allow_fv -allow_amfi</string>
                  </dict>
              <key>Delete</key>
              <dict>
                  <key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
                  <array>
                      <string>OCLP-Settings</string>
                  </array>
              </dict>
          </dict>
      </dict>
      […]
    • Save your config.plist and reboot

Instructions

  • Ensure that your system is connected to the internet. This is mandatory because OCLP Mod needs to download additional files required for root patching!
  • Download OCLP-Mod.pkg and install it
  • Run it. The GUI is in Chinese, unfortunately. For an english translation, you might want to look into compiling a multilingual version
  • Open the settings:
    OCLP_mod01
  • Click on the shown Tab and enable the options you need (here AppleHDA) and press "Ok" at the bottom:
    Applehda
  • Press the upper right button for the root patching:
    oclp_mod01
  • Next, press the upper button to install patches and wait until patching is completed:
    oclp_mod02
  • If required, it will automatically download KDK or Metalibs
  • Restart macOS when prompted to
  • Once macOS is up and running again, the audio device will be present and driven by "AppleHDADriver" as shown here (example):
    after_patching

Option 3: Using VoodooHDA

As a fallback, you can use VoodooHDA.kext, an alternative audio driver that doesn’t rely on AppleHDA. Luckily for us, Chris1111 has updated his VoodooHDA Installer for macOS Tahoe.

Pre-Requisites

  • Disable Gatekeeper
  • Mount your EFI and open your config.plist
  • Change csr-active-config to 03080000 or 850A0000
  • Disable AppleALC.kext if present
  • Save your config.plist and reboot
  • Continue with the instructions

Instructions

  • Open Terminal
  • Run the following command:
    git clone https://github.com/chris1111/VoodooHDA-Tahoe.git && cd $HOME/VoodooHDA-Tahoe && ./Package.command && open -R $HOME/VoodooHDA-Tahoe/VoodooHDA-Tahoe.pkg
  • This will build the VoodooHDA Installer package:
    vodoohda_build
  • Once the build process has finished, Open Finder
  • Navigate to your home folder (or press CMD + Shift + H)
  • Open the "VoodooHDA-Tahoe folder"
  • Double-click the VoodooHDA-Tahoe.pkg to install the driver and PrefPane
  • Once that's done, reboot your system
  • Open System Preferences and find the VoodooHDA PrefPane to select your audio source.
  • Enjoy!

Note

  • Be aware that VoodooHDA may have lower audio quality or compatibility issues compared to AppleALC.
  • Unlike AppleALC which can detect plugged in devices and switch audio sources automatically, you have to do it manually when using VoodooHDA!

Troubleshooting

  • No audio devices detected: Verify AppleALC.kext or VoodooHDA.kext is loading properly using:
    kextstat | grep -i applealc
    kextstat | grep -i voodoohda
  • Incorrect Layout ID: Double-check your codec and Layout ID in config.plist.
  • Kernel cache issues: Rebuild the kernel cache with:
    sudo kextcache -i /
  • SIP conflicts: Ensure that SIP is disabled

Credits and Thank Yous

  • Dortania for OCLP
  • laobamac for OCLP Mod
  • bluppus20 for AMFIPass kext
  • Slice for VoodooHDA kext
  • Chris1111 for VoodooHDA-Tahoe

Footnotes

  1. Source: laobamac_yyds