Skip to content

Galeas/hackintosh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Hackintosh

My first Hackintosh was built in 2008 or 2009 and I only remember that it was very similar to the Frankestein's monster: Core 2 Duo CPU, some kind of AGP GPU, 4 GB of RAM. Neverthless it was able to run latest of iAtkos builds of OS X Tiger and vanilla OS X Leopard. The second version of Hackintosh was bult in 2013 and it's final EFI is in this repo. And the final version was built from scratch at December 2019. All of my Hackintoshes are able to dual-booting to Windows.

Version 2 and Version 3 first of all were built for the iOS and macOS development. So it's stability and work predictability was a key requirement. After all of these years using Hackintosh for the development I only can say that it worth it.

In this guide only the latest build of Hackintosh will be described. Don't forget to check the screenshots under the cuts out!

Table of Content

  1. ๐Ÿ‘ท The builds
  2. ๐Ÿ“€ Make installation media
  3. ๐Ÿ€ Clover installation
  4. โš™๏ธ Required kexts
  5. ๐Ÿ”ฎ Clover configuration
  6. ๐Ÿ›  Fix CPU Type in About This Mac
  7. โœ… What works
  8. ๐Ÿคฌ What doesn't work
  9. ๐Ÿ”ฅ Benchmarks

The builds

Birthday Autumn 2013
SMBIOS Model iMac14,2
Motherboard Gigabyte GA-Z87X-D3H
CPU Intel Core i5-4570
GPU XFX HD 5750
GPU Gigabyte R9-270X 2GB Windforce
RAM 2 x Team Elite DDR-3 1600 4 GB
WiFi / BT Broadcom BCM94360

Version 3 (PCPartPicker link)

Birthday December 2019
SMBIOS Model iMac19,1
Motherboard ASUS Prime Z370-A II
CPU Intel Core i7-9700K
GPU Sapphire RX 5700XT Nitro+
RAM 2 x Crucial DDR-4 3200 8 GB
WiFi / BT Broadcom BCM94360 -> Asus PCE-AX3000

Make installation media

  1. Download macOS Catalina installer from the Mac AppStore
  2. Format your USB (at least 16 GB) with Journaled HFS+ / GUID.
  3. Create native installer media with following
sudo "/Applications/Install macOS Mojave.app/Contents/Resources/createinstallmedia" --volume /Volumes/<#YOUR_USB_NAME#>

Clover installation

  1. Download the latest Clover Bootloader installer from HERE and Clover Configurator
  2. Clover installation options should be:
    • Install Clover for UEFI booting only
    • Install Clover to the ESP
    • UEFI Drivers
      • AptioMemoryFix
      • HFSPlus
      • ApfsDriverLoader

As far as I'm using Z370 chipset which had native NVRAM support, I don't need to emulate it. So leave the EmuVariableUefi unselected.

Required kexts

This section is very trivial for the modern hackintoshing :)

IMPORTANT Always use the latest versions of kexts, it can save you from some sleepless nights.

Clover configuration

