Jump to content

Clover Change Explanations

141 posts in this topic

Recommended Posts


Rev 3208 by Apianti

Fix enable secure boot, should work now.

Rev 3210-3214

Implemented Proportional font width.

It must be set in every theme.plist

	<string>Main metallic looking theme</string>

It will be better if CharWidth will be even value to avoid dirty.

The best if CharWidth = FontWidth - 2



Fixed width

Screen Shot 2015-05-29 at 10.06.49.png


Screen Shot 2015-05-29 at 14.47.28.png


Share this post

Link to post
Share on other sites

Rev 3222

load specific ROM for nvidia cards, ©ErmaC


Implemented a possibility to load ROM with name specific to subvendor_id

It allows to keep a database of different ROMs in one place.

For example



Rev 3222 - 3224.

Implemented NvidiaGeneric names. Idea by ErmaC.


If this true then generic name for Videocard will be used. For example instead of

Gigabyte Geforce 7300LE 

I see

NVIDIA Geforce 7300LE



Rev 3224

Implemented NvidiaSingle

If you have two cards Nvidia and wants to inject only first one :rofl:   then you can set this parameter.


Share this post

Link to post
Share on other sites

Rev 3250


New runtime variables needed for El Capitan and Yosemite.


Bit definitions are follow

For CsrActiveConfig

/* Rootless configuration flags */
#define CSR_ALLOW_UNTRUSTED_KEXTS     (1 << 0)
#define CSR_ALLOW_UNRESTRICTED_FS     (1 << 1)
#define CSR_ALLOW_TASK_FOR_PID        (1 << 2)
#define CSR_ALLOW_KERNEL_DEBUGGER     (1 << 3)
#define CSR_ALLOW_APPLE_INTERNAL      (1 << 4)
#define CSR_ALLOW_DESTRUCTIVE_DTRACE	(1 << 5) /* name deprecated */

                          CSR_ALLOW_UNRESTRICTED_FS | \
                          CSR_ALLOW_TASK_FOR_PID | \
                          CSR_ALLOW_KERNEL_DEBUGGER | \
                          CSR_ALLOW_APPLE_INTERNAL | \
                          CSR_ALLOW_UNRESTRICTED_DTRACE | \

For example bit 0 (value 0x01) allows to use unsigned kexts from /Library/Extensions folder.


For BooterConfig there are flags

/* Bitfields for boot_args->flags */
#define kBootArgsFlagRebootOnPanic    (1 << 0)
#define kBootArgsFlagHiDPI            (1 << 1)
#define kBootArgsFlagBlack            (1 << 2)
#define kBootArgsFlagCSRActiveConfig	(1 << 3)
#define kBootArgsFlagCSRPendingConfig	(1 << 4)
#define kBootArgsFlagCSRBoot          (1 << 5)
#define kBootArgsFlagBlackBg          (1 << 6)
#define kBootArgsFlagLoginUI          (1 << 7)

This flags is analyzed by boot.efi not by kernel and present in boot_args that read by kernel.

Yosemite kernel has follow usage of this flag

