OpenCore Legacy Patcher Retrospective & Next Chapter
Seeing that this year will be OpenCore Legacy Patcher’s 5th anniversary and that there’s some bitter-sweet news to share (more at the end), I thought it’d be a good time to reflect on my time with OpenCore Legacy Patcher.
Background
For those who are unfamiliar (impressed you found this blog…), OpenCore Legacy Patcher was a project I co-authored with my good friend DhinakG back in 2020. The general idea was this: How do you get macOS Big Sur running on unsupported Macs?
The reason this question even came up was that we saw the legendary dosdude1 was taking a step back from macOS patcher development with Big Sur (later confirming such). Thus a decent hole was left where several patchers took their place: Barry KN’s micropatcher, Todd Bruss’ Big Mac Patcher and Ben Sova’s Patched Sur to name a few.
With Dhinak and I, we were heavily based in the Hackintosh world however saw an opportunity where Acidanthera’s OpenCorePkg could step in and provide a more dynamic solution through in-memory patching. While originally a proof of concept to prove someone wrong online (as all good projects do 😛), we kept building on it as it was able to handle edge cases other patchers couldn’t (native software updates, model spoofing, ACPI patching, etc).
Through that, more amazing developers and community members jumped in including ASentientBot, EduCovas, Ausdauersportler, IronApple, UHDBit, thatstella7922, crystall1nedev, Socamx, Paradox94, ASentientHedgehog, Mr.Macintosh, and so many more! (And we can’t forget the amazing work from the Acidanthera team, which without Lilu, OpenCorePkg, etc, we wouldn’t have been able to build OpenCore Legacy Patcher!)
A little tidbit of history: OpenCore Legacy Patcher was originally never even written on a genuine Mac. Up to this point, I avoided Apple hardware. Instead, the original proof of concept was written between 2 Hackintoshes, an Intel X299 desktop inside a PowerMac G5 case and an HP Elite X2 G1 tablet running Big Sur’s beta:
Desktop | Tablet |
---|---|
![]() |
![]() |
Notable milestones
2020/12/01 - v0.0.1 - Text based interface
The very first release of OpenCore Legacy Patcher! All TUI-based, and requiring Python 2 (which used to ship with macOS 🥲). This build “supported” the following models for macOS Big Sur:
- There were ofc many pitfalls that were later addressed.
Model Identifier | Year |
---|---|
MacBook5,1 - MacBook7,1 | 2008 - 2010 MacBook |
MacBookAir2,1 - MacBookAir5,x | 2009 - 2012 MacBook Air |
MacBookPro4,1 - MacBookPro10,x | 2008 - 2012 MacBook Pro |
Macmini3,1 - Macmini6,x | 2009 - 2012 Mac mini |
iMac7,1 - iMac14,x (excluding 14,4) | 2007 - 2013 iMac |
MacPro3,1 - MacPro5,1 | 2008 - 2012 Mac Pro |
Xserve3,1 | 2009 Xserve |
2021/03/01 - v0.0.11 - Python 3 rewrite and stand-alone binary
Thanks to some massive reworking from DhinakG, OpenCore Legacy Patcher’s codebase now supports Python 3. And with it, integration with PyInstaller allowing for stand alone binaries without the need for external dependancies!
2021/03/27 - v0.0.19 - Code signing and notarization
Somehow got Apple to sign and notarize OpenCore Legacy Patcher! Fun fact: You can bypass a bunch of Apple’s checks by encrypting your resources 😛
- And yes, the DMG’s password has in fact always been “password”.
2021/04/26 - v0.1.1 - macOS Big Sur non-Metal graphics support
What seemed like out of left field, ASentientBot was able to get non-Metal graphics working! Much of the community thought it was a dead end with macOS Big Sur.
2021/06/14 - v0.1.7 - macOS Monterey and TeraScale 2 graphics support
2 big changes in one release! Regarding TeraScale 2 support, we were the first patcher to get it working on anything newer than macOS 10.13, High Sierra! However all the credit goes to ASentientBot.
2021/07/11 - v0.2.3 - dosdude1 GUI
dosdude1’s return to macOS patching through OpenCore Legacy Patcher! This time with a CLI wrapper written in Objective-C:
2021/09/23 - v0.2.5 - macOS Monterey non-Metal graphics support
Miracles can happen twice! Of course, the credit goes to ASentientBot and EduCovas for their amazing work!
2021/12/13 - v0.3.2 - Restoring the 5k iMac’s Dual DisplayPort Stream
Really fun challenge to work on, and super thankful for @turbomacs for donating a 5k iMac for research! Even got a fun blog post out of it:
2022/01/21 - v0.4.0 - Native wxPython GUI
After much work, we built a GUI that was able to interoperate with OpenCore Legacy Patcher’s core much closer through wxPython. Though if I had my way, we’d always be a TUI-based patcher 😅
2022/05/02 - v0.4.4 - Automatic OS patching
Thanks to DhinakG’s research, we were able to add automatic root volume patching during OS installation, and detection of missing patches post-update!
2022/06/11 - v0.4.6 - NVIDIA Web Drivers support
Everyone thought Web Drivers were dead after macOS 10.13 , High Sierra (including myself). Well with some black magic, ASentientBot and Flagers were able to do the impossible:
2022/10/25 - v0.5.0 - macOS Ventura support
This release has a fun little backstory, specifically that it was the first macOS unveil where Mr.Macintosh and I were at Apple Park! With live macOS patching shenanigans.
And a big thank you to those who funded my GoFundMe to get there. I was originally quite hesitant to ask for any support, but Mr.Macintosh encouraged me to do so. Honestly a once in a lifetime opportunity!
Tim and Craig! | 2012 MacBook Pro installing Ventura beta 1! |
---|---|
![]() |
![]() |
2022/10/27 - v0.5.1 - Restoring the Trash Can Mac Pro’s firmware support
Similar to the 5k iMac, JohnD graciously donated a 2013 Mac Pro for research as it was unable to boot macOS Ventura. After much fighting, we were finally able to get it to boot!
2023/01/23 - v0.6.0 - macOS Ventura Rapid Security Response and non-Metal graphics support
Another 2 for one, this time fighting my entire winter break from school on Apple’s shiny new Rapid Security Response. As usual, huge shout out to EduCovas, ASentientBot, Flagers and DhinakG for their amazing work on this release!
2023/05/22 - v0.6.6 - Overhauled wxPython GUI
Now with more icons! My personal favorite being the support icon.
2023/06/02 - v0.6.7 - Launching our OpenCollective
After many requests, we finally launched our OpenCollective! With it, the community helped fund research and fixes through hardware and software purchases. This was especially important for our developers in less fortunate countries. Thank you to everyone who donated!
And a big thank you to Mr.Macintosh for pushing us to do this!
2023/10/02 - v1.0.0 - macOS Sonoma support
Our 4th OS release, now with saner semantic versioning 🎉 (Though throwing darts for versioning was kinda fun while it lasted)
2023/11/10 - v1.2.0 - Background caching of patcher assets
After many conversations with Mr.Macintosh on how to improve the patching experience, we were able to implement OS update detection for asset caching with items requiring network connections (ie. KdkSupportPkg)!
And around this same time, I also spoke a bit about the internals of making a macOS patcher and what it means to be a “tier 2 citizen” at BSides Calgary (my very first talk!): BSides Calgary 2023 Talk: Legacy Macs, Modern Solutions. A Hacker’s Approach to Mac Sustainability.
2024/05/31 - v1.5.0 - Privileged Helper Tool and PKG-based distribution
After having spent the last year working as a MacAdmin, I grew quite an interest in PKG deployments. So of course, I converted OpenCore Legacy Patcher’s installation system into a streamlined PKG system.
And with it, a new privileged helper tool to drop the annoying password requirement for many of the patcher’s functions.
Installer | Uninstaller |
---|---|
![]() |
![]() |
2024/09/14 - v2.0.0 - macOS Sequoia support
Supporting our 5th OS release 🦾, and still, not a single machine we previously supported was removed. Though unfortunately we’ve still been unable to get the 2018 and 2019 MacBook Airs supported due to firmware shenanigans 🫠
Finally some bittersweet news
After some genuinely amazing years of working on OpenCore Legacy Patcher, I believe it’s time to pivot my work on breaking Apple platforms in a new direction. Specifically towards a small, Cupertino-based startup.
Beginning next week, I’ll be joining Apple’s Bug Bounty team out in Seattle (I’ll miss you Canada 🫎). It’s quite the shift, but excited for the challenges to come!
What does this mean for OpenCore Legacy Patcher?
Hopefully very little, as there are still going to be a ton of brilliant members working on the patcher. The project will be in good hands.
Otherwise thank you to all the people who’ve helped build OpenCore Legacy Patcher, as well as the community that supported us throughout. I wish the best of luck with the future of macOS 🫡