Keeping your Hackintosh up-to-date, my method

Keeping your Hackintosh up-to-date, my method

One of the possible challenges with using a Hackintosh is having to deal with OS updates. Though this is much less of an issue if you have properly set up your Hackintosh (e.g. using the Vanilla method, relying on as few custom Kexts as possible, and properly setting up things like your USB ports), it is always recommended to both keep your machine as up-to-date as possible, and at the same time not jumping on new updates day-one.

The former is important as newer updates often come with bug fixes, security updates and more good things, and the latter is to give the community as a whole a chance to check out any and all new versions to see if something perhaps more drastic has changed, requiring some additional work.

Update: This process still works perfectly up to and including 10.14.6, the recent-most version as of this update (2019-08-19).

Thoughts on Catalina

I have written up a few thoughts regarding upgrading to Catalina. Please check out the article if you came here looking information on upgrading to Catalina.

An update is available for your Hack

This guide will cover the steps I usually take when updating my Hackintosh. I take the opportunity to also update Clover and any Kexts that might have an update. While these steps are not required, I do think it's a good method as it ensures your Hack is as up-to-date as can be.

Step 1: Your bootable backup drive

If you don't already have a bootable backup drive, you might want to start with this now. The absolute best way to ensure you're never kicked out of your Hack, losing many hours of productivity (or fun) having to try to get things to work again, is to have a secondary hard drive (or SSD) that is bootable. This way if you ever make an oopsy on your main drive, you can use the secondary drive to boot right back up, fix whatever is broken, and reboot back from your main drive.

SuperDuper!'s main screen.

In my case I have an internal 500GB 7200rpm hard drive that I use as a clone of my main Samsung EVO 960 500GB SSD. Every now and then I use SuperDuper! to clone my entire main drive over, and do this every time before doing a macOS update. You can also use CarbonCopyCloner, or if you're comfortable with the command-line even dd will do the trick. However, for me using one of these tools has a few benefits that make it easier to use, and if you decide to purchase either of them they can even ensure more up-to-date backups by letting you schedule them automatically.

The SuperDuper! screen after finishing cloning my main drive over to a backup drive.
Note: This is also entirely possible by using an external (USB) hard drive. macOS has no trouble booting from external drives, so long as your hardware supports this. Fortunately pretty much every single motherboard supports booting from USB these days, so you should be fine there.

Step 1.2: Copying over your EFI partition

To ensure your backup drive is also fully bootable, you need to copy your working Clover configuration over as-well. To do this, mount both your main drive's EFI partition as-well as your backup drive's, and simply copy the EFI folder over.

You should do this every time you have made changes/updates to your Clover/boot configuration that are confirmed to be working, to ensure you will always have a working bootable backup. Don't copy things over before you make absolutely certain your configuration works properly, or things will go bad if you ever need to boot from the backup drive of course.

Step 1.3: Confirm your backup drive is bootable

To make sure your backup drive is indeed bootable you should test this out. The ideal setup would be to actually unplug your main drive, followed by trying to boot from your backup drive, but if you are unable to do this (e.g. when you have a laptop), at least make sure that you select your backup drive from the boot screen of your bios. You'll want to make sure the drive is fully independently bootable, without relying even in part on your main drive.

Step 2: Updating Clover & Kexts

At this point I start by updating Clover and any Kexts I have installed that might have updates. To do this I personally use Clover Configurator, but the manual approach can work fine too. The guide will assume Clover Configurator (referred to as Configurator for convenience), so if you are not using this, please substitute Configurator-specific steps with your equivalent ones.

2.1: Update the Clover Bootloader

Launch Clover Configurator, and select the Mount EFI option in the sidebar. Mount your main drive's EFI drive, open it, and open the config.plist file within the EFI/Clover folder with Configurator.

An update for the Clover Bootloader is available.

Now head to the Install/Update Clover screen from the sidebar, select the CLOVERX64.efi radio button, and click the Check Now button in the bottom right-hand side of the screen. If an update is available, the top half of the screen will update to show this (as seen in the screenshot above). If this is the case, click the Update button to have the Configurator download the installer of the recent-most version.

The Clover Bootloader installer welcome screen.

Once downloaded, the installer will launch automatically. Click through its steps, ensuring the appropriate settings are set for your configuration. For example, ensure you select where to install the bootloader to, and pick your main drive as its destination. The installer is smart enough to know and select the EFI partition specifically.

Further, another point worth noting is that the installer's installation features seems to at least in part default to its own defaults, rather than what you have previously configured. For example, I recently switched to using VirtualSMC instead of FakeSMC, but the installer still wanted to install the SMCHelper-64 efi extension. I also have removed the VBoxHfs-64 extension but the installer wanted to install this again.

Manually check all items the installer plans on installing, and disable any you don't need.

So make sure to scroll through the list of what it plans to install, unchecking anything that isn't applicable to your system, and possibly checking whatever is relevant. If you have previously installed certain modules or extensions using this installer, make sure that they are checked once again just in case these too were updated.

