hardware

hMac

For the last month or so, I tried to wear the DIY hardware hat. It's pretty cool.

I’ve built myself Hackintosh with AMD Ryzen 5 CPU in small form factor (SFF) case. This is future-proof, expandable computer that can rival any Mac mini (late 2018) configuration for far less money.

It’s perfectly usable for iOS development as it is but I intend to make it 100% functional.

This build is macOS Catalina compatible machine, where everything works with SIP (System Integrity Protection) on. All the usual caveats that people post on YouTube and various forums for their Hackintosh builds do not apply here. Ethernet works. WiFi (11ac) works. BT4LE works. All Apple services work, things like iMessage, AirDrop, Apple Watch unlock etc. Playing DRM content (Apple TV+, Netflix) works. Few features remain to be sorted out (sleep/wake and Thunderbolt 3) which I’ll address in due time.

Why do this? I work in Xcode, all day. Machine I need for work is essentially Mac mini but with 12 or 16 cores which Xcode knows how to use. Apple does not offer such machine and most likely never will.

The hardware list and the actual build will be detailed in upcoming post; for now I’ll just list the most important ingredients:

This is regular PC build housed in wonderful small form factor (SFF) chassis. Windows 10 is installed on the 860 EVO SSD. For macOS I reserved the faster XPG 8200 Pro SSD. To make it ready for successful macOS installation, I needed to perform some interesting hardware mods.

The ASRock X570 ITX motherboard integrates Intel’s AX200 wireless module, a tiny wonder of a card which brings WiFi 6 and Bluetooth 5. Sadly, that card can’t possibly work under macOS as there are simply no drivers (although there’s at least one person attempting to write them).

Thus I needed something that Apple itself is (or was) using.

WiFi & BT

The Fenvi store on AliExpress offers multiple items ready-made for Hackintosh builds using the same Broadcom chips that Apple was using in older Macs. You can even buy the original Apple cards salvaged from some broken-down Macs.

Recommended card is this:

In order to plug that in, I had to dismantle I/O shield and replace Intel’s card with it.

Because Fenvi’s card is intended for use in MacBooks / iMacs, it can’t be directly plugged in here (it’s a different connector). Hence the need for an adapter card.

Second problem is that it’s taller than Intel’s card (AX200 really is amazingly small) so what I linked below is riser cable with adapter to accept the Fenvi.

This turned out great since I could lift the wireless card out of the I/O and get much better reception when I attached 4 IPX MFH4 antenna receptors to it (you get 2 of these with the adapter and more can be found on AliExpress for few bucks).

It’s really a hodgepodge contraption 🙃 but these antennas are so tiny and flexible that I could attach them to the inside of the chassis since they take up way less space than original antennas delivered along with the motherboard. Thus the final build is a clean, compact machine that looks great.

With that mod, I had perfect WiFi 5 and BT 4.0 in macOS, with no additional software required. It acts and works as native Apple hardware.

Another option is to use different Fenvi card which is physically identical to Intel AX200. But that card is based on older Broadcom chip (BCM94352Z) which requires 4 different .kexts for WiFi and Bluetooth to work. Plus it seems that Apple Watch unlock is not really working although it’s advertised as Supported in System Information and initial setup goes through.

So if you can, use cards based on BCM94360CS2 or BCM943602CS chips. Contraption or not, they truly work out of the box.

macOS setup

When you have proper hardware ready, as close to what Apple already uses — that is when hack-intoshing starts.

The history of tricking OS X to install on non-Apple hardware is really long and colorful; if you are interested, search for names like UniBeast, MultiBeast and Clover. Most of what you will find is outdated and pretty much abandoned at some point thus it’s interesting purely as history. Majority of that stuff is aimed at builds with Intel CPUs which I am not using.

That’s the main hurdle to overcome in this whole endeavour; working software configurations are fast-moving target, on a month by month basis. There’s a lot of dead ends in various forums, on YouTube, Reddit, Discord and what not. Frankly speaking, it’s maddening and you often despair “why in the hell am I doing this”.

I chose to build using OpenCore, the newest boot-loader which is still very beta but it’s already mighty useful. I chose it for one very specific reason out of multiple other advantages over older boot-loaders like Clover:

OpenCore is designed with the future in mind and uses modern methods to load 3rd party kernel extensions without breaking System Integrity Protection.

I did not want a Mac that more or less works. Or almost works. It needed to work as a Mac, period. While still working to get it all set-up, Catalina 10.15.3 was released and I upgraded to it the same way you do on any Mac: by clicking “Update now” button in System Preferences; it went without a hitch.

The road to get to fully working state is still way, way too complex.

Was it worth it?

Comparable Mac mini 2018 would be the one with i7-8700 6-core Intel CPU, 16GB of RAM and 1TB SSD. In Germany (where hw prices are comparable to what I paid), that would cost about €2.200. Total for my build is one grand less: €1.220.

It’s worth pointing out that my build uses far superior GPU than Intel 630 integrated graphics in Mac mini – if there was a possibility to use something like Ryzen 3450G, my total bill would most likely be less.

For that price, I get identical or better performance in infinitely more upgradable package (something that Mac mini is incapable-of, by design):

Thus from purely money-out-of-pocket perspective, it’s very much worth it. Especially if you need multiple Macs — once you learn how to do one, any additional ones are fairly straight-forward.

What’s missing from this calculation is how much do you value your time. I spent about 3-4 weeks full-time working to get to this point. I may need to keep spending time in the future with major macOS upgrades. I learned a lot during this build thus each future adjustment will take drastically less time.

But you may also find yourself spending 2 weeks or 4 weeks and still be nowhere near the goal. There are no guarantees here although patrons at AMD OS X Discord will do their best to help you. Thus keep this in mind — this is not easy. It can be infuriatingly hard. I learned about inner workings of computers far more than I ever wanted to. So if you are not ready or not able to invest a lot of your time, think about do you really want to do this.

SFF PC builds rekindled my long lost love for tinkering with computer parts. If it wasn’t for that, I would probably not get into Hackintosh-ing and would continue to use my 3+ year old MacBook Pro.

Benchmarks

Here are some comparisons between my 6-core hMac build versus some closely matched Apple hardware.

This build is significantly (like twice or more) cheaper than any of those Macs. As I said, Apple should really, really look into AMD CPUs as alternative to Intel’s. Here’s one comparison with the best mainstream AMD and Intel CPUs today:

I would be more than happy to sell this machine to someone else then pay double or more for Apple-designed desktop Mac with 3950X inside it. I really would.

What I can’t justify is spending 4x or 6x more than this for (a truly amazing) Mac Pro which has capabilities I’ll never get to use, personally or business-wise. Mac mini-ish desktop with 12-16 cores is what most developers (outside of games and AR/VR) need.

Thus my next build will be pretty much the same config but with 3950X inside and 32GB of memory. It would still cost me less than Mac mini I spec-ed above. And with that machine, this entire investment will pay off handsomely.