Jump to content
Slice

Clover Change Explanations

156 posts in this topic

Recommended Posts

Rev 3661

 

Patches by BuildVersion:

 

Following Micky1979's idea about to be more strict/specific filtering patches by OS BuildVersion (MatchBuild) instead of OS ProductVersion (MatchOS). Since MatchBuild is an "unique" value, this will simply overwrites other unmatched BuildVersion even OS ProductVersion was matched. Applied to "KextsToPatch" & "KernelToPatch". From example below it will ignore other Sierra (10.12) BuildVersions (ex: 16A238m/16A239j) other than specified MatchBuild (16A254g):

 

 

 

<key>KextsToPatch</key>
<array>
  <dict>
    <key>Comment</key>
    <string>Zero 892 10.12 16A254g</string>
    <key>Disabled</key>
    <false/>
    <key>Find</key>
    <data>
    ihnUEQ==
    </data>
    <key>MatchBuild</key>
    <string>16A254g</string>
    <key>MatchOS</key>
    <string>10.11,10.12</string>
    <key>Name</key>
    <string>AppleHDA</string>
    <key>Replace</key>
    <data>
    AAAAAA==
    </data>
  </dict>
</array>

 

 

 

KernelToPatch:

 

With "KernelToPatch" will give Clover users the ability to patch current kernel with their own patterns onthefly. For example: to propose some "new" kernel patches after big OS update (like OS Sierra introduced yesterday) without needing to wait for Clover updates, and maybe alot of other purposes. ** This may lead Clover cannot find internal kernel patch patterns if they already replaced by your custom patterns, so use with caution (or disable from GUI if anything goes wrong). Config examples:

 

 

 

<key>KernelToPatch</key>
<array>
  <dict>
    <key>Comment</key>
    <string>startupExt</string>
    <key>Disabled</key>
    <true/>
    <key>Find</key>
    <data>
    6CUAAADrBeh+BQAA
    </data>
    <key>MatchOS</key>
    <string>10.12</string>
    <key>MatchBuild</key>
    <string>16D3x,16D3y</string>
    <key>Replace</key>
    <data>
    6CUAAACQkOh+BQAA
    </data>
  </dict>
  <dict>
    <key>Comment</key>
    <string>rootlessKext</string>
    <key>Disabled</key>
    <true/>
    <key>Find</key>
    <data>
    w0iF23RxSIsDSInf/1AoSA==
    </data>
    <key>Replace</key>
    <data>
    w0iF2+sSSIsDSInf/1AoSA==
    </data>
  </dict>
</array>

 

 

 

Sample logs:

 

 

 

3:644  0:050  GetOSVersion: 10.11.6 (15G31)
3:644  0:000  Filtering KextPatches:
3:644  0:000   - [0]: AppleHDA (XXX Sleep 2) :: BinPatch :: [OS: 10.11.6 | MatchOS: All | MatchBuild: All] ==> allowed
3:644  0:000   - [1]: AppleHDA (XXX AD1988) :: BinPatch :: [OS: 10.11.6 | MatchOS: All | MatchBuild: All] ==> allowed
3:644  0:000   - [2]: AppleHDA (XXX AD1988 , AD1984) :: BinPatch :: [OS: 10.11.6 | MatchOS: 10.11 | MatchBuild: All] ==> allowed
3:644  0:000  Filtering KernelPatches:
3:644  0:000   - [0]: startupExt :: [OS: 10.11.6 | MatchOS: 10.12 | MatchBuild: All] ==> not allowed
3:644  0:000   - [1]: startupExt 10.11 :: [OS: 10.11.6 | MatchOS: 10.11 | MatchBuild: All] ==> allowed
3:644  0:000   - [2]: rootlessKext :: [OS: 10.11.6 | MatchOS: All | MatchBuild: 15G31] ==> allowed
3:644  0:000   - [3]: rootlessKext 10.11 :: [OS: 10.11.6 | MatchOS: All | MatchBuild: All] ==> allowed

 

 

post-1101532-0-13125500-1469689420_thumb.png

Edited by cecekpawon

Share this post


Link to post
Share on other sites
Advertisement

Rev 3679

 

Experimental: Size matter, screenshot as PNG instead of BMP. Inspired by mr. Coderush "CrScreenshotDxe". Maybe useful for other PNG encoding purposes. Activate by "-D LODEPNG".

 

Rev 3681

 

Hover icons, for both 1st & 2nd row:

 

Clover will search any icons with suffix "_hover.(ext)" & use it as hovered state.
Applied to: os_*, func_*, tool_* icons. Ex: func_about_hover.png, os_mac_hover.png, tool_shell_hover.png.

 

