WhateverGreen Documentation

repository·master·Indexed 25 days ago

https://github.com/acidanthera/whatevergreen

A Lilu plugin providing patches for select AMD, NVIDIA, and Intel GPUs on macOS. It addresses issues such as black screens, sleep/wake problems, display distortions, and backlight behavior. The documentation covers global, GPU-specific, and backlight boot arguments, DRM compatibility matrices for macOS 10.15 and 11+, NVIDIA Web Driver installation, and detailed configuration steps for Intel Integrated Graphics (iGPU) including BIOS settings and property injection.

Tokens
23.3K
Snippets
42
Records
154
Agent score
80%

What's inside WhateverGreen

  1. Configure Intel (U)HD Graphics 610-650 (Kaby Lake/Amber Lake Y)

    master

    For Kaby Lake (KBL) and Amber Lake Y (ABL) processors, ensure you are using macOS 10.12.6 or newer (UHD617 Amber Lake Y requires macOS 10.14.1+).

    If AAPL,ig-platform-id is not provided, the system assumes framebuffer 0x59160000.

    Use the following recommended framebuffers for your configuration:

    • Desktop: 0x59120000 (recommended) or 0x59160000 (default).
    • Laptop: 0x591B0000 (default).
    • Empty Framebuffer: 0x59120003 (default).
  2. Configure DRM for macOS 11+

    master

    On macOS 11+, all software DRM decoders and legacy hardware DRM decoders (like NVIDIA VP3) have been removed. Only IGPU-free Mac models allow for full DRM content access using a compatible AMD GPU video decoder.

    Streaming DRM for Old CPUs

    For older CPUs (e.g., Xeons or Core 2 Quad) using supported AMD GPUs, you must inject unfairgva with the value <01 00 00 00> to enable streaming DRM.

    unfairgva bitmask values:

    • 1: Enables DRM on old CPUID
    • 2: Relax HDCP requirements
    • 4: Inject the iMacPro1,1 board ID (forces AMD video decoder/encoder)

    macOS GVA Overrides

    You can use defaults write commands to force specific AMD decoders/encoders. Note: These overrides are not recommended for daily use as they may cause system instability or issues with other media decoding/encoding tasks.

    CommandPurpose
    defaults write com.apple.AppleGVA gvaForceAMDKE -boolean yesForces AMD DRM decoder for streaming services (Apple TV, iTunes movie streaming)
    defaults write com.apple.AppleGVA gvaForceAMDAVCDecode -boolean yesForces AMD AVC accelerated decoder
    defaults write com.apple.AppleGVA gvaForceAMDAVCEncode -boolean yesForces AMD AVC accelerated encoder
    defaults write com.apple.AppleGVA gvaForceAMDHEVCDecode -boolean yesForces AMD HEVC accelerated decoder
    defaults write com.apple.AppleGVA disableGVAEncryption -string YESForces AMD HEVC accelerated decoder
    defaults write com.apple.coremedia hardwareVideoDecoder -string forceForces hardware accelerated video decoder (any resolution)
    defaults write com.apple.coremedia hardwareVideoDecoder -string disableDisables hardware accelerated video decoder (QuickTime / Apple TV)
    defaults write com.apple.AppleGVA gvaForceAMDKE -boolean yes
    defaults write com.apple.AppleGVA gvaForceAMDAVCDecode -boolean yes
    defaults write com.apple.AppleGVA gvaForceAMDAVCEncode -boolean yes
    defaults write com.apple.AppleGVA gvaForceAMDHEVCDecode -boolean yes
    defaults write com.apple.AppleGVA disableGVAEncryption -string YES
    defaults write com.apple.coremedia hardwareVideoDecoder -string force
    defaults write com.apple.coremedia hardwareVideoDecoder -string disable
  3. Configure Mac Model for NVIDIA GPU setups

    master

    When using an NVIDIA GPU, choosing the correct Mac model (via board-id) is critical for stability and Intel GPU usage:

    • Ivy Bridge or Haswell CPUs: Use iMac13,2 or iMac14,2.
    • Intel GPU users (Ivy Bridge or newer): Choose a model where forceOfflineRenderer is set to YES (true) in /System/Library/PrivateFrameworks/AppleGVA.framework/Versions/A/Info.plist.
    • Other models: If you use models other than iMac13,2 or iMac14,2, WhateverGreen provides automated patches via the following boot arguments:
      • agdpmod=cfgmap: Enforces none into the ConfigMap dictionary for the system board-id.
      • agdpmod=vit9696: Disables string comparison (enabled by default).
      • agdpmod=pikera: Replaces board-id with board-ix.
    agdpmod=cfgmap
    agdpmod=vit9696
    agdpmod=pikera
  4. Configure Intel HD Graphics 5300-6300 (Broadwell) framebuffers

    master

    Intel HD Graphics 5300-6300 (Broadwell) processors are supported on OS X 10.10.2 through macOS 12.x. For newer operating systems, use OpenCore Legacy Patcher (OCLP).

    To configure the graphics, use the following recommended framebuffers:

    • Desktop: 0x16220007 (default)
    • Laptop: 0x16260006 (default)

    Native supported DevIDs: 0x0BD1, 0x0BD2, 0x0BD3, 0x1606, 0x160e, 0x1616, 0x161e, 0x1626, 0x1622, 0x1612, 0x162b.

  5. Configure Intel Iris Plus Graphics (Ice Lake)

    master

    Intel Iris Plus Graphics (Ice Lake processors) are supported starting from macOS 10.15.4.

    If you do not provide an AAPL,ig-platform-id via your bootloader configuration, the following IDs are assumed by default:

    • Real ID: 0x8A520000
    • Simulator ID: 0xFF050000

    For laptop users, the recommended framebuffer is 0x8A520000.

  6. Configure Intel HD 610-650 (Kaby Lake) Framebuffer

    master

    For Kaby Lake (KBL) platforms supporting macOS 10.12.6 or later, you may need to specify an AAPL,ig-platform-id to ensure correct framebuffer (FB) behavior.

    Recommended FB settings:

    • Desktop: 0x59120000 (Recommended) or 0x59160000 (Default).
    • Mobile: 0x591B0000 (Default).

    If no AAPL,ig-platform-id is specified, the system defaults to 0x59160000.

  7. Use Shiki for DRM video playback

    master

    Shiki is a component of WhateverGreen used to enable iTunes DRM playback on certain platforms (primarily Ivy Bridge or newer) where hardware HDCP is not working correctly. It is particularly useful for Intel integrated graphics without a discrete GPU.

    Usage Requirements:

    • Loading: Shiki cannot be loaded via kextload or by placing it in /System/Library/Extensions or /Library/Extensions. You must use your bootloader's kext injection feature.
    • OS Compatibility: Theoretically macOS 10.9+, but macOS 10.10 or newer is recommended.
    • iTunes: Requires a relatively recent version of iTunes.

    Boot Arguments:

    • Disable Shiki: -shikioff (Note: Shiki is also not loaded in Safe Mode -x or Single User Mode -s).
    • Enable Shiki Debug Mode (requires a DEBUG version of Shiki): -shikidbg.
  8. Fix Ice Lake Core Display Clock (CDCLK) frequency crashes

    master

    Some Ice Lake laptops have a BIOS/firmware that sets the Core Display Clock (CDCLK) to a low frequency (e.g., 172.8 MHz), which causes macOS kernel panics because the driver expects 652.8 MHz or 648 MHz.

    To fix this, add the enable-cdclk-frequency-fix property to your iGPU framebuffer or use the boot argument -igfxcdc. This patch re-programs the clock to a supported frequency.

  9. Download a DRM protected trailer for local testing

    master

    To download a trailer for testing, enable coremedia tracing:

    defaults write com.apple.coremedia cfbyteflume_trace 1
    1. Open Console.app.
    2. Filter the output by the keyword iTunes.
    3. Look for a line containing CFByteFlume and a URL, for example: ... <<< CFByteFlume >>> FigCFHTTPCheckCacheValidator: Comparing dictUrl = http://.....m4v, url = http://......m4v
    4. Copy the URL and paste it into your browser to download the file.