csr_get_active_config(csr_config_t *config)
	boot_args *args = (boot_args *)PE_state.bootArgs;
	if (args->flags & kBootArgsFlagCSRActiveConfig) {
		*config = args->csrActiveConfig & CSR_VALID_FLAGS;
	} else {
		/* XXX: change to 0 when <rdar://problem/16239698> is in the build */

	return 0;

Setting the bit 0x20 is equivalent to kernel flag "rootless=0" (Yosemite kernel)

	boot_args *args = (boot_args *)PE_state.bootArgs;
	if (args->flags & kBootArgsFlagCSRBoot) {
		/* special booter; allow everything */
		csr_allow_all = 1;

	int rootless_boot_arg;
	if (PE_parse_boot_argn("rootless", &rootless_boot_arg, sizeof(rootless_boot_arg))) {
		/* XXX: set csr_allow_all to boot arg value for now
		 * (to be removed by <rdar://problem/16239861>) */
		csr_allow_all = !rootless_boot_arg;
		/* if rootless=1, do not allow everything when CSR_ALLOW_APPLE_INTERNAL is set */
		csr_allow_internal &= !rootless_boot_arg;

There is still the question what is changed in El Capitan as we have no the sources.

Share this post

Link to post
Share on other sites

Rev 3262

I wish to propose new way to inject device properties.

For backward compatibility old way is still working.


New way advanced user will be able to make different injection for two graphics cards even if they are similar. It is not possible for rev

As well there is a possibility to inject properties for non-standard device (TVTuner?).


Detailed instructions will be in Clover Instructions thread ASAP.

Screen Shot 2015-08-24 at 15.42.14.png

Share this post

Link to post
Share on other sites

Rev 3264

Compatibility with new EDK2 18475 (and more?).

New compiled legacy boot tested on G41M-ES2H motherboard.


Rev 3265

Add slot name into System Profiler for HDMI device on AMD or Nvidia videocards to avoid PCI device error...

Share this post

Link to post
Share on other sites

Rev 3266

A task: Mavericks and ElCapitan use different framebuffers so ATIConnectorData must be different.

As well FakeCPUID needed for Mavericks is not needed for ElCapitan.

Users must have an ability to load different config.plist for different systems.

Moreover I may propose different configs for similar systems on different volumes.

Or just two entries with different configs without manual switch settings.

That is.

Now we can write name of config into Custom Entry (without .plist extensions!). Tested on Lion computer.

Screen Shot 2015-09-16 at 14.38.50.png

a line Settings=special mean a file special.plist which is the same as config.plist but with other values.

GUI looks like this


First entry has SubEntries with a possibility to return to common setting from common config.plist.



Choosing common or special setting I can boot same system with two different settings.

In my demo this is different VideoCard names. NvidiaGeneric=true/false


In this demo I used file special.plist.

It may be ElCapitan.plist or config-666.plist or any other to your taste.


One note, this plist should not contain sections Boot and GUI.

Share this post

Link to post
Share on other sites

Rev 3269.


I have to make one backward incompatibility with previous versions.

If you had KernelAndKextPatches section inside Custom entries then now you you follow instructions for rev 3266 and move these patches to separate config.

Else it will not work and you will have only common patches.


So KernelAndKextPatches section is in config.plist as main section and not in subsection.


It is needed as I debugged a crash in it.

PS. It also means nobody used it before ;)

Share this post

Link to post
Share on other sites

By default, when Clover scans your partitions for loaders, each volume found is checked for Linux installations. This check takes a short time, but becomes more noticeable with the more volumes you have. And using a theme with larger icons, for example BGM256, takes even longer.


Commit #3325 adds the option for you to disable the scan for Linux installations if you know you don’t have any.


To disable the scan, you can now add Linux=false to the GUI->Scan section of your config.plist.

Legacy booting now loads the GUI 2 seconds faster for me.

Share this post

Link to post
Share on other sites

Up to revision 3306 there was internationalizations.


Rev 3309

Workaround for core count calculations.


Rev 3314

Added file boot1f32 to ISO. It was not here before!


Rev 3319

As I successfully created Clang-3.8 from llvm sources I made changes to have a possibility to compile Clover by this new compiler.

Also synchronisation with recent EDK2.


Rev 3321

Add an item into Clover menu for instant set *-platform-id  which used as ig-platform-id or snb-platform-id.


Rev 3325

Speedup boot by disabling linux scan


Rev 3326

implement Function Disable


For those who knows what is it. RCBA 3418.


Rev 3327

check disabled patches, by cecekpawon

If you have many patches in config.plist then you can Enable/Disable then by one click


Rev 3328

Same for DSDT patches


Rev 3329

add switch for string injection by cecekpawon


It is added in Clover menu for easy on/off


Rev 3330

Don't dump useless OperationRegions


Rev 3333

Added support for other Intel CPU.


Rev 3334-3336

new GetBiosRegions by Rehabman


This resolves some bugs with FixRegion DSDT patch.


Rev 3338

Compatibility with recent EDK2, because of changes in Autogen.py build tool.


Rev 3348

OsxAptioFixDrv: Align the stack to a 16-byte rather than a 8-byte boundary

patch by Download-Fritz

Assuming resolved some bugs.


Rev 3350

Turbo can be disabled


It can be useful for mobile computers at hot weather.



Rev 3356

Introduce calculation for ARTFrequency used in ElCapitan and present on Skylake computers.


Rev ...-3358

I found many bugs with core count calculation and only in this revision I corrected a reason for this.

It is very old bug, at least 4 years, introduced I didn't remember where and whom.

CPUID_4 can't be used for core count calculations.


Rev 3359-3362

Resolve a  SMBIOS patching bug when OEM reused same strings.


Rev 3363

I have Clover sources on volume MacHD while work in volume ElCapitan.

This patch permit me to compile Clover from other volume.


Rev 3365-3368

Introduce new SMBIOS table type 133 to inject "platform-feature" property into registry. Used by ElCapitan.


This is integer value that should be same as in real Macs.


Rev 3369

Compatibility with Xeon E5 v4

Rev 3372

Don't create empty _DSM method if NoDefault properties set.

patch by cecekpawon


Rev 3374

A possibility to not inject ARTFrequency introduced by rev 3356 if calculated value is not good somehow


Share this post

Link to post
Share on other sites

Rev 3471


After an investigation of va_args, here's what I found


  • The difference between __builtin_va_args and __builtin_ms_va_args is that __builtin_va_args passes va_list by reference (i.e. pointer) from caller to callee when va_list is used as a function parameter.  __builtin_ms_va_args passes va_list by value (which is similar to making an implicit va_copy before passing it.)
  • The C standard allows passing va_list by either value or reference.
  • When va_list is passed by reference, calls to va_arg inside the callee change the caller's va_list.
  • The reason __builtin_va_args was failing with clang builds is due to an error in DevicePathToText.c which passes va_list twice as a parameter without va_copy.
  • I corrected this error, along with other errors in use of va_list I found.
  • As a result, it is now possible to use __builtin_va_args with clang.
  • There is a 2nd issue, which is that __builtin_ms_va_args is intended to allow ms_abi functions to pass their va_list as a parameter when calling sysv_abi functions.  This is not an issue with clang, because clang build uses ms_abi on all functions.  In gcc build, functions declared as EFIAPI are ms_abi - all others are sysv_abi.  So in gcc build, it is necessary to use __builtin_ms_va_args.
  • I set things up so clang build uses __builtin_ms_va_args for Windows64 builds on newer versions known to support these keywords.  On all other clang builds, __builtin_va_args is used.

It is now possible to build Clover with -xcode5 using versions of Xcode prior to 7.3 - as long as DevicePathToText.c is patched from Patches_for_EDK2.


Additionally, the problem of GetEfiBootDeviceFromNvram hanging was fixed in rev 3466.  In rev 3470 I added some validation checks to prevent hanging if invalid device paths are stored in nvram.

Share this post

Link to post
Share on other sites

Rev 3474 by cecekpawon

Print information line about building Clover options.


Rev 3476 

C1E fix for AMD CPU. Noted by Bronya, implemented in OpenSolaris.


Several next commits devoted to good compilation with XCODE5 toolchain.


Rev 3487 and 3514

Support for DDR4 by Joe van Tunen


Rev 3499 and 3518

Fill SMBIOS tables entries with data from MacPro3,1 if not defined by user in the case the model is not known for Clover.


Rev 3505

Link Time Optimization can be disabled for xcode5 toolset by a compile-time flag  --no-lto.

It can be needed for older Xcode versions older then 7.3.

It doesn't affect gcc compilation.

Rev 3519 by cecekpawon


Share this post

Link to post
Share on other sites

*** Rev 3327


Added example








Rev 3372

Originally NoDefaultProperties is to create (which still unknown purposes until now) an empty _DSM on each device injected from Clover. From now, we remove em all & switch this function to "SKIP injecting some default extra/additional properties" by Clover. For example, if user have NoDefaultProperties to TRUE & inject NVIDIA to TRUE, then Clover will SKIP inserting extra "connector-type" into registry. However, you still able to do this by hand with "AddProperties" entries like below:








Rev 3399

BootDisplay: To fix ugly 2nd stage boot or even black screen before login screen, we add new "BootDisplay" (a shorthand for "@x,AAPL,boot-display") property into config (value range: 0 - [totalports-1]). For years people did this job via D/SSDT / EFI Strings injections (Apple style), but no more. Before, Clover only set this properties to port 0 by default, which may lead problem if your currently active port (connected to display) other than port 0.

VideoPorts: We have now full (NVIDIA, ATI to follow) functionality to parse & set its properties dynamically from amount of display ports by user defined.

Able to inject Intel/Integrated-GPU even its not set to primary in BIOS by using blank FB (find more here).








Rev 3456

Introduced on 2012 (but seems improperly documented) to set multiple cards fixed properties. Adjust some keys + add more values like: "LoadVBios" & "VideoPorts" for each card (NVIDIA, ATI to follow).




      <string>Quadro FX 380</string>
      <string>YOUR_SECOND_CARD_SUB_ID(if necessary)</string>
      <string>ATI Radeon HD6670</string>




Rev 3490

More adjustment to batch script (wrote by @apianti, please follow this WIKI for min requirements) to compile Clover under Windows. Tested with VS2012, VS2013 & VS2015 with some additional features:




 /--------------------- [ WINDOWS BATCH SCRIPT FOR BUILDING ] ---------------------\

          .d8888b.  888      .d88888b.  888     888 8888888888 8888888b.
         d88P  Y88b 888     d88P   Y88b 888     888 888        888   Y88b
         888    Y88 888     888     888 888     888 888        888    888
         888        888     888     888 Y88b   d88P 8888888    888   d88P
         888        888     888     888  Y88b d88P  8888888    8888888P
         888    d88 888     888     888   Y88o88P   888        888 T88b
         Y88b   88P 888     Y88b. .d88P    Y888P    888        888  T88b
          Y888888P  88888888 Y8888888P      Y8P     8888888888 888   T88ba

 \------------------------------ [ Under rev: 3525 ] ------------------------------/

--usage : print this message and exit
--version : print build version and exit
-h, --help : print build help and exit

-n, --threadnumber <THREADNUMBER> : build with multi-threaded [default CPUs + 1]
-t, --tagname <TOOLCHAIN> : force to use a specific toolchain
-a, --arch <TARGETARCH> : overrides target.txt's TARGET_ARCH definition
-p, --platform <PLATFORMFILE> : build the platform specified by the DSC argument
-d, --define=<MACRO>, ex: -D ENABLE_SECURE_BOOT
-b, --buildtarget <BUILDTARGET> : using the BUILDTARGET to build the platform, or:
                        --debug : set DEBUG buildtarget
                      --release : set RELEASE buildtarget

--vbios-patch-cloverefi : activate vbios patch in CloverEFI
--only-sata0 : activate only SATA0 patch
--std-ebda : ebda offset dont shift to 0x88000
--genpage : dynamically generate page table under ebda
--no-usb : disable USB support
--mc : build in 64-bit [boot7] using BiosBlockIO (compatible with MCP chipset)

--cygwin : set CYGWIN dir (def: c:\cygwin)
--nasmprefix : set NASM bin dir (def: c:\cygwin\bin)
--pythonhome : set PYTHON dir (def: c:\Python27)
--pythonfreezer : set PYTHON Freeze dir (def: c:\Python27\Scripts)
--nobootsector : skip create Bootsector (need Cygwin)
--updtools : udate basetools binaries from repo
--updedk : update EDK source from repo
--updclover : update CLOVER source from repo
--edk2setup : using Edk2Setup.bat instead of edksetup.bat
--edk2rebuild : soft compile basetools binaries
--edk2forcerebuild : hard compile basetools binaries
--edk2reconfig : recover target.txt, tools_def.txt and build_rule.txt from template




Rev 3519

Dynamically to en/disable SSDTs (under ACPI\patched folder) injections via GUI menu (under "Tables dropping ->") / config.plist







Share this post

Link to post
Share on other sites

Rev 3536


Added F1 - Help text in the bottom left corner of GUI. Adjust within theme.plist


Added "System Variables" GUI sub menu. Contain: "BooterConfig" & "CsrActiveConfig".
Set "ExposeSysVariables" to TRUE in Config:SystemParameters to expose more. Current: "MLB", "ROM", "CustomUUID" & "InjectSystemID".


Share this post

Link to post
Share on other sites

Rev 3537


Do you like proportional fonts? Depends on...

Vertical menu looks better with constant width fonts.

Other text with proportional.

So I made questionable change that options menu will switch font to constant width with char width set in Theme.plist.

While Help, About and Boot information will be proportional or no depends on Theme.plist. In this case char width doesn't matter.


Share this post

Link to post
Share on other sites

Rev 3549


A task: I wanted to create USB stick with Windows UEFI installation. It is proposed to use on legacy PC BIOS-based so the stick is bootable by Clover.

So I took usual stick 4Gb OEM formatted to FAT32 one partition and install Clover 3543 on it. Full success! The stick is bootable and can start OSX on HDD.

There is a big problem to copy Windows distribution on it because it contains a folder BOOT/ while the stick contains file BOOT which is Clover itself. They can't live together.


The solution is to rename BOOT -> BOOT5 and replace boot sector boot1f32 by the new one boot1f5 which is the same but booting BOOT5 by default.

Installation instructions are old


Suppose your USB stick is disk3


sudo -s

dd if=/dev/rdisk3s1 count=1 bs=512 of=/tmp/origbs

cp boot1f5 /tmp/newbs
dd if=/tmp/origbs of=/tmp/newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
dd of=/dev/rdisk3s1 count=1 bs=512 if=/tmp/newbs

Share this post

Link to post
Share on other sites

Rev 3561 - first Sierra compatible revision


Rev 3577

Legacy boot improvements.


Legacy boot is a process to boot OSes through 16bit instructions in real mode like it did old PC BIOS-based computer before Clover, before UEFI.

It was needed to boot Windows XP or Windows 7-32bit, old Linux or modern systems if the drive formatted to MBR Partition Table.

But Clover is already 32/64bit program working in EFI environment in protected mode. It can't get back to real mode. To do this we made a trick with loading PBR boot sector and start it in real mode.

It's a pity it is not always work because devices like SATA controller occur in undefined state. :(


There was three methods for Legacy boot before "LegacyBiosDefault", "PBRtest", "PBR" set by config.plist


"LegacyBiosDefault" assumed UEFI BIOS with CSM module capable to do LegacyBoot.

"PBR" is the most commonly used method for legacy Clover. I have one computer with PATA drive working with this method.

"PBRtest" is somehow different. May be someone will be happy with it.


Now I propose one more method "PBRsata". It is the same as "PBR" but making a SATA reset before boot. AFAIK the SATA controller is a main reason why legacy boot is not working.

Hope someone will be happy.


PS. The version is released.

Share this post

Link to post
Share on other sites

Rev 3580
make kext patches to be OS dependent, by Micky1979


Author's post  #880 

and further discussions.



Rev 3586

Bootcamp style for Clover menu

implemented by Needy

initial post   #485  

Rev 3600

Theme list scroll support


screenshot4.png screenshot5.png




Share this post

Link to post
Share on other sites

Rev 3603

Delayed preboot.log.


Before if we press F2 we immediately save preboot.log. It occured before many patches applied.

Since 3603 press F2 just remember that the log will be saved and this will occur at the OS started. Much more lines will be visible. Some lines we never saw starting Windows as full boot.log is not accessible in this operating system.


How it looks now

5:229  0:010  GUI ready
6:242  1:013  UpdateScroll on 0
9:525  3:282  ParseBootOption: invalid boot variable
9:525  0:000  BootOption of the entry is empty
9:525  0:000  StartLoader() start
9:525  0:000  Finally: Bus=200832kHz CPU=2400MHz
9:525  0:000  Loading bootmgfw.efi  status=Success
9:751  0:225  Closing events for Windows
9:751  0:000  OtherOS: Found Acpi 2.0 RSDP 0xCFB13000
9:751  0:000  RSDT at CFEE3040
9:751  0:000  XSDT at 0
9:751  0:000  FADT pointer = CFEE30C0
9:751  0:000  Removed efi-boot-device-data variable: Success
9:751  0:000  Closing log

Share this post

Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By RougeOne
      Budget Workstation MacOS 10.14.1 build: z370 AORUS Gaming 5 - i5-8600K - RX 580 - UHD 630
      flawless iGPU/dGPU integration, fast FCPX editing/rendering, great overall performance for ~$1200 / ~£1000
      Update: updated WhateverGreen and Lilu, then updated OS to 10.14.3 and everything is fine! Even iMessage, which previously I hadn't been able to make work, is now working - possibly the update flushed the NVRAM?
      I'm gonna come straight out and admit it - I used newb tools which are considered taboo on InsanelyMac, and so this isn't so much an installation guide as it is a green flag to anyone considering the same hardware. My first and previous Hackintosh project was just over ten years ago and this site was massively helpful, so this is my (very small) way of giving back.
      CPU: Intel i5-8600K 3.6GHz hexacore (contains UHD 630 iGPU)
      CPU Cooler: be quiet! Pure Rock Slim (no paste needed, and fan facing front)
      Mobo: GIGABYTE z370 AORUS Gaming 5 (WIFI)
      RAM: 1x 8GB CORSAIR Vengeance LPX C16 2666MHz (in first slot)
      GFX Card: Sapphire RX 580 NITRO+ SE
      SATA: used ports 0, 1, 3, 5 (HDD problems when connected to port 4)
      HDD: generic
      DVD Drive: generic
      PSU: EVGA 500W Semi Modular (but you should get 650W!)
      Case: CoolerMaster CM590 III
      Fans: 2x stock case fans (one sucky on front, one blowy on back), 3x be quiet! BL046 120mm fans (two blowy on top, one sucky on front). Airflow near-perfectly balanced.
      With the Clover configuration, you want to pay close attention to all things relating to graphics. There are some specific settings for ACPI, Boot, Devices and Graphics which should be copied exactly in order to get the iGPU and dGPU to work in perfect harmony. For instance, make sure you use ig-platform-id 59120003 rather than 59120000 if you want FCPX to be usable. With the right settings, FCPX will not only run, but run flawlessly.
      I was not able to figure out how to make NVRAM/PRAM behave itself, and I got errors when I tried to issue relevant commands. As a result, I could not at first get iMessage to work properly. It worked once on my first installation attempt but not from subsequent attempts. This Clover configuration therefore has no consideration whatsoever toward iMessage reliability - however, iMessage ended up working somehow, anyway - I noticed it after I'd updated to 10.14.3 but this may just have been coincidence.
      Onboard WiFi does not work. There is no driver for it. I'm using wired ethernet to a bridge router as it was cheaper than getting a compatible PCI card.
      Audio is working well after I installed the z370 audio patch, then the ALC1220 codecs, then AppleALC.
      With kexts for generic 3rd party SATA and generic 3rd party eSATA, my HDDs and DVD drive work perfectly well.
      Sleep/Wake functions run perfectly. iCloud functions run perfectly. Shutdown leaves the mobo LEDs on, annoyingly.
      My USB 3 ports seem to suffer from low power output, and I don't know why.
      Overall, this system appears to run about as well under MacOS 10.14 Mojave as it does under Windows 7. I would solidly recommend this build to anyone looking to build a computer for workstation purposes, on a budget.
    • By JhonneR
      Good morning, everyone, I'm sorry if I was wrong in choosing the topic but I need help.
      I have found it extremely difficult to mount a Hackintosh in my acer.
      I5 2430m 2.4 6GB RAM
      Mobo P5we0 - Intel intel Graphics 3000
      At the moment I have not found out what my audio codecs are.
      but I'll leave the link on the motherboard.
      however, my real problem is several.
      I have already used the itakos image, I have already used several images that could be installed normally and that after installing the image I do not have internet via cable or wireless.
      And another, I already looked in other forums and I know that I will be called a donkey in the logical question but I have not been able to install the [url=&quot;http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/&quot;]#####[/url] or clover to start from the Hard Disk, so I do not know what to do.At the moment I still do not know if there has already been someone who has already installed the High Sierra or just the Sierra in this notebook model and obtained permanent success.
      If anyone can help me, I'll be grateful.
      Installations without success, but with the system already installed in ACER;
      All with the same symptom. Starting only by the bootable USB stick and without internet connection via cable and wireless.
      Appreciate ! Acer 5750 Official Page
    • By Slice
      Since rev 4844 Vector Themes are supported and there are ready-to-use Clovy by Clovy, cesium by Slice and BGM_SVG by Blackosx.
      You may see it's structure to create own theme
      Now I want to add vector graphics support in Clover. See rev 4560 and later.
      It is not working yet but designers may begin to create Vector Themes.
      It supposed to consist of SVG elements and has design size. It will be rendered to any screen size scaled from design size.
      What application in macOS can create SVG graphics?
      Inkscape is not working in macOS 10.11+. Pity.
      LibreOffice Draw works with SVG but buggy.
      Boxy SVG cost 10$ but looks good enough. It creates the best in simplicity files and have more then enough features.
      Illustrator is good but expensive.
      How to improve SVG file?
      Clover has restricted support for SVG. It is your job to make compatible file and as small as possible to speedup rendering.
      Some helps:
      Help:Inkscape – From invalid to valid SVG Inkscape files
      From invalid to valid SVG Adobe Illustrator files
      From invalid to valid SVG files of other editors: BKchem, ChemDraw and CorelDRAW
      Help:Illustrator – Assistance with creating and saving SVG images in Adobe Illustrator that will pass W3C validation
      User:Quibik/Cleaning up SVG files manually
      Later I will write own instructions specific to Clover abilities.
      How to create SVG fonts?
      You can google to find ready-to-use SVG fonts.  I found some problems with too beaty fonts: slow rendering and overflow crash. Be careful.
      You can get ttf or otf fonts and convert them into svg by using online WEB services. Not a problem to google.
      But then I want to find a way to simplify the font to reduce a size and speedup rendering.
      You can create own font by FontForge It is opensource and available for Windows, Mac and GNU+Linux. It creates otf font which you can convert to svg font.
      Pictures from Badruzeus
    • By gengik84
      Uno dei tre Requisiti:
      Hack funzionante Mac vero Macchina virtuale Impostazioni Bios per il boot:
      Cercate una voce  del tipo “Sata Mode”e settatela  in AHCI
      Secure Boot: disabilitare o altri sistemi operativi
      CSM: UEFI o LEGACY, oppure a secondo del tipo di installazione
      VT-x / VT-d disable
      *Nota: Secure boot e csm valido solo per bios UEFI
      Materiale Occorrente 
      "OS X (Versione App.Store)”
      USB 8GB  *nota: nel caso di usb superiori dovrà essere partizionata, in modo da avere una partizione su cui "lavoreremo,di questa dimensione
      kext Wizard 
      Bootloader Clover_2.3k_r xxx:                   http: //sourceforge.n.../cloverefiboot/
      Clover Configurator:                                    http: //mackie100proj...a.org/download/
      FakeSmc.kext:                                            https://github.com/kozlek/HWSensors/releases
      In allegato,a fondo pagina troverete un "pacchetto" contenente : ShowAllfiles, Kext Wizard, FakeSmc.kext: 
      App alternative:
      ESP Mounter Pro: per montare la partizione EFI
      Vi illustrerò tre metodi per creare la usb, ma sono ben distinti… quindi usatene soltanto uno
      Metodo 1: “Install Mac_OS_X.command” Metodo 2: “Create Install Media di Apple” Metodo 3:  Metodo Manuale Alla fine delle preparazione dell’installer, tutti i metodi necessitano l’installazione del Bootloader Clover sulla a vostra USB.
      PUNTO 1: che la vostra usb sia stata preventivamente nominata USB (caratteri maiuscoli) Tabella di partizione GUID e la formattazione in  Mac esteso Journaled.
      PUNTO 2: che l’installer di OSX si trovi in Applicazioni
      Utility Disco 
      Selezionate la pendrive, andate su “partizione”, selezionate “1 partizione”, impostate Mac OS esteso journaled e date il nome USB, poi in basso cliccate su opzioni e scegliete Tabella partizione (GUID), poi “applica”.
      Riporto nuovamente l’operazione sopra citata adoperando dal nuovo Utility Disco introdotto su El Capitan.
      Rimane ovviamente invariato nome della usb in ==>> USB (maiuscolo), la formattazione in Mac esteso Journaled e sia la mappa partizione in GUID
      Da utility disco selezionate la usb, cliccate su inizializza.
      dal menù a tendina scegliete la relative impostazioni
      Procedura effettua da High Sierra è la stessa della precedente, l'unica attenzione e operazione da aggiungere in primis  è cliccare nel menù a tendina in alto sulla sinistra di utility disco e selezionare "mostra tutti i dispositivi"
        METODO 1: "Install_Mac_OS_X.Command" Lo script che trovate allegato in fondo alla guida permette la creazione dell’installer in maniera automatica
      Include la possibilità di scelta di tre versioni di osx
      Yosemite El Capitan Sierra Il risultato finale è come quello del metodo "manuale" descritto nella guida, per cui l'installazione avverrà in un solo passaggio, non in due come con il metodo createinstallmedia. 
      Offre inoltre la possibilità di inserire un kernel patchato, utile, per esempio, per chi usa AMD.
      Rimane invariato il nome dato alla usb in USB, mappa partizione e tipo di formattazione
      Se la vostra usb non sarà rinominata nel modo corretto, verrete avvisati dal terminale, quindi non dovrete far altro che apportare la relativa modifica e rilanciare nuovamente lo script
      Metodo 2 
      L'intento è quello di usare la procedura fornitaci direttamente da Apple, "createinstallmedia", introdotta  con Mavericks. 
      Tale metodo prevede l’uso del terminale che via via se ne sta perdendo il “valore e l’uso”
      Inizialmente per i neofiti potrà sembrare problematico ma alla fine non è così.
      Durante il post installazione alcune operazioni ne richiedono l’ uso.
      Perciò mi sono chiesto perchè, qualora uno volesse, non far conoscere da subito un po’ questo “strumento”???
      Per favorirvi vi ho allegato i comandi già  “pronti”, i quali li potrete copiare ed incollare sul terminale.
      A questo punto aprite il terminale, copiate ed incollate il comando sottostante e premete invio, digitate la vostra password e premete nuovamente invio.
      Comando per creare USB con Yosemite:
      sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction  
      Comando per creare USB con El Capitan
      sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app --nointeraction Comando per creare USB con Sierra 
      sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ Sierra.app/ --nointeraction Per creare USB con Hight Sierra o Mojave usate --> C_I_M (aggiornato per 10.14)
      Funziona con il drag & drop sul terminale, in questo caso non vi è necessità che la usb sia nominata in un determinato modo ed essendo basato su create install media ovviamente funziona da 10.9 a 10.14.... 
      Potete adesso passare ad installare il bootloader Clover sulla vostra usb.
      Avendo usato questo metodo l'installazione si dividerà in due fasi, perciò dopo il primo riavvio e necessario far partire nuovamente l'installer, selezionare lo stesso disco senza formattarlo.
      Finita questa ulteriore fase , l'installazione sarà terminata
      METODO "MANUALE"....  (lascio per futura memoria-Compatibile fino a 10.12)
      **Nota:** Installazione in UEFI  dipenderà dalla scheda madre in vostro possesso, quindi se non supporta tale opzione , il bootloader dovrà essere installato in  modalità Legacy.
       Vi invito, qualora non sapeste questa informazione, a recarvi nel sito ufficiale del produttore e controllare le informazioni a riguardo
      Fatto questo dobbiamo installare  Clover sulla usb.
      A seconda del tipo di Bios o al tipo di installazione che vogliamo fare UEFI o Legacy avremo ovviamente configurazioni diverse in questa fase.
      Lanciate il pkg.

      Cambiate la destinazione di installazione ad USB oppure Install Mac_OS_X (a secondo del tipo di creazione eseguita)
      Successivamente clicchiamo su "Ad Hoc"
      Per Installazione UEFI
      Mettete i flag   : Installazione solo per avvio UEFI
                               : installare Clover nella ESP
                               : Driver64UEFI  AptioMemory --> (consigliato) 
                               : Driver64UEFI  ApfsDriverLoader --> (consigliato) --> sostituisce l'uso del driver apfs.efi
                               : Selezionate l'altri driver come da successiva immagine,
      *Nota: Altri driver che si possono usare  al suo posto  sono:
      Proseguite con l’installazione.
      ** Ricordate che avrete accesso a questa cartella dopo aver montato la partizione EFI**
      Per installazione Legacy
      Impostazione per config.plist:
      Con clover configurator “montate” la partizione EFI della usb.
      1) Per fare questo nel menù di sinistra, cliccate su “Mount EFI”
      2) individuate la partizione relativa alla vostra usb, a questo punto montiamo la relativa partizione EFI  selezionando l’apposito pulsante “Mount Partition”
      3) Successivamente cliccate su “Open Partition”.. recatevi in EFI/Clover ed aprite il config.plist
      4) Sezione ACPI: Disabilitate tutti i fix sia del menù 1 che del menù 2
      5) Sezione BOOT: Sole se si sta installando Yosemite mettete il flag su kext-dev-mode=1
      6) Sezione RT Variables: Se si sta installando El Capitan oppure Sierra, aggiungere i valori: BooterConfig= 0x28, CsrActiveConfig= 0x67
      7) Sezione System Parameters: Su inject kext mettete YES
      Nota: Su El Capitan, è stato introdotto SIP (System Integrity Protection)
      Recatevi in EFI/Clover/kext/10.x 
      X= alla versione di osx che state installando. Per esempio se installerete Yosemite dovrete recarvi nella cartella 10.10, con El Capitan in 10.11….ecc
      Se non ci fosse tale cartella, createla e nominatela voi a “modo”.
      Copiatevi all’interno FakeSmc.kext
      *Nota se venite già da altre vostre configurazioni, oltre kext sopra citato ,potete mettere gli altri necessari per il vostro hardware
      Stessa cosa se avete DSDT e/o SSDT potete copiarli in EFI/Clover/Acpi/Patched
      Per High Sierra:
      Scaricare il driver apfs.efi a fine guida, collocarlo:
          --> EFI/clover/Driver64UEFI se stiamo usando UEFI
      --> EFI/Clover/Driver64 se stiamo usando Legacy
      Per chi volesse continuare ad usare HFS vi rimando a questo post:
        Come installare High Sierra in HFS direttamente dalla usb  
      Utenti Laptop:  Nel 99% è obbligatorio disattivare la grafica discreta Nvidia/Amd per installare questo nuovo osx
                                     Quindi aggiungete --> SSDT-Disable_DGPU.aml.zip
                                     in EFI/Clover/acpi/Patched della usb
      Per Mojave:
      Scaricare il driver apfs.efi per 10.14 a fine guida, collocarlo:
          --> EFI/clover/Driver64UEFI se stiamo usando UEFI
      --> EFI/Clover/Driver64 se stiamo usando Legacy
      Versione di clover non antecedente a V_4015
      Volete usare HFS?
      E' possibile fare un installazione diretta su altro disco o partizione, nel caso può essere usato anche per effettuare aggiornamenti...
      nel caso guardate...
       Mojave in HFS 
       Oppure direttamente da usb  
      Fatto questo avrete la vostra USB bootable per installare OSX.
      ………Non scordatevi Fakesmc.kext da mettere nella relativa cartella…. senza il quale non farete mai il Boot......
      *NOTA: se usato il terminale per la creazione della usb, l'installazione si dividerà in due fasi, perciò dopo il primo riavvio e necessario far partire nuovamente l'installer, selezionare lo stesso disco senza formattarlo.
      Finita questa ulteriore fase , l'installazione sarà terminata
      **NOTA** Se avete processori Broadwell,Skylake o Kabylake...usate FakeSmc.kext e relativi sensors che trovate all'interno del secondo pacchetto.. (potete usarlo anche sui precedenti senza problemi, essendo una versione più aggiornata ha ulteriore supporto per le cpu più recenti)
      Update: Fakesmc e sensors versione 6.26
      Post installazione... post #2           
       Buon Hack….. 
      Aggiornamento:Install_Mac_OS_X.command.zip (compatibile da 10.10 a 10.12)
      le info le trovate a questo post
      Ringrazio @Ciro82 che mi ha aiutato nel preparare questa guida.
      Pacchetto-Fake+Sensors 6.26.1440.zip