This Python script automates the process of updating your Clover bootloader to the latest version available in the YBronst/CloverBootloader repository. It was developed to simplify and speed up the update process, making it more accessible for Hackintosh community users.
- Automatic Language Detection: Automatically detects the system language (Portuguese or English) and displays messages accordingly. Messages are stored in JSON files in the
translationsfolder to make adding other languages easier. - Interactive Menu: Allows choosing what to update:
- Update BOOTX64.efi and CLOVERX64.efi
- Update UEFI Drivers
- Perform a Full Update
- Exit
- Environment Check: Ensures the script is running on macOS.
- Dependency Check: Verifies that the required commands are installed:
curlunzip/usr/libexec/PlistBuddyinstaller
- Smart Download: Downloads the Clover release once and reuses it for all operations.
- Bootloader Detection: Confirms Clover is installed on the selected EFI partition and aborts if OpenCore or Windows Boot Manager is detected.
- Mount Wait: If the EFI partition is not mounted, the script waits until you mount it manually.
- EFI Backup: Creates a full backup before making changes. Backups are stored in
~/EFI_BACKUPS, named by date and time. - Safe Update: Ensures EFI is mounted read/write before updating.
- Error Handling: Uses a custom
CloverUpdateErrorexception for clear and informative error reporting. - Detailed Logging: Saves an
update_clover_[timestamp].logfile with all actions. - Cleanup: Removes temporary downloaded files.
- Internationalization: Supports Portuguese (pt-BR) and English (en-US). Falls back to Portuguese if language detection fails.
- macOS
- Python 3
- Uses only Python’s standard library (no external modules required)
- Required macOS utilities installed:
curlunzip/usr/libexec/PlistBuddyinstaller
- Internet connection
- Mounted EFI Partition
- Mount with:
Example:
diskutil mount <partition_identifier>
diskutil mount disk0s1
- Mount with:
-
Download the Script Download:
main.pyclover_updater.pyconfig.pyefi_handler.pylogger.pymenu.pyutils.pytranslationsfolder
-
Place Files Extract everything into a single folder, for example:
update_clover -
Make Executable
chmod +x main.py
-
Run with Administrator Privileges
sudo python3 main.py
-
Follow On-Screen Instructions
- Select the EFI partition
- Ensure it is mounted
- EFI backup is created
- Choose update options
- Track progress in Terminal and in:
update_clover_[timestamp].log
- Update BOOTX64.efi and CLOVERX64.efi
- Update UEFI Drivers
- Full Update
- Exit
- Always back up EFI manually as well
- Only updates existing UEFI drivers
- Does not install new drivers
- Preserves original Clover file modification dates
- Tested on: macOS Ventura 13.6.3
- Permission Errors
- Run using
sudo
- Run using
- Download Failure
- Check internet connection
- EFI Partition Not Mounted
diskutil mount <partition_identifier>
- EFI Partition Read-Only
- Unmount and remount
- If problem persists, seek Hackintosh community support
Contributions are welcome!
Submit a Pull Request with improvements or fixes.
- Clover Developers / Slice — Clover Bootloader
- Hackintosh Community — Shared knowledge and support
- Henrique / hnanoto — Script creator
This script is provided “as is”, without warranty of any kind.
Use at your own risk.
Always make a full system backup before modifying EFI.
The script now supports multilingual messages via JSON translation files.
Currently supports:
- Portuguese
- English