Posted July 28, 2016 (edited) 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): Reveal hidden contents 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: Reveal hidden contents Sample logs: Reveal hidden contents Edited February 8, 2017 by cecekpawon 6
Posted July 29, 2016 Rev 3663 Prune long vertical scroll. Adjust the number of rows to prune from "theme.plist": <key>Theme</key> <dict> <key>Layout</key> <dict> <key>PruneScrollRows</key> <integer>5</integer> </dict> </dict> 3
Posted August 5, 2016 (edited) 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.zipUnavailable Edited February 17, 2018 by cecekpawon 5
Author Posted August 15, 2016 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?
Author Posted August 16, 2016 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>
Author Posted August 18, 2016 Rev 3712 Built with ./ebuild.sh -D CHECK_FLAGS This feature change a method for Details menu called by press Space in main menu I will accept propositions for other useful boot-args to be included here: debug npci -alcbeta ... after some discussion. 4
Author Posted September 12, 2016 Rev 3729 by Needy new submenu for CSR scroll for Helpradio button for TextOnly Now you can set SIP bits in additional menu in CloverGUI 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 Please test and report. PS. For system For system 10.12 (and up?) there is NVRAM variable "nvda_drv" taking a symbolic value '1'. 10
Author Posted September 13, 2016 Rev 3737We 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 4
Author Posted September 15, 2016 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. 6
Author Posted September 16, 2016 Rev 3755 New look for options menu. It became possible because of previous commits 7
Author Posted October 7, 2016 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 , 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. 14
Posted October 24, 2016 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) 5
Author Posted October 28, 2016 Rev 3876 and older Making modules and settings for the FileVault2 possibility. Rev 3877 Exclude AppleEvent, OSInfo, AppleGraphicsConfig as they are embedded into Clover. 3
Author Posted October 29, 2016 Rev 3879Skylake 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 10
Posted November 1, 2016 Rev 3885 Added ability to show HDA Controller name in the Clover GUI (Audio tuning subMenu) - 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 4
Author Posted November 4, 2016 (edited) 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 November 4, 2016 by Slice Forgot to say about AptioFix 8
Author Posted November 4, 2016 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 12
Author Posted December 2, 2016 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. 4
Author Posted December 2, 2016 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", }; 17
Author Posted January 23, 2017 Rev 3979 Menu for custom kexts patches. It looks like follow 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 10
Author Posted January 24, 2017 Rev 3984 Menu for Arbitrary Devices Properties Injection. See #49 This injection method is more native then _DSM and works before it. 5
Author Popular Post Posted February 6, 2017 Rev 3999 Implemented Dell SMBIOS Patch by syscl for those who have a problem with truncated Product Name on some Dell laptops. Initial idea by David Passmore from ticket 203 Explanations here #1786 Rev 4000 Wow! Now Clover change version to be 2.4k (version 2 revision 4k) 31