Author Posted April 12, 2018 Rev 4438 New feature for theme designers. Automatic choose "yourtheme" or "yourtheme@2x" if monitor is 2k or larger. The criteria is ScreenHight > 1100. For example if I choose theme=metal then I will use theme from folder "metal" on monitor 1920x1080 and a theme from folder "metal@2x" on monitor 2048x1560. So I expected our artists will prepare new copy of their themes with 2x larger pictures and fonts. It is better then scale 2x. 16
Author Posted April 18, 2018 Rev 4442 All Clover utility and prePane will be 64 bits since now. We are waiting 10.14 without 32 bit support. 9 2 1 1
Posted April 18, 2018 Rev 4443 - 4444 Clover correctly recognized the name of all Mac OS series Mac OS X/OS X/macOS and type of macOS installation too. 9 2 1
Posted April 29, 2018 Rev 4450 A data leak issue was identified in the hibernation code, allowing hibernation encryption key to be passed to the system through RTC and preserved till the next hibernation without a subsequent erase. More details could be found in this message. To workaround this issue a new option enabling RTC memory erase upon waking from hibernation was added: Boot → RtcHibernateAware = YES (BOOLEAN, off by default) This option relies on a poorly documented (or rather undocumented) RTC memory access, and unspecified RTC memory layout, which is implementation-specific. While it is extremely recommended to be turned on if you rely on hibernation, it may not work on your hardware (should be fine on Ivy Bridge and newer at least), and is thus optional and disabled by default. Note, that AppleRTC or FixRTC patches effectively break hibernation by reducing the available RTC memory and avoiding encryption key preservation. You should DISABLE them if you have no issues with BIOS preferences afterwards or use HibernationFixup. However, if RtcHibernateAware does not work for you, enabling AppleRTC patch and using HibernationFixup may be a safer workaround. 15
Posted May 7, 2018 (edited) Revision 4453 Revision 4456 Revision 4457 Changed the behavior of scanning default boot loader paths. Instead of being skipped they are hidden by default, pressing F3 should unhide/rehide those entries. You can create a custom entry with no path, Type-Other, and Hidden=false, to have the default boot loader path entries always appear. I didn't check to see if clover is currently one of these entries so take care that the entry is not clover and is the actual entry you wish to boot. EDIT: I did not check the hidden or disabled flags when the entry is added so they were not hidden/disabled, so the real fix to this is 4457. Edited May 9, 2018 by apianti 4
Author Posted May 17, 2018 Rev 4466 Now Devices->Properties can be written into config.plist in format as DarwinDumper do For example Reveal hidden contents More detailed instructions followed. This way we can deprecate Arbitrary section. 8 2
Author Posted May 17, 2018 Rev 4468 More exact renaming Devices in DSDT and SSDT taking into account its bridge. Example <key>ACPI</key> <dict> <key>RenameDevices</key> <dict> <key>_SB.PCI0.RP02.PSXS</key> <string>ARPT</string> <key>_SB.PCI0.EHC1</key> <string>EH01</string> <key>_SB.PCI0.POP2.PEGP</key> <string>GFX0</string> </dict> Complex case such as this DSDT is also taken into account _SB.PCI0.RP02.PSXS We have to take into account fields like Scope(\_SB) { Device (PCI0) { Device(RP02) { Device(PSXS) <- to patch { Method(_ON) { } Method(_OFF) { } } PSXS._ON() <- to patch } Scope(RP02) { PSXS._OFF() <- to patch } Device(RP03) { Device(PSXS) <- to not patch { } PSXS._ON() <- to not patch } 12 1 1
Posted May 20, 2018 REV 4476 - 4478 Added ebuild.sh option '-D NO_CLOVER_SHELL' to disable building of Clover-modified shell. Vanilla shell lib is built for bdmesg.efi, and vanilla shell binary can be taken from edk2/ShellBinPkg (see --edk2shell option for ebuild.sh). Reengineered the patch to GetBestLanguage() function found in MdePkg/Library/UefiLib so that 6 other patched sources can be eliminated. The eliminated patched files are Patches_for_EDK2/MdeModulePkg/Library/UefiBootManagerLib/BmDriverHealth.c Patches_for_EDK2/MdeModulePkg/Library/UefiHiiLib/HiiString.c Patches_for_EDK2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c Patches_for_EDK2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c Patches_for_EDK2/MdeModulePkg/Universal/HiiDatabaseDxe/Font.c Patches_for_EDK2/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c Make sure to revert the removed patches in EDK2 tree to their original form. 6
Posted May 23, 2018 (edited) REV 4496 Synchronized Patches_for_EDK2 with r27233 - which resolves the problems with GetBestLanguage()/VariableGetBestLanguage() Removed patches: MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c MdePkg/Include/Library/UefiLib.h MdePkg/Library/UefiLib/UefiLib.c and reverted MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c to its previous form that doesn't include this fix. Patches_for_UDK2018 stays the same on this issue as fix was not back-ported. Removed the patch to MdePkg/Include/Base.h The only build that needs the "no MS va funcs" is clang with -target x86_64-pc-win32-macho. So I added '-DNO_MSABI_VA_FUNCS' for the relevant toolchains in tools_def.txt (XCLANG and XCODE5). Note that this change is only guaranteed to work with recent versions of both GCC and clang. Some really old versions (GCC < 4.8 and clang around the time of SnowLeopard) may not work correctly. If anyone still wants to build Clover with a really old compiler, it is their responsibility to set the correct value by either adding or removing -DNO_MSABI_VA_FUNCS as appropriate. This change was back-ported to UDK2018 and is committed to Patches_for_UDK2018 as well as Patches_for_EDK2. Also some more minor changes Update svn:ignore and .gitignore for present-day build products. Change a couple of makefiles in CloverEFI/BootSectors to account for previous removal of svn:executable on files in CloverEFI/BootSectors/bin (these files are committed build products of these makefiles.) Typos in ebuild.sh. Edited May 23, 2018 by Zenith432 8
Author Posted May 28, 2018 Rev 4504 Now clover-genconfig is able to produce all your injection keys used at last successful boot including automatic properties when inject=YES. But not including _DSM methods. So the way is follow: 1. Boot as usual. New or old Clover revision. 2. Use new clover-genconfig to produce your current config.plist. 3. Update Clover to revision > 4500 4. Update you config.plist to switch off all injection including Graphics, Audio, LAN, USB 5. Disable all AddProperties and Arbitrary. 6. Insert new produced Device->Properties dictionary which will include all your old properties. 7. Enjoy! 15
Posted June 5, 2018 Revision 4515 Revision 4450 introduced a new key (Boot → RtcHibernateAware) which improved the situation with hibernation compatibility and reduced the impact of some security issues in this process. Starting with 10.13.6 a lot of legacy code got (finally) ditched on Apple side, and some changes are necessary to get hibernation to work on hacks. Revision 4515 incorporates them in Clover. Mandatory stuff: 1) Clover must be r4450 and newer 2) AptioMemoryFix must be R20 (b83c025) or newer 3) Boot → RtcHibernateAware must be set to YES Some additional notes: — Config changes (and driver updates) will benefit all the systems (starting from Yosemite if I remember correctly), not just 10.13.6 — OsxAptioFix1/2/3 will NOT work with hibernation on 10.13.6 and newer, and they may be removed from the default Clover installer in the future (time to upgrade). — If you can boot with AppleRTC/FixRTC patches OFF without BIOS settings reset, disable them, they break stuff in macOS — If you have to use HibernationFixup, you may want to update it to 1.2.1, currently only available from source. Last, but not least: If Hibernation does not work for you… well, RIP. Believe me or not, but it is not something you should rely on. Especially if you care about security and privacy of your data. 11 1
Author Posted June 6, 2018 Rev 4514-4517 Mojave compatibility by PMheart Rev 4518 Menu for DSDT name choice 10
Author Posted June 13, 2018 Rev 4538 dont check xcode version, assume it is greater then 4 Old scripts contain check for Xcode4 and perform some actions for it. But I think it is not good way. If you have Xcode4 which is for 10.7.5 which is last system for GMA950 for example then you have to use GCC. The problem is Xcode10 which will not work in scripts before 4537. 2
Author Posted June 14, 2018 Rev 4540 New driver developed by savvas https://github.com/acidanthera/ApfsSupportPkg/ You may exclude private apfs.efi from drivers64UEFI folder and place here the driver ApfsDriverLoader.efi. It performs loading the driver from APFS container by DiskIO protocol. The driver is open source but located not in Clover repository and at link above. It contains macbuild.tool for those who want to compile by himself. 16
Author Posted June 14, 2018 Rev 4542 Excluded mtoc binary file from Clover repo. You already have it in /usr/local/bin/mtoc.NEW If not then compile it by the script ./buildmtoc.sh it works good and fast. 3
Posted June 15, 2018 (edited) Rev 4543 Removed patch for MdePkg/Include/X64/ProcessorBind.h. File edk2/MdePkg/Include/X64/ProcessorBind.h should be manually reverted in edk2 tree. This enables #pragma GCC visibility push("hidden") for clang. I found it reduces code size by about 9K for XCODE8 build of BOOTX64.efi. With it XCODE8 BOOTX64.efi is only 1K bigger than XCODE5 BOOTX64.efi. Size reduction is because the compiler no longer uses GOT to access external symbols. It is not necessary to use GOT when there's no dynamic linking. This pragma is suppressed in LTO builds using a macro USING_LTO because it disrupts LTO build if module entry points are hidden. Nevertheless, LTO makes the GOT loads go away due to the combining of all C source files into one compilation unit for LTO. I made use of USING_LTO consistent across tools_def.txt and all module inf files that modify LTO setting. XCODE5 and XCODE8 don't use LTO because it increases code size. GCC uses LTO on all modules because it works and decreases code size. Edited June 15, 2018 by Zenith432 3
Author Posted June 17, 2018 Rev 4550 Drivers AptioMemoryFix and ApfsDriverLoader will be download from github/releases automatically during build -> Downloading AptioFix version R21... -> Downloading ApfsSupport version 1.0.2... -> AptioMemoryFix.efi -> AptioInputFix.efi -> ApfsDriverLoader.efi Copy Applications: -> bdmesg.efi Done! If you want own compilation then use key ./ebuild.sh --no-ext 9
Author Popular Post Posted June 20, 2018 Rev 4560 Here I want to introduce support for Scalable Vector Graphics for Clover GUI will not depend on screen resolution. https://en.wikipedia.org/wiki/Scalable_Vector_Graphics We will can draw all interface elements in SVG and scale theme to screen resolution. To do that I found very tiny and simple project nanosvg which is written in C and open source. Nonetheless including it into Clover has obvious problems: - we have no float mathematica; (OK, I made it) - we have no standard sscanf(), we just have feeble StrDecimalToUintn() function, etc.; - we have no some other standard functions (malloc, realloc, free, qsort); and non-obvious problem: I don't know how many logical mistakes in the project. I will work on these problems and invite all coders to help me. Next steps will be learn Clover how to load SVG graphics and render it. Then scalable GUI layout. Then scalable fonts. AFAIK there can be SVG fonts. Moreover SVG can be animated. Meanwhile designers may started to draw vector themes. Welcome to new era! 21
Author Posted July 13, 2018 Rev 4599 Vector fonts support. Tested all procedures to use fonts. Now we have to write GUI with svg images and fonts. This font named "DragonIsComing" free for personal use. There was a mistake in original font with zero width of letter "o". I corrected manually in svg file. And I don't know why "o" have no hole. Is it designed or still clover mistake. EDITED: Holes corrected in 4607. 6 1 1
Author Posted August 8, 2018 Rev 4639 New design for Clover.prefPane, CloverUpdater, Clover Package and embedded theme. By Clovy. 15 1
Author Posted August 10, 2018 Rev 4644 A possibility to choose between Light and Dark embedded themes <key>GUI</key> <dict> <key>Theme</key> <string>embedded</string> <key>EmbeddedThemeType</key> <string>Dark</string> Possible values Dark/Light/SVG /Daytime The result 17
Author Posted August 13, 2018 Rev 4645 The project ApfsSupportPkg is renamed to AppleSupportPkg because of broaden functionality. By Savvas. 5
Posted August 20, 2018 Rev 4653 Fixed potential icon problem for apfs and hfs partition. Clover automatically detect partition icon according to partition type. 10 3