Last Week on My Mac: shrinking macOS updates

Our first sort of broadband connection to the Internet came through satellite. Living in what’s referred to as a semi-rural location meant that it was a long time before fibre made it to our village. As connections gradually improved, we found ourselves within reach of ADSL, and the satellite dish was replaced with a reliable but pedestrian 4 Mbps connection over copper cable.

Last week, following long delays due to lockdowns and other factors, in a matter of minutes our connection leaped to around 54 Mbps down, and better than 14 Mbps up. Suddenly, downloading Xcode 13.2 took less than half an hour, rather than an overnight plod of eight hours or more. Our Apple TV+ subscription became useful for the first time too. While I’m sure those whose connections are closer to Gbps are decidedly unimpressed, for those of us living in the sticks this is revolutionary.

It could so easily obscure another and far more important issue that I’ve been writing about and wrestling with over the last year: the size of macOS updates. And last week saw the first general update to Monterey.

Cast your mind back to this same time last year, and you may recall that the update to Big Sur 11.1 was huge: almost 3.3 GB for Intel models, and 4.2 GB for the M1. Those compare with Catalina 10.15.1 the previous year at 4.5 GB, and 10.15.2 at 3.5 GB, and Monterey 12.1 at a mere 2.8 GB for Intel and 3.2 GB for the growing range of M1 models.

The macOS 12.1 update is the smallest x.1 update since High Sierra 10.13.1 in October 2017, over four years ago.

That isn’t to say that 12.1 was a trivial update. It fixed at least two serious memory leaks, over forty vulnerabilities, and brought SharePlay and enhanced Memories for Photos, features which had been held over from 12.0.1. In my full analysis of what has changed, twenty of the 56 bundled apps have been replaced with new versions, or significantly augmented build numbers. Other major components, including the Finder and Dock, Siri and Spotlight have been updated too, as have multiple kernel extensions and a great many public and private frameworks.

So how come the 12.1 update was so small to download?

One reason is that Monterey itself doesn’t have the same fundamental changes as other recent major versions of macOS. It doesn’t bring any substantial change in architecture, such as the division of System and Data volumes in Catalina, or the SSV in Big Sur. Changes in volume layout are relatively small in Monterey by comparison. That in turn means that there aren’t anywhere near as many ‘first release’ bugs to fix, as there have been in its predecessors.

More significantly, Apple’s engineers have turned their attention to making downloads more efficient at last. Big Sur’s SSV, the need for universal executables and the M1’s new Secure Boot drove a complete change in the way that macOS updates work, and explain why we’re currently not offered standalone updaters. When those engineers were concentrating their effort at making their new installers reliable, the minimum download was around 2.3 GB for Intel models and 3.2 GB for an M1. That differential of about 900 MB for Apple Silicon always had to be downloaded direct from Apple’s servers, even when you run a local content caching server. Yet in the 12.1 update, M1 Macs got away with about 3.2 GB for the whole update, and Intel models just over 2.8 GB.

You will also no doubt have noticed that the time taken to prepare the update, once it has been downloaded, has doubled to 30 minutes, although on faster M1 chips that turns out to be significantly shorter. Some of that may be attributable to greater compression, as anyone who has installed a copy of Xcode from a .xip archive knows well. But there also appear to be changes in the updater itself: if you run a content caching server and have updated Intel and M1 Macs, you’ll have noticed that less of the update appears common to both architectures, resulting in larger downloads for servers that cater for updating both.

These are important improvements for a great many Mac users around the world, whose Internet connections don’t reach the speeds expected in Californian cities, and those which are capped. I hope that these improvements continue during the Monterey cycle.

There is, though, one item of unfinished business: the provision of some form of standalone updater. The Monterey 12.1 update reinforced the need for that, with many Macs still unable to find that update, leaving their owners downloading the full 13 GB installer app as their only option. Standalone updaters have been important alternatives in the past, something which has proved its value in many situations where several Macs need updating but a caching server isn’t feasible, for instance. For almost a year, Apple has remained disappointingly deaf to requests for this facility to be reinstated for these new updates.

Perhaps now that Monterey updates are becoming so much more efficient, Apple will see fit to reinvent the standalone macOS updater.