Fixed icon format:

 

One extension for all. Ex: If user has specified an ext (Icon->Format) like "png", then Clover will ignore any other extensions including default "icns". Valid values: icns, png, bmp (untested).

<key>Theme</key>
<dict>
  <key>Badges</key>
  <dict>
    <key>Inline</key>
    <false/>
    <key>OffsetX</key>
    <integer>0</integer>
    <key>OffsetY</key>
    <integer>0</integer>
    <key>Scale</key>
    <integer>16</integer>
    <key>Show</key>
    <true/>
    <key>Swap</key>
    <false/>
  </dict>
  <key>Icon</key>
  <dict>
    <key>Format</key>
    <string>png</string>
  </dict>
</dict>

Example: based on blacktype theme by xenatt, vol icon taken from metal theme by Slice.

 

EDIT (Sat Feb 17 17:12:06 2018): Current hover icons being reverted, so it will no longer exists.

blacktype.zip

Edited by cecekpawon

Share this post


Link to post
Share on other sites

Rev 3698

Exclude ICNS and BMP graphics format.

All artist have to use only PNG graphics. In fact this is true now and I can reduce Clover size.

 

Embedded refit font is replaced now by PNG font "hellfire-9W". Is there other propositions?

Share this post


Link to post
Share on other sites

Rev 3706

Embedded font can be Black or White as set in theme.plist.

		<key>Font</key>
		<dict>
			<key>Type</key>
			<string>Black</string>
		</dict>

Share this post


Link to post
Share on other sites

Rev 3712

Built with ./ebuild.sh -D CHECK_FLAGS

 

This feature change a method for Details menu called by press Space in main menu

Screen Shot 2016-08-18 at 12.43.26.png

 

I will accept propositions for other useful boot-args to be included here:

debug

npci

-alcbeta

...

after some discussion.

Share this post


Link to post
Share on other sites

Rev 3729 by Needy

new submenu for CSR

scroll for Help
radio button for TextOnly

 

Now you can set SIP bits in additional menu in CloverGUI

Screen Shot 2016-09-12 at 14.42.15.png

 

 

Rev 3733

It was my mistake setting nvda_drv=1 flag as boot-args. No! It is NVRAM variable nvda_drv that can have a value "1".

So I make new config value

	<key>SystemParameters</key>
	<dict>
		<key>NvidiaWeb</key>
		<true/>
	</dict>

This value will switch macOS to use Nvidia WEB drivers instead of system one.

There is also GUI switch

Screen Shot 2016-09-12 at 14.46.20.png

Please test and report.

 

PS. For system

For system 10.12 (and up?) there is NVRAM variable  "nvda_drv" taking a symbolic value '1'.

Share this post


Link to post
Share on other sites

Rev 3737
We can fake our EDID to be like Apple's one.
Also changes in config.plist (old config also supported)

	<key>Graphics</key>
	<dict>
		<key>EDID</key>
		<dict>
			<key>Custom</key>
			<data>AP///////wAGECGSAAAAAAASAQOAIRV4CunVmVlTjigmUFQAAAABAQEBAQEBAQEBAQEBAQEB3iGgcFCEHzAgIFYAS88QAAAY3iGgcFCEHzAgIFYAS88QAAAAAAAA/gBXNjU3RwAxNTRXUDEKAAAA/gAjMz1IZYSq/wIBCiAgAJo=</data>
			<key>Inject</key>
			<true/>
			<key>VendorID</key>
			<string>0x1006</string>
			<key>ProductID</key>
			<string>0x9221</string>
		</dict>

See, VendorID = 0x1006 is Apple

Share this post


Link to post
Share on other sites

Rev 3744 -3748

New boot-args to choose in Details menu


CHAR16* ArgOptional[NUM_OPT] = {
  L"arch=i386",
  L"arch=x86_64",
  L"-v ",
  L"-s ",
  L"-x ",
  L"nv_disable=1",
  L"slide=0",
  L"darkwake=0",
  L"-xcpm",
  L"-gux_no_idle",
  L"-gux_nosleep",
  L"-gux_nomsi",
  L"-gux_defer_usb2",
  L"keepsyms=1",
  L"debug=0x100",
  L"kextlog=0xffff",
  L"-alcoff",
  L"-shikioff",
  L"nvda_drv=1"
};

Rev 3748

partially reverted commit 3733

 

We found that for systems up to ElCapitan 10.11.6 there was boot-args "nvda_drv=1" to switch on Nvidia WEB drivers. If absent then system drivers used.

But for Sierra there is NVRAM variable "nvda_drv" that take a value of string "1".

 

