Install macOS Moajve - fidele007/Asus-ROG-GL552VW-Hackintosh GitHub Wiki

Required materials

  • USB 2.0 flash drive of at least 8GB to create a bootable macOS installer
  • Access to a real Mac or a hackintosh (or, as a last resort, a macOS VM) to download and write Mojave installer files to the USB

Write Mojave installer to USB

  • Format the USB as a GTP partition with Disk Utility or with:
# repartition /dev/disk1 GPT, one partition
# EFI will be created automatically
# second partition, "install_osx", HFS+J, remainder
diskutil partitionDisk /dev/disk1 1 GPT HFS+J "install_osx" R

where /dev/disk1 is your USB disk. Check which one is yours with diskutil list

  • Copy the installer files:
sudo "/Applications/Install macOS Mojave.app/Contents/Resources/createinstallmedia" --volume  /Volumes/install_osx

where intall_osx is the name of your formatted USB flash drive.

This will take some time, so be patient. An alternative method is using UniBeast 9.0.0 to do all this automatically for you.

NOTE: In case the downloaded installer image is smaller than expected (normally it should be around 5-6GB), you're gonna need to open the installer app to download all the files (DO NOT RESTART when it asks you to).

Install Clover EFI bootloader

  • Get the latest version of Clover EFI bootloader
  • Install the bootloader by choosing Customize with the following options:
    • Clover for UEFI booting only
    • Install Clover in the ESP
    • UEFI Drivers
      • DataHubDxe-64
      • FSInject-64
      • SMCHelper-64
      • VBoxHfs-64: you're not gonna need this
      • ApfsDriverLoader-64
      • AptioMemoryFix-64
      • OsxAptioFix3Drv-64
      • OsxAptioFixDrv-64
      • OsxLowMemFixDrv-64
    • FileVault 2 UEFI Drivers
      • FirmwareVolume-64

You also need two other drivers in CLOVER/drivers64UEFI:

Essential kexts

All the above kexts are to be put in CLOVER/kexts/Other. Do not put them in any other folders lest they won't be loaded. In case you do not see your SATA drive in the installer, you're also going to need SATA unsupported kexts of which there are:

  • SATA-100-series-unsupported.kext
  • SATA-200-series-unsupported.kext
  • SATA-300-series-unsupported.kext
  • SATA-RAID-unsupported.kext

You can find all these kexts here

Clover Config.plist for Mojave installation

The included CLOVER/config_preinstall.plist contains all the necessary configurations needed to make it to the installer. Make sure to rename it to config.plist since Clover chooses config.plist by default.

Some details for the config file:

Boot arguments

  • dart=0: bypass Vt-d
  • -liludbgall: show all debugging info for Lilu kext (optional)
  • igfxdump: dump your graphics info using WhateverGreen.kext (optional)
  • -v: verbose mode to show everything happeneing under the hood. Enabling this is useful for debugging in case there is a problem.
  • keepsyms=1: tells OS to print the symbols on a kernel panic
  • debug=0x100: prevents a reboot on kernel panic
  • kext-dev-mode=1: allows unsigned kernel extensions (kexts) to load
  • shikigva=40: this flag is specific to the iGPU. It enables a few Shiki settings that do the following (found here):
    • 8 - AddExecutableWhitelist - ensures that processes in the whitelist are patched
    • 32 - ReplaceBoardID - replaces board-id used by AppleGVA by a different board-id

Kernel patches

The kernel patches I use:

<dict>
    <key>Comment</key>
    <string>MSR 0xE2 _xcpm_idle instant reboot(c) Pike R. Alpha</string>
    <key>Disabled</key>
    <false/>
    <key>Find</key>
    <data>
    ILniAAAADzA=
    </data>
    <key>Replace</key>
    <data>
    ILniAAAAkJA=
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Disable panic kext logging on 10.13 release kernel (credit vit9696)</string>
    <key>Disabled</key>
    <false/>
    <key>Find</key>
    <data>
    igKEwHRE
    </data>
    <key>MatchOS</key>
    <string>10.13.x</string>
    <key>Replace</key>
    <data>
    igKEwOtE
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Disable panic kext logging on 10.14 release kernel (credit vit9696)</string>
    <key>Disabled</key>
    <false/>
    <key>Find</key>
    <data>
    igKEwHRC
    </data>
    <key>MatchOS</key>
    <string>10.14.x</string>
    <key>Replace</key>
    <data>
    igKEwOtC
    </data>
</dict>

Kext patches

The kext patches I use:

<dict>
  <key>Comment</key>
  <string>change 15 port limit to 30</string>
  <key>Disabled</key>
  <false/>
  <key>Find</key>
  <data>
  g72M/v//EA==
  </data>
  <key>InfoPlistPatch</key>
  <false/>
  <key>Name</key>
  <string>AppleUSBXHCIPCI</string>
  <key>Replace</key>
  <data>
  g72M/v//Hw==
  </data>
</dict>
<dict>
  <key>Comment</key>
  <string>change 15 port limit to 26 in XHCI kext</string>
  <key>Disabled</key>
  <false/>
  <key>Find</key>
  <data>
  g710////EA==
  </data>
  <key>InfoPlistPatch</key>
  <false/>
  <key>MatchOS</key>
  <string>10.12.x</string>
  <key>Name</key>
  <string>AppleUSBXHCIPCI</string>
  <key>Replace</key>
  <data>
  g710////Gw==
  </data>
