Popular Post vector sigma Posted November 6, 2019 Popular Post Share Posted November 6, 2019 (edited) 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. Clover.app Updates 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. Testing 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) Update: 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 .... FAQsHow 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. Example: 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. Warning: 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. Themes 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. Sound Since v1.13 (with Clover r5102+) Clover.app is able to handle the volume level and the device for the the start up sound: No 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? Actually in English (me) Italian (me) Russian (Slice) Portoguese (artur_pt) Korean (Sherlocks) German (Mork vom Ork) Simplified Chinese (Steve Zheng) Indonesian (Badruzeus) Serbian (crusher) French (Ellybz) 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. Last Release here Edited April 29, 2020 by vector sigma updated new release 29 6 Link to comment Share on other sites More sharing options...
vector sigma Posted November 6, 2019 Author Share Posted November 6, 2019 Changes committed. You can compile it by your self if you have Xcode 11. Link to comment Share on other sites More sharing options...
jinbingmao Posted November 6, 2019 Share Posted November 6, 2019 Excellent works 1 Link to comment Share on other sites More sharing options...
n.d.k Posted November 7, 2019 Share Posted November 7, 2019 Indeed, Great Jobs! It's compileable via Xcode IDE, right? should be.. Link to comment Share on other sites More sharing options...
vector sigma Posted November 7, 2019 Author Share Posted November 7, 2019 2 minutes ago, n.d.k said: Indeed, Great Jobs! It's compileable via Xcode IDE, right? should be.. Yes, but the first dependency is Clover, i.e. must be already compiled when you want to build the app. 1 1 Link to comment Share on other sites More sharing options...
Matgen84 Posted November 7, 2019 Share Posted November 7, 2019 (edited) Hi @vector sigma I try to build Clover.app for testing using XCode11.2 on Mojave (10.14.6): I don't understand the result below. I've made a mistake. How to do correctly, please. Edited November 7, 2019 by Matgen84 Link to comment Share on other sites More sharing options...
vector sigma Posted November 7, 2019 Author Share Posted November 7, 2019 (edited) 11 hours ago, vector sigma said: How to compile? Xcode 11+ and swift 5+ both required. buildme can do it for you. ...and temporary files will didn't show... just the usual sym directory: 3) make app Edited November 7, 2019 by vector sigma 1 Link to comment Share on other sites More sharing options...
vector sigma Posted November 7, 2019 Author Share Posted November 7, 2019 @Matgen84 had a success? Link to comment Share on other sites More sharing options...
Matgen84 Posted November 7, 2019 Share Posted November 7, 2019 (edited) 2 hours ago, vector sigma said: @Matgen84 had a success? Yes after Build Clover again and of course makepkg. Great works I don't remember how to keep XCODE8 Toolchain by default despite of Build Clover option. I surely misunderstood something: I can find "make" executable in CloverApp folder. I take a look in Clover repo on GitHub, there is only "Makefile". EDIT: CloverApp Install option only detect my Windows EFI Partition (disk0s1) and not my MoJave EFI Partition (Disks1s1). I've two HDD of course. Edited November 7, 2019 by Matgen84 Link to comment Share on other sites More sharing options...
vector sigma Posted November 7, 2019 Author Share Posted November 7, 2019 47 minutes ago, Matgen84 said: Yes after Build Clover again and of course makepkg. Great works I don't remember how to keep XCODE8 Toolchain by default despite of Build Clover option. I surely misunderstood something: I can find "make" executable in CloverApp folder. I take a look in Clover repo on GitHub, there is only "Makefile". EDIT: CloverApp Install option only detect my Windows EFI Partition (disk0s1) and not my MoJave EFI Partition (Disks1s1). I've two HDD of course. please post the result of 'diskutil list" Link to comment Share on other sites More sharing options...
Matgen84 Posted November 7, 2019 Share Posted November 7, 2019 7 minutes ago, vector sigma said: please post the result of 'diskutil list" File in attachement Matgen84_DiskUtil_List.zip Link to comment Share on other sites More sharing options...
MaLd0n Posted November 7, 2019 Share Posted November 7, 2019 wow 2 Link to comment Share on other sites More sharing options...
vector sigma Posted November 7, 2019 Author Share Posted November 7, 2019 (edited) On 11/7/2019 at 5:39 PM, Matgen84 said: File in attachement Matgen84_DiskUtil_List.zip Thanks. Run please this version: {removed}, it create ~/Desktop/diskLog.txt. It will help me. Edited November 21, 2019 by vector sigma Link to comment Share on other sites More sharing options...
Slice Posted November 8, 2019 Share Posted November 8, 2019 I uploaded CloverV2-5098.zip into 5098 release. What is wrong here? [BUILD APP] (Require Xcode 11 or greater) [CHECK XCODE] Building Clover.app... [XCODE] ./buildme: line 186: CLOVER: unbound variable I have Xcode 11.2.1 GM beta. Link to comment Share on other sites More sharing options...
Matgen84 Posted November 8, 2019 Share Posted November 8, 2019 6 hours ago, vector sigma said: Thanks. Run please this version: Clover.app_diskLog.zip, it create ~/Desktop/diskLog.txt. It will help me. If there is a problem for install Clover: the app only detect Windows EFI Partition. Mount ESP works well, detect macOS Mojave EFI. disklog in attachement Thanks for your job diskLog.txt.zip Link to comment Share on other sites More sharing options...
vector sigma Posted November 8, 2019 Author Share Posted November 8, 2019 8 hours ago, Slice said: ./buildme: line 186: CLOVER: unbound variable was a mistake, fixed thanks! Link to comment Share on other sites More sharing options...
vector sigma Posted November 8, 2019 Author Share Posted November 8, 2019 (edited) 8 hours ago, Matgen84 said: If there is a problem for install Clover: the app only detect Windows EFI Partition. Mount ESP works well, detect macOS Mojave EFI. disklog in attachement Thanks for your job diskLog.txt.zip Hi this should be your disk: disk1s1 = { "BSD Major" = 1; "BSD Minor" = 6; "BSD Name" = disk1s1; "BSD Unit" = 1; Base = 20480; Content = "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"; "Content Hint" = "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"; Ejectable = 0; "GPT Attributes" = 0; IOBusyInterest = "IOCommand is not serializable"; IOGeneralInterest = "IOCommand is not serializable"; Leaf = 1; Open = 0; "Partition ID" = 1; "Preferred Block Size" = 512; Removable = 0; Size = 209715200; UUID = "7044A270-43C5-478A-B091-DFDD99A39DBF"; Whole = 0; Writable = 1; }; The disk is listed normally among all disks but not in all esps: - getAllESPs() ------------------ ["disk1s1"] --------------------------------- so the problem is not the "core" code but is else where. Are you available to do more tests and try to solve this problem? Edited November 8, 2019 by vector sigma Link to comment Share on other sites More sharing options...
vector sigma Posted November 8, 2019 Author Share Posted November 8, 2019 (edited) 8 hours ago, Slice said: I uploaded CloverV2-5098.zip into 5098 release. Thanks the app found it (it breaks at the correct link): https://github.com/CloverHackyColor/CloverBootloader/releases/download/5098/CloverISO-5098.tar.lzma https://github.com/CloverHackyColor/CloverBootloader/releases/download/5098/CloverV2-5098.zip but I have 5098 avery where and since is the same revision did not show me in the GUI. Did it for you? Edited November 8, 2019 by vector sigma Link to comment Share on other sites More sharing options...
Matgen84 Posted November 8, 2019 Share Posted November 8, 2019 1 hour ago, vector sigma said: Hi this should be your disk: disk1s1 = { "BSD Major" = 1; "BSD Minor" = 6; "BSD Name" = disk1s1; "BSD Unit" = 1; Base = 20480; Content = "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"; "Content Hint" = "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"; Ejectable = 0; "GPT Attributes" = 0; IOBusyInterest = "IOCommand is not serializable"; IOGeneralInterest = "IOCommand is not serializable"; Leaf = 1; Open = 0; "Partition ID" = 1; "Preferred Block Size" = 512; Removable = 0; Size = 209715200; UUID = "7044A270-43C5-478A-B091-DFDD99A39DBF"; Whole = 0; Writable = 1; }; The disk is listed normally among all disks but not in all esps: - getAllESPs() ------------------ ["disk1s1"] --------------------------------- so the problem is not the "core" code but is else where. Are you available to do more tests and try to solve this problem? Of course, I want to try more test to solve this problem. While the disk is seen normally, I don't understand why there is this issue. This has nothing to do with, however, ESP Mounter Pro v1.9.1 is working properly on my Mojave config. Link to comment Share on other sites More sharing options...
vector sigma Posted November 8, 2019 Author Share Posted November 8, 2019 4 minutes ago, Matgen84 said: While the disk is seen normally, I don't understand why there is this issue. Disks are all listed, but at the installer a check is made: Disk must be marked as writable Disk must be FAT32 or ExFat or HFS now I realize that the function can return a generic "msdos" file system, so I added it. You can check if the problem is solved by updating Clover and compiling it. If you can't compile, let me know and I'll post it for you. Link to comment Share on other sites More sharing options...
Matgen84 Posted November 8, 2019 Share Posted November 8, 2019 5 minutes ago, vector sigma said: Disks are all listed, but at the installer a check is made: Disk must be marked as writable Disk must be FAT32 or ExFat or HFS now I realize that the function can return a generic "msdos" file system, so I added it. You can check if the problem is solved by updating Clover and compiling it. If you can't compile, let me know and I'll post it for you. I update and report. If I can't compile, I tell you 1 Link to comment Share on other sites More sharing options...
vector sigma Posted November 8, 2019 Author Share Posted November 8, 2019 @Slice, the Russian translations are at 95%, can you take a look? https://github.com/CloverHackyColor/CloverBootloader/blob/master/CloverApp/Lang.bundle/Contents/Resources/ru.strings Link to comment Share on other sites More sharing options...
vector sigma Posted November 8, 2019 Author Share Posted November 8, 2019 Clover.app v1.01 Alpha added at first post. Link to comment Share on other sites More sharing options...
Matgen84 Posted November 8, 2019 Share Posted November 8, 2019 (edited) 25 minutes ago, Matgen84 said: I update and report. If I can't compile, I tell you Always same problem after update Clover and despite 1.01 Alpha. Can you post your app. Please. Edited November 8, 2019 by Matgen84 Link to comment Share on other sites More sharing options...
vector sigma Posted November 8, 2019 Author Share Posted November 8, 2019 @Matgen84 thanks for your picture. Fat16 is not allowed, Clover legacy will never use it, so the installer is working properly. Backup your file and format the ESP in Fat32 Link to comment Share on other sites More sharing options...
Recommended Posts