Since this revision you can check this point in Details menu and got both variable changed, for 10.x and for 10.12.

Share this post


Link to post
Share on other sites

Rev 3787

Introduce SMCHelper efi driver.

 

It is not a replacement for FakeSMC.kext, it is a helper for it.

It works as follow

1. FakeSMC (my version 3.4, I don't know if Kozlek wants to add same functionality) catches all system events like "SMC key write" and store them into NVRAM. Hardware or emulated.

2. After reboot Clover >=3787 will read NVRAM (or nvram.plist) and gather all SMC keys into own stack.

example

1:882  0:000  === [ Dump SMC keys from NVRAM ] ==========================
1:882  0:000  found AppleSMC protocol
1:886  0:003     fakesmc-key-LsBA-ui8:90 
1:886  0:000     fakesmc-key-NTOK-ui8:01 
1:886  0:000     fakesmc-key-NATi-ui16:00 00 
1:886  0:000     fakesmc-key-NATJ-ui8:00 
1:886  0:000     fakesmc-key-CLKH-{clh:00 00 70 80 00 01 19 40 
1:886  0:000     fakesmc-key-LSSS-ui16:02 00 
1:888  0:001     fakesmc-key-CLKT-ui32:00 01 3D 87 
1:889  0:000     fakesmc-key-MSDW-ui8:00 

3. When we start a system boot.efi may ask for the SMC protocol and keys

->LocateProtocol(gAppleSMCProtocolGuid, 0, 0/CB592D78) = Success

4. Those keys can be used by boot.efi for Hibernation wake or for FileVault or else.

5. I am not sure if those keys should be reported again for FakeSMC. At this moment no.

 

 

Rev 3791

Fix zero pointer dereferencing.

The bug was introduced in commit 3590  :shock: , so we have 200 non-working revisions from 3590 up to 3790.

Details

+    SelectionImages[4]->HasAlpha = TRUE;

But this image exists only with BootCampStyle else there is NULL.

So mov 1, @18h where there is legacy interrupt table.

My legacy computer worked but didn't sleep. My UEFI computer seems not affected.

I see many messages about Clover not working, black screen etc. 

I think in most cases 3791 should work again.

Share this post


Link to post
Share on other sites

Rev 3808

Added a new submenu into Clover GUI for suite related audio options.

- In this first commit can be handled boolean ResetHDA and AFGLowPowerState options

 

Rev 3847

Extends and update existing nVidia card list.

 

Rev 3848

- Extends recently created Audio tuning submenu with the ability to change the already provided

layout-id from config.plist

- The number of finded HDA Controller now are been showed with his Vendor and Device ID

- for both Audio and Graphics submenu a minus typo was correct using ternary logic

- GFX_MANUFACTERER has been renamed into HRDW_MANUFACTERER (the same manufacter struct is used for both Graphics and Audio)

Thx to Micky1979, Jolly and gengik84 for the test.

(more work is needed... the next step is move all the related HDA stuff from device_inject into a dedicated 'class', add harcoded name for the Controller and finally retrive the Codec values)

Share this post


Link to post
Share on other sites

Rev 3879
Skylake support, by goodwin_c.


	<key>CPU</key>
	<dict>
		<key>HWPEnable</key>
		<true/>
	</dict>

 
This variable switches on Intel Speed Shift technology.
Also named Hardware-Controlled Performance States

Present on MacBook9,1

Share this post


Link to post
Share on other sites

Rev 3885

Added ability to show HDA Controller name in the Clover GUI (Audio tuning subMenu)

 

HDA_CName.png

 

- harcoded names for HDA Controllers

- fixed zeroMem from previus commit (r3848)

- migrate all Audio related stuff from device_inject into dedicate 'class'

- cleanup

 

Rev 3893

Fix for commit r3885

Share this post


Link to post
Share on other sites

Rev 3895 - 3905

Strict Hibernate rule

If you set in your config plist

	<key>Boot</key>
	<dict>
		<key>StrictHibernate</key>
		<true/>
	</dict>

Then Hibernate will work other way. And this is only way to do hibernation on FileVault2 locked volume.

 

Strict Hibernation

 

Hardware

- UEFI BIOS

- hardware NVRAM

- GPT formatted HDD with EFI and Recovery partitions

 

Software

- Clover rev.3905+

- SMCHelper.efi

- OsxAptioFix2Drv.efi - there must be version 2, compatible with Hibernation

- FakeSMC.kext version 3.4.x only!

- sudo pmset -a hibernatemode 25

 

If you set StrictHibernate = TRUE while you didn't fulfil all conditions then Clover automatically switchs StrictHibernate to FALSE. So TRUE is safe settings, nothing happens in worst scenario.

If you have no Hardware NVRAM then after power on you will not see "Hibernated" and forced ordinary boot. In such cases you may look into boot.log (preboot.log, debug.log, bdmesg output) what is happen.

If you have a reboot during wake then most probably you have no correct FakeSMC.

Edited by Slice
Forgot to say about AptioFix

Share this post


Link to post
Share on other sites

Rev 3904

If you see in system log

AppleLPC::notifyPlatformASPM - registering with plugin with ASPM Support false

then you want to set in config.plist

	<key>ACPI</key>
	<dict>
		<key>DisableASPM</key>
		<true/>
	</dict>

The message will gone and macOS works smoother.

Why? This is FADT->Flags bit 4.

If set, indicates to OSPM that it must not enable OSPM ASPM control on this platform.

Yes, macOS can't control hackintosh hardware ASPM. (OSPM = OS Power Management)

 

The idea from eierfrucht

Share this post


Link to post
Share on other sites

Rev 3908

Added function

	<key>Boot</key>
	<dict>
		<key>NeverDoRecovery</key>
		<true/>

In the case when ordinary boot failed the boot.efi can set flag "recovery-boot-mode". It is not reliable for us and we want just ignore this variable to boot ordinary.

Share this post


Link to post
Share on other sites

Rev 3913-3914

USB keyboard will be reconnected automatically for FileVault2. But this affects only new American Megatrend UEFI BIOS version 5.

 

Rev 3920

MatchBuild for several builds, by Micky1979

Kext or Kernel Patches can match several builds separated by comma now.

 

Rev 3928

HDMI injection is possible now. For example by Arbitrary Properties.


Rev 3929-3937

Change Clover repository folders structure.

 

Rev 3938

correct MMIO region for Polaris cards

There was a mistake in Polaris card injection. This patch has resolved one of problems with these cards.


Rev 3950

Added a line into preboot.log

The CPU supported SSE4.1

or

The CPU not supported SSE4.1

 for you to decide is it possible to install Sierra here.


Rev 3952

New patch_for_edk2 rev 23215+ preventing load efi drivers and applications.

With this patch we can use recent EDK2 at least 23447.

EDK2 decided to prevent load applications and drivers from external sources. All modules must be loaded from FirmwareVolume.

I am not agree with this policy and canceled this check.


Rev 3940...3953

Multiple updates platform data by Sherlocks. Now Clover knows much more models.

{
  "MacBook1,1",
  "MacBook2,1",
  "MacBook3,1",
  "MacBook4,1",
  "MacBook5,1",
  "MacBook5,2",
  "MacBook6,1",
  "MacBook7,1",
  "MacBook8,1",
  "MacBook9,1",
  "MacBookPro1,1",
  "MacBookPro2,1",
  "MacBookPro2,2",
  "MacBookPro3,1",
  "MacBookPro4,1",
  "MacBookPro5,1",
  "MacBookPro5,3",
  "MacBookPro5,5",
  "MacBookPro6,1",
  "MacBookPro6,2",
  "MacBookPro7,1",
  "MacBookPro8,1",
  "MacBookPro8,2",
  "MacBookPro8,3",
  "MacBookPro9,1",
  "MacBookPro9,2",
  "MacBookPro10,1",
  "MacBookPro10,2",
  "MacBookPro11,1",
  "MacBookPro11,2",
  "MacBookPro11,3",
  "MacBookPro11,5",
  "MacBookPro12,1",
  "MacBookPro13,1",
  "MacBookPro13,2",
  "MacBookPro13,3",
  "MacBookAir1,1",
  "MacBookAir2,1",
  "MacBookAir3,1",
  "MacBookAir4,1",
  "MacBookAir4,2",
  "MacBookAir5,1",
  "MacBookAir5,2",
  "MacBookAir6,1",
  "MacBookAir6,2",
  "MacBookAir7,1",
  "MacBookAir7,2",
  "Macmini1,1",
  "Macmini2,1",
  "Macmini3,1",
  "Macmini4,1",
  "Macmini5,1",
  "Macmini6,1",
  "Macmini6,2",
  "Macmini7,1",
  "iMac4,1",
  "iMac5,1",
  "iMac6,1",
  "iMac7,1",
  "iMac8,1",
  "iMac9,1",
  "iMac10,1",
  "iMac11,1",
  "iMac11,2",
  "iMac11,3",
  "iMac12,1",
  "iMac12,2",
  "iMac13,1",
  "iMac13,2",
  "iMac14,1",
  "iMac14,2",
  "iMac14,3",
  "iMac14,4",
  "iMac15,1",
  "iMac16,1",
  "iMac16,2",
  "iMac17,1",
  "MacPro1,1",
  "MacPro2,1",
  "MacPro3,1",
  "MacPro4,1",
  "MacPro5,1",
  "MacPro6,1",
};

Share this post


Link to post
Share on other sites

Rev 3979

Menu for custom kexts patches.

It looks like follow

Screen Shot 2017-01-23 at 13.10.28.png

 

But you should take into account that the menu is called before OS choosen so it can't reflect MatchOS and MatchBuild.

The menu will reflect all patches defined in config.plist as if OS matched. You may enable or disable any of these patches.

When you start an OS then there will be additional check for all enabled patches if OS matched. If not matched then the patch will be disabled no matter of menu settings.

 

PS. Please reduce your comments in kexts patches. They used for menu!

 

Rev 3980

Same for kernel patches.


Rev 3981

This update by ErmaC    #1654  

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Aldaro
      Gigabyte, in their infinite wisdom, decided to remove the option to disable serial ports, and not being able to do so has been causing me some problems. I know that I have to either use a patch in clover, or create a custom SSDT to disable super I/O, but I honestly do not know how to go about doing this. One of the weirder problems I'm experiencing is the inability to connect to Apple Music (error 11556) unless I go into my network settings, and delete my serial connection. If anyone could help me out with this, that'd be greatly appreciated; anyway, thank you for taking the time to read this.
       
      SPECS:
      Mobo GIGABYTE Z390 M GAMING (UEFI F8)
      CPU: i5 9600k
      RAM: 32GB DDR4 @ 2666 Mhz
      GPU: AMD Radeon RX 580 w/ 8GB of VRAM (MSI armor oc edition)
      Storage Samsung 970 evo 500GB
    • By cvad
      View File Bootdisk Utility
      Make bootable USB Flash Disk for MAC OS X with Latest Clover bootloader revision fast and easy by one click! under OS Windows.
      Special utility from cvad & russian MAC community for new hackintosh users.
       
      Enjoy...
       
      For more information and complete instructions please see this topic.
       
       
       
       
      Feel free to "Rate File"
      Submitter cvad Submitted 04/28/2013 Category Bootloaders  
    • By e97
      HackPro X99 System
      Until Apple blesses us with the MacPro7,1 – this is for those that require tools to do their work.
      An appropriate bicycle for the mind.
       
       

       

       

       
      Specs:
       
      CPU: Intel Xeon E5-2678 v3 (12 core, 2.5 GHz / 3.3 GHz Boost)
      Motherboard: SZMZ X99-8D3
      RAM: 16GB DDR3-14900R 1866Mhz ECC RDIMM modules
      GPU: Radeon RX Vega 64 8GB
      Storage: Phison E12 m.2 NVMe PCI-E 3.0 x4 SSD
      Water blocks: BARROW CPU + GPU
      Radiator: 360mm x 25mm slim
      Pump: DDC
       
      Case dimensions: 431 mm x 342 mm x 177 mm
       
       
       
      XCPM OFF
       

       
      XCPM ON
       

       
      OpenCL
       

       
       
       
      iMacPro1,1
       

       
       

       
      OpenCL
       

       
       
      NVMe
       

       
       
      Win 10 x64 v1809
       
      AIDA64 - Cache & Memory
       

       
       
      Download:  https://github.com/xe97/X99-8D3-Clover
       
       
       
       
       
      Anyone else I forgot
       
       
    • By digivish
      Hi All - quick thing - I have a NUC 8i7BEH with 32GB RAM and 2 x 1TB SSD drives. Each drive has its own OS - Windows 10 and Catalina 10.15.
       
      Clover works well - Catalina Boots, so does Windows.
      Catalina - has sound over HDMI (to my monitor's speakers)
      Windows - no audio device found - It does show Realtek and Intel Display Drivers - but the speaker has a red"x" and in Devices, there is no entry for Microphone Array under Audio Input/Output. It does, however, show Intel display over the HDMI - but actually no sound.
       
      I have tried reinstalling Realtek drivers - now here's the thing...when it installs, it first uninstalls existing Realtek drivers - at this stage (and it's important) the sound starts working - as if uninstalling did the trick. As part of the installing, I have to reboot and upon reboot, it actually reinstalls the Realtek drivers. After that, I'm back to square 1. Unsure if it's the config.plist or boot args in clover. But something with Clover for sure.
       
      I have tested this by removing the Mac Drive with clover and just booting directly to Windows 10 bootloader and everything works as it should, I have sound over HDMI and the audio device shows. Just not when I boot with Clover.
       
      has anyone experienced this and have thoughts or pointers.
       
      Thanks a ton!
×