Which is weird because many manufacturers don't restrict flashing a different rom, and even with standard Android you have more access than iPhone gives you.
Manufacturers don't, but app makers do. I know people running on LineageOS that have to keep a second smartphone on stock Android for their banking authenicator app (which fails on Lineage because it's not the manufacturer-supplied ROM and that supposedly means it's been hacked).
I agree though software updating is widely inefficient given how it could be done.
For example, Apple Watch series 3 cannot update without replacing the whole system for at least 3 years. In this case they didn't even sell more storage.
In the end, whatever; it's just Apple nonsense, better be done with them and look for hardware elsewhere than care about all this...
Apart from that, the bigger issue is that this is something that affects many users and the selling point of Apple was always that it should just work, which it clearly doesn't in this case.
This lets the system clear space for large downloads like this. You just have to know which options to enable.
Say that update could have been optimised down to say 100MB through shipping only binary diffs instead of complete executables, that's hundreds of petabytes of network traffic that doesn't need to be transferred, which means less link congestion, less packet processing, less data temporarily stored not just on customer machines but in datacenters as well.
Unnecessarily large updates in systems with hundreds of millions of users has a non-negligible environmental impact.
There are so many low hanging enormous fruit to pick that it makes almost no sense to start with the very difficult and insignificant ones.
Just look at the iOS 17 OTA packages for iPhone 14 Pro.
- 16.6.1 -> 17.0: 3.3GB - fair enough, new major version
- 17.0 -> 17.0.1: 452MB - security updates and bugfixes
- 17.0.1 -> 17.0.2: 384MB - security updates and bugfixes
- 17.0.2 -> 17.0.3: 450MB - security updates and bugfixes
- 17.0.3 -> 17.1: 1.35GB - this one is interesting, an update from 17.0.2 to 17.1 is actually about 150MB smaller than from the latest version which uses the same upgrade package as 17.0 GM
- 17.1 -> 17.1.1: 395MB - security updates and bugfixes
- 17.1.1 -> 17.1.2: 414MB - security updates and bugfixes
In total, I've downloaded about 3.44GB of updates for my iPhone since the iOS 17 upgrade in September, and have received WiFi AirDrop support, some security fixes, and better Home app Matter support. Security fixes are in general just a few lines of changed code, and should result in minimal changes to a binary, so if you just diff the new binary with the old one it should come out pretty minimal, yet the patches are several hundred megabytes.
Someone in a different thread suggested Apple were doing partial binary patching, but I don't see it.
Comcast for example has an 1.2TB per month cap and $10 for each additional 50GB chunk.
With 4k shows on Netflix, online gaming, and 60gb device updates it’s very easy to hit the cap.
According to their app, I'm consistently using 3-4TB per month. I don't know what the breakdown is but my guess is it's mostly streaming video and video game downloads.