Fixed detection of legacy firmware for CloverDaemonNew.
Detection of System Serial and OEM manufacturer informations.
Startup sound settings in the interface.
Installer inform with a sound and an alert window the installation result.
Installer now produce the installation log.
Installer is now thread safe.
The UI is modified to make room for all the new functionalities
that is how the UI looks like now:
the installer button is moved down, under "Update":
Thanks for everyones input with the Audio issue I had with r5102!
Turns out it was driver error as I let Clover.app update my files and of course my edit that I need to apply (Uncomment "ReplaceName(dsdt + BrdADR, BridgeSize, device_name, "ARPT");") wasn't included in that!
to build clover:
git clone https://github.com/CloverHackyColor/CloverBootloader.git
then to build a specific commit:
git checkout <commit_id> (eg: git checkout 12d559aef62a33ad65e38ab9210872d63d815815 or git checkout 12d559ae)
this command shows you every commit between 5101 and 5102:
git log --oneline 5101^..5102
I don't use HDMI audio just the onboard audio and AppleALC.kext
From looking at the boot log, it seems something changed. Perhaps the "Log audio devices" change?
r5101 Boot Log - Search for Audio (Working Audio)
0:199 0:000 Loading AudioDxe.efi status=Success
6:073 0:000 found 2 handles with audio
15:429 0:000 found 2 handles with audio
17:752 0:000 found 2 handles with audio
r5102 Boot Log - Search for Audio (Not Working Audio)
0:200 0:000 Loading AudioDxe.efi status=Success
6:081 0:000 found 2 handles with audio
6:084 0:000 Found Audio Device Realtek ALC899 (SPDIF) at index 0
6:084 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 1
6:084 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 2
6:084 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 3
6:084 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 4
6:084 0:000 Found Audio Device Realtek ALC899 (Headphones) at index 5
6:084 0:000 Found Audio Device Realtek ALC899 (SPDIF) at index 6
6:084 0:000 Found Audio Device Intel Panther Point HDMI (HDMI) at index 7
6:084 0:000 Found Audio Device Intel Panther Point HDMI (HDMI) at index 8
22:614 0:000 found 2 handles with audio
22:617 0:000 Found Audio Device Realtek ALC899 (SPDIF) at index 0
22:617 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 1
22:617 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 2
22:617 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 3
22:617 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 4
22:617 0:000 Found Audio Device Realtek ALC899 (Headphones) at index 5
22:617 0:000 Found Audio Device Realtek ALC899 (SPDIF) at index 6
22:617 0:000 Found Audio Device Intel Panther Point HDMI (HDMI) at index 7
22:617 0:000 Found Audio Device Intel Panther Point HDMI (HDMI) at index 8
25:174 0:000 found 2 handles with audio
25:176 0:000 Found Audio Device Realtek ALC899 (SPDIF) at index 0
25:176 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 1
25:176 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 2
25:176 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 3
25:176 0:000 Found Audio Device Realtek ALC899 (LineOut) at index 4
25:176 0:000 Found Audio Device Realtek ALC899 (Headphones) at index 5
25:176 0:000 Found Audio Device Realtek ALC899 (SPDIF) at index 6
25:176 0:000 Found Audio Device Intel Panther Point HDMI (HDMI) at index 7
25:176 0:000 Found Audio Device Intel Panther Point HDMI (HDMI) at index 8
I don't have any files in either rc.boot.d or rc.shutdown.d but it still refers to them, should I perhaps clean my NVRAM?
CloverDaemon start at 2019-12-24 20:14:46
2019-12-24 20:14:47 - All clover startup scripts (locate in /private/etc/rc.boot.d) have been started
CloverDaemon start at 2019-12-24 20:19:28
2019-12-24 20:19:28 - All clover startup scripts (locate in /private/etc/rc.boot.d) have been started
- CloverDaemonNew v1.0.8
- macOS Version 10.15.3 (Build 19D49f)
- System start at 2019-12-24 08:20:26
root mount point is '/Volumes/Macintosh HD'
Started with Clover r5101.
Clover.DisableSleepProxyClient is not set.
Sleep Proxy Client is already enabled as default.
try to mount disk0s1 as requested.
Logout hook is: /etc/rc.shutdown.d/80.save_nvram_plist.local
SIGTERM received at 2019-12-24 08:34:00
Clover.DisableSleepProxyClient is not set.
Sleep Proxy Client is already enabled as default.
I'm so sorry because I lost your post, saw only now. Late, but I see you solved.
Sorry to you as well, but same, I didn't aware of your post, not sure why I wasn't receiving notifications from my own topic...
Clover.app did not use rcscripts as they conflicts, so it must remove them. The package do just the same inverted, i.e. it remove the Daemon from this app when you install back the rc scripts.
The app actually didn't show the System log, but only show the daemon log and the bdmesg. Honestly, during the development of this app, I thought this has nothing to do with Clover. So why you did not see it. Should be easy to log some n lines, but in the event should I introduce this to Clover.app, to not use an nvram variable anymore to set how many lines to log, but instead just create always a log with a fixed size. I don't think we should mess with the nvram unless a real need exist, i.e. like a usefull functionality related to the bootloader.
For the sound, as written in the first post, it is actually doing nothing because it is under development. We discuss how to do here.
Sherlocks also asked you to type this:
.. in Terminal.app.
But, as in the app there is a button that says "read the daemon log", I expect you to show me at least this file .... otherwise I can't tell you if the Daemon it's doing its job or if a problem exists
it is coming from the Apple firmware, so I cannot know if and when they are going to update it. But I'm 99% sure that Apple have no great interest in making changes to an old driver used for years ... considering now it uses apfs.
Hi, I've created a new GUI agent application to assist Clover bootloader. Its name is "Clover.app".
Made to run in 10.9 and newer.
What it does (or should do)?
Give prominent info about the current revision in use, the Boot Device (disk where Clover is) and the the config.plist used.
Install Clover in UEFI and legacy mode with a new way to store preferences and with out a pain searching for the correct ESP.
Prevent target like Catalina-Dati from another OS (and ruin it) or read-only volumes, as this is not allowed.
Provide essential NVRAM management for most used things such Theme and sound used.
Ability to search any (correctly formatted) ESP in the system and mount/open them. As well the ability to umount.
Auto mount for the chosen ESP.
Get rid of RC Scripts... Yes, no more, just a new daemon (CloverDaemonNew) written in Swift and controllable by the NVRAM.
Dump the nvram in the ESP, boot device takes precedence, otherwise the first available Internal) EFI System Partition. Root partition as last resource.
Easily read the boot log (and the daemon log.. w/o mess the System log).
Checking for updates whithout installing preferences panes here and there: just one app.
Themes Manager embedded which doesn't require git to be installed.
About installing drivers
Unlike the package you have more control about what you are installing:
Selected drivers are just the mirror of what is it really present in your EFI/CLOVER/drivers folders, and in fact, checkboxes get activated only if the driver is really present.
Unknown drivers, i.e. ones not included in the current installer, are listed as well. Of course the app will not be able to update drivers that doesn't own.
Be aware that deselecting a driver means (unlike the pkg) to delete the driver!
A back up is always made to ~/Desktop/CloverBackUp/ .. so you can handle the back up immediately by your self.
Warning: old drivers64 and drivers64UEFI directories aren't taken into account, only new ones (drivers/UEFI and drivers/BIOS). For some time the package was updated to migrate old directory structure to a new one with also the renaming of drivers with the old -64 suffix (as Clover is 64-bit only for some time.. so no need to specify again and again).
Clover bootloader Updates
Updates are online, but will show up only if the online version is greater then installed one. Based on the update intervall you set in the GUI, otherwise monthly as default.
When a new release will be published it will appear a window that will inform you about it. Based on the update intervall you set in the GUI, monthly as default otherwise.
Clover.app is in a Beta stage, and is going to be promoted as "stable".
Update: installation of legacy Clover looks really good. (thanks to @Rodion2010 for testing the installation)
since v1.11 is now compatible with 10.9 Mavericks and newer. Tested in 10.9, 10.10, 10.11, 10.12, 10.14 and 10.15. As soon someone will test successfuly it in 10.13 the Beta stage will ends. But why waiting for a test in 10.13.. there are problems otherwise? No, no problems. The code is written in swift 5 (whith stable ABI) and I did not expect something different for the code I wrote, but the difference can reside in the Cocoa.framework shipped with the OS:
starting in 10.10 Apple introduced some new stuff for the interfaces like dark mode, Visual effect views (with vibrancy appearance) and problems can reside because many Apple-bugs where introduced and only fixed later. For this some graphical issues can show up (like a dark background with a dark text where you are able to see nothing). In the mentioned OSes all is fine (or at least perfectable), so just High Sierra is missing ....
FAQs How to find the correct partition to update/install Clover?
When you select a disk, the one with the Clover image... is the partition where Clover started. Easy no?
Why you can't see other disks under "Mount (ESP)"?
Because there, the app show only ESPs (EFI System Partition) and if a disk did not show up here... it's because the partition you are looking for is not an EFI System Partition.
Why you can't see all the partition you have in the Installer?
Because to install Clover it's required a filesystem to be FAT16, FAT32, EXFAT or HFS. Other ones are simply not taken into account.
if your ESP is formmated with FAT16 filesystem, BIOS options will not get activate because Clover doesn't have boot secotors for the ol fat filesystem!
Warning, FAT16 can be good for UEFI loading, but for example my firmware simply ignore it. FAT32 is higly recommended for ESP, you're warned.
What Make filesystem read-write" does? It is irreversible?
This function add an nvram key that the daemon can read when the system starts so that can made the filesystem writable, if isn't, by invoking "mount -uw /".
As you know starting from 10.15 the root filesystem is read-only and this functionality can help if you want to write to the System partition, like the case if you want to disable the Bonjour Sleep proxy Client, or to dump the nvram in / using EmuVariableUefi.efi, or using kexts like HibernationFixUp.
It is a permanent change? No, mount -u means update an already mounted file system, so disabling the functionality the filesystem will stay as per default. The change is applied at next start up.
What does "Disable Sleep Proxy Client?
If your computer wake itself from sleep each n hours it's probably due to the Bonjour service called "Sleep Proxy Client". If you don't want this to happen you may want to disable it.
In 10.15+ this functionality require the filesystem to be writable to add a special argument to the mDNSResponder launch daemon. By disabling the checkbox the service get re-enabled as per default, but then will require a read-write filesystem, at least for the next reboot.
Note: if the filesystem is not writable the daemon will try to make it read-write to do the modification even if "Make filesystem read-write" is turned off.
CloverDaemonNew is a complete replacement for the RC Scripts?
Yes. It does every things done by rc scripts but without installing additional scripts into the System directories.
the CloverDaemonNew is not compatible with old rc scripts and for this reason, since v1.07, Clover.app remove them. For the same reason the package remove CloverDaemonNew if you install back the rc scripts (since commit d447228 of november 29 2019).
Big thanks to @Sherlocks for helping me to make it work.
Since v1.15 Clover.app has a Theme Manager. Unlike CloverThemeManager.app git is not mandatory, and in fact it doesn't use it. The requirement it is a Github repository instead.
The main repo for Clover.app is https://github.com/CloverHackyColor/CloverThemes but the app allow you to chose a fork by specifying the GitHub user name and the GitHub repository name:
A requirement for users repository is that your will contains themes in the root of it, and not in a sub directory.
After themes are indexed (if you ever run the Theme Manager) a list of all themes is listed below:
(You can type anything you want, and auto completion is available)
..so you can switch the theme to use by set its name in NVRAM. This way Clover override what is set in the config.plist.
Since v1.13 (with Clover r5102+) Clover.app is able to handle the volume level and the device for the the start up sound:
Ensure the volume is audible (100%) and the device it is really connected to speakers. Of course your theme must contains the sound file.
How to install Clover in UEFI only?
Simply by not selecting "CloverEFI" (which means legacy Clover) and without play with MBR/PBR (Master Boot Record/Partition Boot Record). "CloverEFI" it's replaced by "BIOS".
How can you install Clover in legacy mode?
Simply by selecting "CloverEFI" (which means legacy Clover).
MBR/PBR (Master Boot Record/Partition Boot Record) must be enabled the first time to make your disk bootable, and when this happened once there is no need to install boot sectors again.
"CloverEFI" it's replaced by "BIOS".
"Alternative boot" means that the installer will installs more then one boot loader you can chose by pressing the relative number (boot3, boot5, boot6, boot7, boot9) while booting.
To do that the installer use a special boot 1 sector that wait 2 seconds to wait you for a key to be pressed.
kernel panic installing bootsectors to a hfs partition (Clover legacy)
During my tests with Clover.app I run in to a kernel panic installing boot sectors in a hfs formatted pen drive (and I realize some users had already run into this problem with the pkg) . After studying the problem, the conclusion is that the hfs driver panics when the journaling is enabled, so Clover.app take the step to disable the journal just before the installation. Of course the app re enable it as soon sectors are installed.
Will the package installer no longer be supported?
No. The package is still supported, also because Clover.app doesn't support old OSes like 10.8, 10.7 etc. and older. However the pkg has reached some limits by installing on Catalina.
Can the Clover updater coexist?
Yes, but why? With the package you have to install Clover to update them (in all partitions you have) to get access to it. With Clover.app you need only one app for all, ok, unless you have really old OSes.
The Clover preferences panel?
The idea is that you have every things you need by make Clover.app run at login.
In how many languages it is translated?
German (Mork vom Ork)
Simplified Chinese (Steve Zheng)
But it can be translated in any language supported by macOS, so just start translating the en.strings and post the file here. Or make a pull request at github.
Is it open source?
Of course yes! Changes committed at github.
How to compile?
Xcode 11+ and swift 5+ both required. buildme do it for you.
Yes it is a bug, the last. I made the buildme script to find the first worthy nasm to build Clover, but in ebuild.sh there's something apparently weird because looks for hard coded paths. Not sure why, but /opt/local/bin/nasm for example is preferred. Ok, the one shipped with macOS is bad, so I can assume someone wanted this for convenience.
/bin/sh: /nasm: No such file or directory
yep, no nasm at "/", that's the problem. Tomorow I'll fix it.