</dict>
<dict>
  <key>Comment</key>
  <string>change 15 port limit to 26 in XHCI kext</string>
  <key>Disabled</key>
  <false/>
  <key>Find</key>
  <data>
  g32MEA==
  </data>
  <key>InfoPlistPatch</key>
  <false/>
  <key>MatchOS</key>
  <string>10.13.0,10.13.1,10.13.2,10.13.3</string>
  <key>Name</key>
  <string>AppleUSBXHCIPCI</string>
  <key>Replace</key>
  <data>
  g32MGw==
  </data>
</dict>
<dict>
  <key>Comment</key>
  <string>disable port limit in XHCI kext (credit PMHeart)</string>
  <key>Disabled</key>
  <false/>
  <key>Find</key>
  <data>
  g32UDw+DlwQAAA==
  </data>
  <key>InfoPlistPatch</key>
  <false/>
  <key>MatchOS</key>
  <string>10.13.4,10.13.5</string>
  <key>Name</key>
  <string>AppleUSBXHCI</string>
  <key>Replace</key>
  <data>
  g32UD5CQkJCQkA==
  </data>
</dict>
<dict>
  <key>Comment</key>
  <string>change 15 port limit to 26 in XHCI kext (credit FredWst)</string>
  <key>Disabled</key>
  <false/>
  <key>Find</key>
  <data>
  g32UDw+DlwQ=
  </data>
  <key>InfoPlistPatch</key>
  <false/>
  <key>MatchOS</key>
  <string>10.13.4,10.13.5</string>
  <key>Name</key>
  <string>AppleUSBXHCI</string>
  <key>Replace</key>
  <data>
  g32UGg+DlwQ=
  </data>
</dict>
<dict>
  <key>Comment</key>
  <string>disable port limit in XHCI kext (credit RehabMan, based prior PMHeart patch)</string>
  <key>Disabled</key>
  <false/>
  <key>Find</key>
  <data>
  g32IDw+DpwQAAA==
  </data>
  <key>InfoPlistPatch</key>
  <false/>
  <key>MatchOS</key>
  <string>10.13.6</string>
  <key>Name</key>
  <string>AppleUSBXHCI</string>
  <key>Replace</key>
  <data>
  g32ID5CQkJCQkA==
  </data>
</dict>
<dict>
  <key>Comment</key>
  <string>disable port limit in XHCI kext (credit PMHeart)</string>
  <key>Disabled</key>
  <false/>
  <key>Find</key>
  <data>
  g/sPD4MDBQAA
  </data>
  <key>InfoPlistPatch</key>
  <false/>
  <key>MatchOS</key>
  <string>10.14.x</string>
  <key>Name</key>
  <string>AppleUSBXHCI</string>
  <key>Replace</key>
  <data>
  g/sPkJCQkJCQ
  </data>
</dict>
<dict>
  <key>Comment</key>
  <string>Enable TRIM for SSD</string>
  <key>Disabled</key>
  <true/>
  <key>Find</key>
  <data>
  AEFQUExFIFNTRAA=
  </data>
  <key>InfoPlistPatch</key>
  <false/>
  <key>Name</key>
  <string>IOAHCIBlockStorage</string>
  <key>Replace</key>
  <data>
  AAAAAAAAAAAAAAA=
  </data>
</dict>
<dict>
  <key>Comment</key>
  <string>Skylake APIC fix, discovered by Pike R. Alpha</string>
  <key>Disabled</key>
  <false/>
  <key>Find</key>
  <data>
  wegQD7bw
  </data>
  <key>InfoPlistPatch</key>
  <false/>
  <key>Name</key>
  <string>AppleAPIC</string>
  <key>Replace</key>
  <data>
  vhcAAACQ
  </data>
</dict>

SMBIOS

Choose a Mac model that's most compatible with your version of macOS. I use iMac17,1. Use Clover Configurator for easy configuration of your SMBIOS.

BIOS Settings

  • Disable Fastboot
  • Disable Secure Boot
  • Disable VT-d
  • Disable Intel Virtualization Technology

Will all these configurations in place, you should be able to boot into the installer and install your macOS. To avoid USB problems, plug the bootable USB into the USB 2.0 port, which is on the right side of the laptop, instead of the USB 3.0 ports.

Also, keep in mind that in Mojave, Apple has removed the possibility to install to a HFS partition and force install to an APFS partition instead.

Rant: APFS is shitty because so far it's not fully documented, so if you have any problem, which Hackintoshers are prone to have regularly after each OS update, and the superficial Disk Utility's first aid does not help, well you're fucked because you cannot rely on other more powerful third-party disk repair tools like DiskWarrior which currently does not support APFS repair thanks to Apple. I personally ran into this problem where after a system update, my file structure somehow gets corrupted and Disk Utility couldn't do shit. So, the takeaway from this is to prepare yourself for the consequences when you decide to do any system update on your Hackintosh. End rant.

⚠️ **GitHub.com Fallback** ⚠️