AppleALC Documentation

repository·master·Indexed 25 days ago

https://github.com/acidanthera/applealc

A kernel extension that enables native macOS HD audio on hardware with unsupported audio codecs without modifying the system filesystem. It supports analog and digital audio, automated codec detection, and compatibility with macOS versions 10.4 through 26*. Includes documentation for the alc-verb CLI utility used to send audio codec verbs to specific hardware nodes.

Tokens
675
Snippets
0
Records
5
Agent score
36%

What's inside AppleALC

  1. Overview of AppleALC features

    master

    AppleALC is an open-source kernel extension that enables native macOS HD audio for unsupported codecs without filesystem modifications. It supports both digital and analog audio from the moment of OS installation and provides audio support for Recovery HD and macOS Installers.

    Key capabilities include:

    • Automated codec detection.
    • Enabling unsupported internal and external audio controllers.
    • Arbitrary kext patching and custom platform/layout injection.
    • Compatibility with SIP and macOS versions 10.4 through 26*.

    Note for macOS 26 users: macOS 26 has dropped AppleHDA.kext in DP2. If your setup requires AppleHDA.kext, additional actions may be necessary to ensure AppleALC functions correctly.

  2. Use the alc-verb CLI utility

    master

    alc-verb is a command-line utility for AppleALC used to send audio codec verbs to specific hardware nodes. It is based on the hda-verb tool from alsa-tools. You can use it to manually trigger hardware functions by specifying a Node ID (nid), a verb, and a param.

    Usage

    alc-verb [option] nid verb param

    Arguments

    • nid: The Node ID (0x00 to 0xFF).
    • verb: The verb to execute. This can be a numeric value (up to 12-bit 0xfff) or a known string name.
    • param: The parameter for the verb. This can be a numeric value (up to 16-bit 0xffff) or a known string name.

    Options

    • -d <int>: Specify the device index from the list of available ALCUserClientProvider services.
    • -l: List all known verbs and parameters in a formatted list.
    • -L: List all known verbs, parameters, and available devices, with one entry per line.
    • -q: Quiet mode; only print errors when executing verbs.
  3. Reference the alc-verb command arguments

    master

    The alc-verb utility requires the following positional arguments:

    ArgumentDescription
    nidThe Node ID (integer or hex, range 0x00-0xFF)
    verbThe verb (integer/hex up to 0xfff or a known string name)
    paramThe parameter (integer/hex up to 0xffff or a known string name)