They only do that on critical security updates which are very often quite small.
Updates are a hassle for the company to deploy and users to install. So they compile a bunch of small updates into a larger package and deploy them all together so that people don’t have to do a dozen little updates every week.
This approach also allows for more productive beta testing (again, fewer updates, easier management, better tracking if something goes wrong) before wider release.
That depends on what and were in the program the bugs are. One important thing to remember you dont have and dont execute the code of a program on your device directly. You get compiled binary files that are executed. And usually its easiest to exchange the entire binary file if you have to fix something. Sometimes it might even require to exchange multiple binaries to fix the bug and at somepoint you would just straight up exchange all files.
Then there is also always the possiblity that they are updating more than they tell you. You can even assume they will never tell everything they did. Firstly because a lot of stuff just doesnt matter for you. Secondly because sometimes when they find security problems that arent known they dont want to tell hackers what they should look for in unpatched devices.
This actually has a pretty technical answer to it, but the short of it is, it’s a technique that apple uses to protect the security of the platform.
Apple has parts of their operating system that cannot be patched. This is to prevent unauthorized applications from patching/adjusting those components. But they still need to deploy fixes, which in this case is managed by updating the entire package (hence a 4GB ‘update’).
There are other approaches that could be taken as well, but they have trade offs and going into those kind of breaks out of an ELI5 explanation.
Apple is notoriously tight-lipped about what their updates are actually addressing. Their standard release notes are usually light on details. (Which keeps their proprietary software private.) But iphones are pretty much everywhere, so they are often the target of malware. And tweaking their operating system while patching security issues can minimize those threats while simultaneously making it harder for malware developers to build off of their prior work. So the reason the updates are larger than necessary is because they are doing more than Apple is letting on.
Imagine you published a 1000 page textbook.
There’s a mistake in one paragraph of chapter two. Fixing it requires adding three more sentences, but that makes that chapter spill onto a second page.
Now every single page after that in the entire book has a different page number. The entire table of contents and index are different, and hundreds of other pages that say “turn to page X” have changed.
So even though you only added three sentences, you pretty much have to send everyone a whole new book.
That’s mostly what’s going on. A small change to a piece of software ends up changing nearly the whole thing.
That’s on top of other reasons people mentioned.
Source code goes through a compiler, which itself may have changed between software updates. Small changes to a compiler can alter the binary code output in many ways, so even if source code changes are small, the compiled binary code may have significant changes.
While it’s possible to compress an update by comparing it with a previously installed version and only transmitting a “change” file, that depends upon there only being a small number of choices for the previously installed version, and is a process that would be sensitive to the possibility of corruption of data in the previous version.
Latest Answers