As far as this tutorial is made after macOS Catalina 10.15.2, which natively supports RDNA GPUs, was released, we don't have to make different Clover configurations for installation and regular running of our hackintosh. Anyway, Clover's config.plist has very simple content in our case.

  • ACPI
    <key>ACPI</key>
    <dict>
        <key>DSDT</key>
        <dict>
            <key>Debug</key>
            <false/>
            <key>DropOEM_DSM</key>
            <false/>
            <key>Fixes</key>
            <dict>
                <key>FixShutdown</key>
                <true/>
                <key>FixWAK</key>
                <false/>
            </dict>
            <key>Name</key>
            <string>DSDT.aml</string>
            <key>Patches</key>
            <array>
                <dict>
                    <key>Comment</key>
                    <string>change XHCI to XHC</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    WEhDSQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    WEhDXw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>change XHC1 to XHC</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    WEhDMQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    WEhDXw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>change EC0 to EC</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    RUMwXw==
                    </data>
                    <key>Replace</key>
                    <data>
                    RUNfXw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>change GFX0 to IGPU</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    R0ZYMA==
                    </data>
                    <key>Replace</key>
                    <data>
                    SUdQVQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>change SAT0 to SATA</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    U0FUMA==
                    </data>
                    <key>Replace</key>
                    <data>
                    U0FUQQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>change PEGP to GFX0</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    UEVHUA==
                    </data>
                    <key>Replace</key>
                    <data>
                    R0ZYMA==
                    </data>
                </dict>
            </array>
            <key>ReuseFFFF</key>
            <false/>
        </dict>
        <key>DropTables</key>
        <array>
            <dict>
                <key>Signature</key>
                <string>DMAR</string>
            </dict>
            <dict>
                <key>Signature</key>
                <string>MATS</string>
            </dict>
        </array>
        <key>HaltEnabler</key>
        <true/>
        <key>SSDT</key>
        <dict>
            <key>DropOem</key>
            <false/>
            <key>Generate</key>
            <dict>
                <key>CStates</key>
                <false/>
                <key>PStates</key>
                <false/>
                <key>PluginType</key>
                <false/>
            </dict>
        </dict>
    </dict>
  • Boot I'd also recommend to use debug=0x100, keepsyms=1 and -v for an installation and post-installation debug.
    <key>Boot</key>
    <dict>
        <key>Arguments</key>
        <string>dart=0 darkwake=1 agdpmod=pikera</string>
        <key>Debug</key>
        <false/>
        <key>DefaultLoader</key>
        <string>boot.efi</string>
        <key>DefaultVolume</key>
        <string>LastBootedVolume</string>
        <key>Legacy</key>
        <string>PBR</string>
        <key>Secure</key>
        <false/>
        <key>Timeout</key>
        <integer>-1</integer>
        <key>XMPDetection</key>
        <string>Yes</string>
    </dict>
  • Cpu (explanation)
    <key>CPU</key>
    <dict>
        <key>Type</key>
        <string>0x0705</string>
        <key>UseARTFrequency</key>
        <false/>
    </dict>
  • Devices
    <key>Devices</key>
    <dict>
        <key>Audio</key>
        <dict>
            <key>Inject</key>
            <integer>11</integer>
            <key>ResetHDA</key>
            <true/>
        </dict>
        <key>Properties</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                    AwCYPg==
                </data>
                 <key>framebuffer-patch-enable</key>
                <data>
                    AQAAAA==
                </data>
            </dict>
        </dict>
        <key>USB</key>
        <dict>
            <key>AddClockID</key>
            <false/>
            <key>FixOwnership</key>
            <true/>
            <key>Inject</key>
            <true/>
        </dict>
    </dict>
  • Kernel and kexts patches
    <key>KernelAndKextPatches</key>
    <dict>
    <key>AppleIntelCPUPM</key>
    <false/>
    <key>AppleRTC</key>
    <false/>
    <key>Debug</key>
    <false/>
    <key>DellSMBIOSPatch</key>
    <false/>
    <key>KernelCpu</key>
    <false/>
    <key>KernelLapic</key>
    <false/>
    <key>KernelPm</key>
    <false/>
    <key>KernelXCPM</key>
    <false/>
    <key>KextsToPatch</key>
    <array>
        <dict>
            <key>Comment</key>
            <string>Enable TRIM for SSD</string>
            <key>Disabled</key>
            <false/>
            <key>Find</key>
            <data>
            AEFQUExFIFNTRAA=
            </data>
            <key>InfoPlistPatch</key>
            <false/>
            <key>Name</key>
            <string>com.apple.iokit.IOAHCIBlockStorage</string>
            <key>Replace</key>
            <data>
            AAAAAAAAAAAAAAA=
            </data>
        </dict>
    </array>
    </dict>
  • Rt Variables
    • ROM - UseMacAdd0
    • BooterConfig - 0x28
    • CsrActiveConfig - 0x67
  • SMBIOS: Generate SMBIOS for iMac19,1
  • System Parameters
    • Inject Kexts - Yes
    • โœ”๏ธŽ Inject System ID

NOTE: Fore more information you could visit Coffee Lake Vanilla Hackintosh Guide

Fix CPU Type in About This Mac

Credits goes to shiruken

For some reason, About This Mac and System Report do not properly identify the processor and list it as an Intel Core i9 instead of an Intel Core i7. This can easily be fixed by using Clover Configurator to set the CPU Type to 0x0705 and rebooting.

What works

  • Onboard audio
  • iMessage (with this guide)
  • Intel's QuickSync
  • HEVC
  • Wireless communications (because Broadcom BCM94360 is used in a real iMacs and supported natively)
    • WiFi
    • Bluetooth LE
    • Handoff
    • Continuity
    • AirDrop
    • Airplay
  • Ethernet
  • CPU's native power management
  • NightShift

What doesn't work

  • DRM video in Safari (Netflix and Amazon Prime)
    • works fine in Google Chrome

Benchmarks

  • Geekbench 5

  • Cinebench R20:

    • Single Core: 474
    • Multy Core: 3553
  • LuxMark (LuxBall): 30443

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published