Once you have done this, go ahead and install the updated bootloader.

Note: At this point I usually reboot first before continuing with next steps, to ensure the latest-most version of Clover did not introduce any issues with my system. While not required, I highly recommend you do the same to any possible issues that might arise are easier to debug.

To ensure the update worked, after rebooting re-launch Clover Configurator, re-mount the EFI partition, re-open the config.plist file, then head over to the Install/Update Clover option and check for updates again. If it all went well, you should see that the top half of the screen now only shows one version, which is both the latest version as-well as what your Hack is currently using.

Clover Configurator showing you're running the recent-most version.

2.2: Update any Kexts that might have updates available

Launch Clover Configurator if you haven't already, and use its Mount EFI option to mount your main drive's EFI partition, then re-open EFI/Clover/config.plist again.

Update: Another, perhaps simpler method is to use InsanelyMac Forum user Sascha_77' Kext Updater tool. This tool tries to automatically search for and download Kexts you have installed that have updates available. These are then placed in a folder on your desktop (by default) from where you can manually copy them into the appropriate folder. I don't think this checks for all Kexts, but it covers most of the common ones at least. I have kept my originally described method below as it's still a valid method, albeit a slightly more tedious one.

Now, head to the Kexts Installer screen and scroll through the list. On the right-hand side of the list you can see what the latest-most version available is. I manually compare these with the Kexts I have installed (You can use right click » Get Info on each Kexts file to see what its version is), and enable the checkbox for each Kext that has an update available.

Clover Configurator showing several Kexts available to install or update.

Note that Clover Configurator does not list all possible Kexts, so if you are relying on other Kexts Configurator isn't familiar with, be sure to check their respective Github/Bitbucket repos if any newer version is available.

Once you have updated all relevant Kexts, reboot once again to ensure your Hack still boots up fine. Unless your setup required very specific tweaks or hacks, this should in most cases not cause any issues, but it is always good to make sure.

2.3: Copying your new EFI setup over

With your freshly updated Clover and Kexts, now might be a good time to save your EFI folder so that, should something happen that isn't related to a mis-configuration with Clover or any Kexts and you need to restore from your backup drive, you can easily bring back all these updated files without having to manually re-install them.

A collection of ZIP files of previous, outdated or test Clover configurations.

You can either copy everything over to your backup drive's EFI partition (after being absolutely certain your updated setup works properly, of course), and/or create a ZIP file of the EFI folder for safe-keeping. I usually do both, as I like to keep a collection of archives with previously working or work-in-progress Clover configurations. I don't actually have to keep all these versions, but they're not in the way and might help me later on if I, for example, want to continue a previously attempted configuration.

Step 3: Updating macOS

You are now ready to update macOS. Head on over to your System Preferences » Software Update, and start downloading your updates if you haven't already. At the time of writing this guide, 10.14.3 was the recent-most version of macOS as can be seen below.

macOS' Software Update screen showing there is an update available.

A note on automatic updates

As you might have noticed in the above screenshot, my Automatically keep my Mac up to date checkbox is partially enabled. I have all checkboxes except Install macOS updates enabled, to ensure my OS is safe from potential threats and all apps are up-to-date, but I choose when the update happens. I would recommend you follow a similar configuration for the same reasons.

The Software Update automatic options with Install macOS updates disabled but everything else enabled.

Go through the usual macOS update process, ensure your Hack boots from the appropriate boot option at reboot (e.g. the Install macOS option on the first reboot, and your main drive for the last reboot, usually).

macOS almost done updating to the recent-most version..

When everything is finished you should know very quickly if the update worked fine on your Hack or if something went wrong. Most point updates will work fine if, again, your setup is properly configured, but there's always the possibility of unforeseen issues, and this is why it is so highly recommended to have a backup drive.

Fully up to date, joy!

Should any issues have popped up, and should there be no remedy available just yet (Google is your friend, along with popular Hackintosh websites and sub-reddits), you fortunately have a working and bootable backup you can restore from.

If you ever need to do this, simply boot from your backup drive, and use aforementioned tools like SuperDuper! or CarbonCopyCloner to restore its entire contents back to your main drive. Then, reboot and select your main drive as before, and you'll boot right back to a working setup running the previous version of macOS that, at least on your setup, had no issues.

Closing thoughts

This process might seem tedious at first, but it really isn't. Furthermore, this process is actually a good approach to apply even for real Macs, as there is always the possibility of an issue or two. While solutions like Time Machine are certainly handy (and a great idea to set up, too), being able to instantly boot up from a working secondary drive is incredibly valuable and can be a massive time saver in certain cases.

That's all for now. I hope this guide of my specific process of updating my Hackintosh can be useful to you too. While you certainly don't have to follow it exactly, and while certain steps are completely separate from updating macOS, I have found that doing it this way has allowed my Hackintosh to continue to run well, require minimum maintenance work, and yet it still remains as up-to-date as I would like it to be.