How to Inject Legacy GPUs in macOS Big Sur (AMD & Nvidia)
Step-by-step guide to injecting DeviceProperties for AMD Radeon HD 7xxx and Nvidia Kepler GPUs in macOS Big Sur. Fix black screen, 7 MB VRAM, and get full acceleration.
macOS 11 Big Sur dropped support for legacy GPUs that worked in earlier versions via kext patches. Hackintosh users with older AMD Radeon HD 7xxx or Nvidia Kepler cards now need precise DeviceProperty injection to get a working system. This technique tells the operating system how to interpret the GPU's PCIe configuration without relying on deprecated kexts. Here are the specific injection methods that work with Big Sur (11.x) on legacy hardware, including the necessary framebuffer patches, device-id overrides, and boot argument adjustments.
Why Injection Became Critical in Big Sur
macOS 11 introduced stricter kext signing requirements and removed several legacy GPU drivers from the kernel cache. Cards like the Radeon HD 7870 (Pitcairn) or Nvidia GeForce GTX 680 (GK104) no longer render accelerated graphics out of the box. Instead of loading a dedicated kext, Big Sur expects the GPU to present itself with a specific set of properties that match a supported model. Injection is the act of inserting those properties—often via the bootloader's DeviceProperties section—so the system recognizes the card as a compatible device (e.g., an AMD Radeon R9 270 or a Mac Edition GTX 680). Without injection, you get a black screen, 7 MB of VRAM, or a system that refuses to boot past the GPU initialization stage.
Core Injection Methods for Big Sur
Three approaches exist for injecting GPU properties on a legacy Hackintosh running Big Sur:
- DeviceProperties injection (recommended) – Add entries under
DeviceProperties → Addin your config.plist (Clover or OpenCore). This is the cleanest method because it does not modify system files and survives system updates. - DSDT/SSDT patches – Override the GPU's _DSM method with a custom injected property set. More invasive and harder to maintain across firmware revisions.
- Kext-based injection (deprecated) – Older tools like
FakePCIIDorWhateverGreenwith manual spoofing. WhileWhateverGreenstill works in Big Sur, it now relies on DeviceProperties for many functions; pure kext injection without property entries often fails.
This guide focuses on the DeviceProperties method because it offers the best balance of reliability and simplicity for legacy hardware.

Step-by-Step: Injecting an AMD Radeon HD 7870 (Pitcairn) in Big Sur
Assume you have a Gigabyte GA-Z77X-UD5H motherboard with an Intel Core i7-3770K and a Sapphire Radeon HD 7870 2 GB. The card is not natively supported in Big Sur, but with proper injection it works with full acceleration. Follow these steps:
- Identify your GPU's PCI device-id and vendor-id. For the HD 7870, the device-id is
0x6818and vendor-id is0x1002(AMD). You can find these in Windows Device Manager or by booting a Linux live USB and runninglspci -nn. - Determine the compatible framebuffer. Big Sur's AMD drivers use a framebuffer name like
HamachiorFutomakifor Pitcairn. The safest choice isHamachi(used by the R9 270). Add the following DeviceProperties entry to your config.plist:
<key>DeviceProperties</key>
<dict>
<key>Add</key>
<dict>
<key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>device-id</key>
<data>GBgA</data>
<key>vendor-id</key>
<data>AAI=</data>
<key>model</key>
<string>AMD Radeon HD 7870</string>
<key>framebuffer-patch-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-type</key>
<data>AAQAAA==</data>
</dict>
</dict>
</dict>
Explanation: The device-id is base64-encoded from the hex value 0x6818 (little-endian: 18 68 00 00 = GBgA). The vendor-id for AMD is 0x1002 (02 10 00 00 = AAI=). The framebuffer-con0-type set to 0x00040000 (DisplayPort) matches the physical port layout; adjust if you use HDMI or DVI. For dual-link DVI use 0x00020000.
- Add boot arguments for stability. In your config.plist under
Boot → Arguments, addagdpmod=pikera(for AMD cards) to disable the board-id check that can cause a black screen on unsupported Mac models. For Nvidia Kepler cards, usenvda_drv=1(if using the legacy Web Driver, though Big Sur no longer supports it—Kepler users must rely on the built-in driver with injection). - Save and reboot. If the screen stays black after the Apple logo, try a different framebuffer name (e.g.,
Futomaki) or adjust connector types. Use a single display on the first port during testing.
Nvidia Kepler Injection in Big Sur
Nvidia Kepler cards (GTX 6xx/7xx) are partially supported in Big Sur through the built-in NVDAGK100Hal kext, but only if the card is injected as a Mac Edition model. For a GTX 680, add the following DeviceProperties:
<key>device-id</key>
<data>gBAAAA==</data> <!-- 0x1180 -->
<key>vendor-id</key>
<data>BwAAAA==</data> <!-- 0x10DE -->
<key>model</key>
<string>NVIDIA GeForce GTX 680</string>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,name</key>
<string>NVDA,Display-B</string>
Note that Kepler cards in Big Sur may exhibit sleep/wake issues or random hangs. For a deeper dive into power management, see our guide on AGPM Editing for Hackintosh: Tuning Vender, LogControl, and Voltage on Unsupported GPUs.
Common Pitfalls and How to Avoid Them
| Issue | Likely Cause | Solution |
|---|---|---|
| Black screen after Apple logo | Wrong framebuffer or connector type | Try Futomaki for Pitcairn; set framebuffer-con0-type to match your monitor's connection |
| 7 MB VRAM shown | No injection or wrong device-id | Verify that the device-id is correct and that the property is being applied (check with IORegistryExplorer) |
| System crashes on wake from sleep | AGPM settings not tuned for the injected card | Edit AGPM kext as described in Fixing macOS Sleep/Wake on Legacy Hackintosh by Editing AGPM Kext |
| GPU acceleration works but no audio over HDMI | Missing HDMI audio injection | Add hda-gfx property with value onboard-1 and ensure AppleHDA is patched for HDMI |
Verification After Injection
After rebooting, open System Information ( → About This Mac → System Report → Graphics/Displays). You should see your injected model name and the correct VRAM size. If the name is still generic (e.g., “AMD Radeon HD 7xxx”), double-check the device-id encoding and the model string. Use IORegistryExplorer to confirm that the properties appear under the GPU's PCI path. A common oversight is forgetting to add the compatible string for certain AMD cards—some require pci1002,6818 as a fallback. For Nvidia Kepler, ensure the board-id in your SMBIOS matches a Mac model that originally shipped with that GPU (e.g., MacPro6,1 for GTX 680). Without a matching board-id, the system may fall back to VESA drivers, resulting in no acceleration and a maximum resolution of 1024×768.
If you still see 7 MB VRAM after injection, double-check that your config.plist's DeviceProperties section is correctly placed under the right PciRoot path. A common mistake is using the wrong PCI path, especially on motherboards with multiple PCIe slots. Use gfxutil or Hackintool to find the exact path. Once everything is set, test with a GPU-intensive app like Geekbench or a video render to confirm full acceleration. If you encounter sleep/wake issues, refer to the AGPM editing guide linked above.
