Clover is a EFI-based bootloader Hackintosh that runs Mac osx on normal PC hardware created as a replacement to EDK2/Duet bootloader http://www.tianocore.org . It has support for both Legacy BIOS and UEFI.
- Using UEFI BIOS or own CloverEFI
- Default boot after timeout into previous chosen OS
- Customizable GUI: themes support, own icons, fonts, background image, animated pictures, mouse pointers.
- F1 – multilingual help, depending on language in config
- Saving preboot.log from GUI by typing F2 and system.log for debug
- Save original (OEM) ACPI tables by pressing F4
- Sest DSDT patching with F5
- Save video BIOS into EFI/misc by pressing F6
- Saving screenshots from GUI typing F10
- CD/DVD eject by F12 and refresh menu after CD insertion
- Change GUI resolution by PgUp/PgDown
- Save BOOT0000 option to NVRAM
- Call to Shell.efi
- Native screen resolution in GUI
- Scroll bar if screen resolution is too low for menu
- Theme database http://clover-wiki.zetam.org/Theme-database
- Boot into 10.4 – latest OSX, Windows EFI and Linux EFI
- Boot into LegacyOS (WindowsXP, Linux, DOS) by their bootsectors
- Ability to patch DSDT on boot OSX.Custom DSDT will be loaded from booted partition or from EFI folder
- ACPI tables loading (SSDT-xx, APIC, BOOT, SLIC, SLIT, SRAT, UEFI…)
- Ablity to inject GPU properties , USB fix, EDID, HDA id, HDMI fix, PCIRootUID, Ethernet Built-in and many more.
- Can Patch kext “on the Fly” with edited them manually.
- Extra kexts loading without having put into S/L/E.
- Patch kexts inside kernelcache/Prelinked kernelcache for unsupported hardware
Installer and Installation:
Clover installer file system is in .pkg .Download installer from link below.
Installation for clover is simple.So lets start install clover.The pkg only work in osx.
1.Run installer that you downloaded
2. Press continue and when you reach the customization section.
3. Change the install location ,where you want to install clover then press “Customize“
4. Read carefully the instructions given for each option after you select a entry at the bottom of the window.
Bootloader Options in details:
1. Install for UEFI motherboards : This option disables the installation of boot files.Most newer MOBOs has UEFI.So its better to this Option.
2. Install Clover in the ESP: Its install clover boot and config files into EFI partition is available (GPT partitioned drive).If unchecked clover will install in Root or “/” of selected HDD.
3. Bootloader :This is valid for BIOS booting.For older bios aka legacy BIOS.
- Dont Update MBR and PBR sectors: Don’t install any bootloader (boot0X, boot1X).
Useful for UEFI motherboards that don’t need bootloader files.Can also be used if you don’t want to upgrade MBR or PBR sectors.
- Install boot0af in MBR: Boot utilizing boot0af (searching an active partition) and active flag will be set on selected HDD/partition.
- Install boot0ss in MBR: Boot utilizing boot0ss (searching an HFS+ partition, even if it is not active. Useful for dual-boot configuration.
4. User alternative booting PBR : Read here
5. CloverEFI: Choose the loader’s bit depth: 32-bit or 64-bit.
- CloverEFI 32-Bits: CloverEFI 32-bits.
- CloverEFI 64-Bits SATA: CloverEFI 64-bits using SATA to access drives.
- BiosBlockIO: For computers with a non-standard SATA controller.
6. Drivers32 : Driver for 32 bit System.Most like you not need them but its there.
7. Drivers64 : Driver for 64 bit System.
8. Drivers64 UEFI : Drivers for UEFI system and some of the most important driver you have to choose from here.
These are the drivers that helps clover boot properly.You do not need them all in one.
NTFS file system driver. Provides the possibility to load Windows EFI.
HFS+ file system driver. Necessary for booting Mac OS X Bootloader will run faster and this is what apple uses.
Legal alternative for HFSPlus.efi. May be slower.
EXT2/3 file system driver. Necessary for booting Linux EFI VBoxExt4.efi EXT4 file system driver. Necessary for booting Linux EFI
Takes control of the file system for the possibility to inject external kexts into the system.
Already present in CloverEFI and in UEFI, however neither optimized for Apple partitions, nor for GPT/MBR. Most probably.
Enables starting of FAT modules like boot.efi.
Fixes memory map created by AMI Aptio EFI.
Another driver to Fixes memory map created by AMI Aptio EFI.
Simplified variant of OsxAptioFixDrv. Do not use both simultaneously.
Emulate NVRAM for OS X, this may not be needed on your system if you have native NVRAM ( Try without to test system boot or not)
PS2Mouse*.efi, PS2MouseAbsolute*.efi, UsbMouse*.efi
Set of drivers for mouse/trackpad/touchpad support in CloverGUI. They have no effect on the OS.
Already present in CloverEFI and possibly in UEFI. The recommendation is to use anyway, no conflict will arise.
Video driver for providing a wider set of resolutions than the ones present in UEFI.
9. Themes: Choose as you like
10. Install RC scripts on target volume – These are the scripts rc.local and rc.shutdown.local that are executed while starting and while exiting OS X. if you want use custom scripts,then this might help a lot.
11. Install all RC scripts on all other bootable OSX volumes : Same s above but for multiple Mac OS X systems are installed.
12. Install Clover Preference Pane : Preference panel under System Preference that helps with updating Clover, with choosing a theme and with setting NVRAM variables.
Its better to use BootDiskUtility.exe by cVaD for installation and will help you to format a flash drive on Windows.
Clover Configuration :
This is the most important part of clover bootloader aka heart of it.It contains BOOT and Clover Folder .
Clover can do lots of stuff before OS boots.Like kext patching ,DSDT fixes and more. Here you can find most commonly needed to run hackintosh.
Here i only mention ‘important’ options for beginners.For deep visit Clover wiki.
Booting system :
While booting or restarting a PC, Clover loads operating system as below
Option A: BIOS-based PC (old motherboards)
OSLoader is boot.efi in case of Mac OS X and bootmgr.efi in case of Windows.
Option B: UEFI-based PC (newer motherboard)
ACPI (Advanced Configuration and Power Interface).The specification enables new power management technologies to evolve independently in operating systems and hardware while ensuring that they continue to work together.
Here in clover Dumps or patches DSDT ,SSDT or other ACPI tables.This mostly used custom DSDT and SSDT for hackintosh.
- Original (saves all the Original ACPI tables is you use F4 at boot)
- Patched (Put you custom/patched DSDT,SSDT here)
- Windows (Put windows tables, like SLIC.aml here.Only need if you use SLIC windows license )
The main configuration file that loads all clover settings for OS is named “config.plist“this where all the nobs and button you have to configure.
Location for config.plist:
/EFI/CLOVER/OEM/Your_motherboard_name/config.plist ( Advance user )
N.B : In clover “true” means inject/patch and “false” do not and used for some OOB Hardware .
Soft used for editing config.plist are :
Text Edit , PlistEditor, Xcode, TextWrangler,Clover Configurator
All DSDT patches you can edit here.Parameter group for various corrections of ACPI tables.Bit complicated new user advised to not use.but if want more information.
If you are using custom SSDT the change settings below.
<key>SSDT</key> <dict> <key>DropOem</key> <false/> <key>EnableC6</key> <true/> <key>Generate</key> <dict> <key>CStates</key> <false/> <key>PStates</key> <false/> </dict> </dict>
Boot contains all the settings.Like boot flags, legacy settings, boot volume, loader option etc.Important are …..
- Arguments ( You can add “Boot Flags” and “Kernel Flags” to be used by the system)
- DefaultVolume (default boot volume entry in Clover GUI.Add the name you want to boot default .e.g Yosemite)
<key>Boot</key> <dict> <key>Arguments</key> <string>kext-dev-mode=1 -v npci=0x2000 dart=0</string> <key>DefaultVolume</key> <string>Yosemite</string> <key>Log</key> <false/> <key>Secure</key> <false/> <key>Timeout</key> <integer>5</integer> <key>XMPDetection</key> <false/> </dict>
For tweaking setting affecting PCI devices.important option are …
- FakeID (Changes PCI properties DeviceID and VendorID for the device will work with native drivers.)
<key>FakeID</key> <dict> <key>ATI</key> <string>0x0</string> <key>IMEI</key> <string>0x0</string> <key>IntelGFX</key> <string>0x0</string> <key>LAN</key> <string>0x0</string> <key>NVidia</key> <string>0x0</string> <key>SATA</key> <string>0x0</string> <key>WIFI</key> <string>0x0</string> <key>XHCI</key> <string>0x0</string> </dict>
- Audio (Property injection for the sound chip codec ids into DSDT under HDEF .use the codec you want to inject in for Audio.)
<key>Audio</key> <dict> <key>Inject</key> <string>1/5/887</string> </dict>
- USB ( Injects USB properties on DSDT.helpful if usb not working properly.better to use all ‘true’.
<key>USB</key> <dict> <key>AddClockID</key> <true/> <key>FixOwnership</key> <true/> <key>Inject</key> <true/> </dict>
This enables patching on-the-fly.Mean you have choose option and clover will do the patches needed to run os.Booting with kernel cache or with the key NoCache.Important option are….
- KernelCpu (Patches kernel panics related to an unsupported CPU like Yonah, Atom or Haswell for old systems)
- FakeCPUID (Fake CPUID is intended to be a replacement for the Kernel CPU patch)
- AsusAICPUPM ( Unlocks/patches restriction the use of MSR register 0xE2 in power management for Sandy/Ivy Bridge systems)
- AppleRTC (Prevents BIOS CMOS reset on sleep or reboot)
- KernelLapic (HP notebooks have lapic problems, which can be solved by using the boot parameter
- KernelHaswellE (Patch gets rid of the blocking compatibility check)
- KernelPm (Kernel power management patch for Haswell with locked msr)
- KextsToPatch (Apart from the built-in patches you can create your own ones providing following data: the binary file name, the data to find and the data to replace with – both in hexadecimal. one of the best patch you can made yourself )
<key>KernelAndKextPatches</key> <dict> <key>AppleRTC</key> <true/> <key>KernelCpu</key> <true/> <key>AsusAICPUPM</key> <true/> <key>KernelLapic</key> <false/> <key>KernelPM</key> <true/> <key>KernelHaswellE</key> <false/> <key>KextsToPatch</key> <array> <dict> <key>Comment</key> <string>External icons patch</string> <key>Find</key> <data>RXh0ZXJuYWw=</data> <key>Name</key> <string>AppleAHCIPort</string> <key>Replace</key> <data>SW50ZXJuYWw=</data> </dict> </array> </dict>
This section deals with or defining runtime variables affecting Apple services or Clover itself. Importance are….
- MLB (Digits and letters, 17 in length, describing the motherboard’s serial number. No special rule exists here. The best option is to choose a real serial number and to replace digits in the middle)
- ROM (Twelve hexadecimal digits, often corresponding to the MAC address of the ethernet card. this value can be random and you can use Lan and WiFi MAC by selecting
- CsrActiveConfig (Controls System Integrity Protection aka SIP) best value to use for installation 0x67 )
Used to mask your PC as a Mac. Clover will do this task automatically based on the given processor, video card and signs of mobility. Custom settings also helps with CPUPm,Graphics and more functionality.
Used for inject many option at over all system like UUID,kext injection etc
- InjectKexts (This key defines the global policy regarding kext injection.Better to chose Yes if you have kext in /EFI/CLOVER/kexts/ folder )
This all basics you need to run clover as a beginner.Try it and have fun.
Post comment if you have issues
Main project :
Clover thread here
Clover is developed by Silce and apianti, JrCs ,asava, jadran, crazybirdy, dmazar, blackosx, blusseau, zenith432 and many others from osx community.