Skip to content

Instantly share code, notes, and snippets.

@dhinakg
Last active December 28, 2023 03:23
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dhinakg/b33e33982ec5be47199f1646e93eccae to your computer and use it in GitHub Desktop.
Save dhinakg/b33e33982ec5be47199f1646e93eccae to your computer and use it in GitHub Desktop.
Alternate software updates

Why you don't see iOS 14 anymore

Hi, I'm back again.

Some background

If you're here, you're probably aware of the fact that Apple has been allowing users to stay on 14.5 and receive software updates. If you're out of the loop, take a look at this 9To5Mac article. This is called alternate software updates (or it may be shortened to AlternateSU in some places).

Anyways, this is what you would have been expecting if you checked for updates today:

15.2 photoshop

Note: I photoshopped the version number and the "latest software update allowed" text out because it didn't actually show 15.2 and I couldn't find a decent screenshot, you'll see why below.

But this is what you actually see:

15.2 actual

What is going on? What happened to 14.8.1?

So where is it

To understand what happened here, let me explain how alternate updates work. For purposes of explanation, let's assume 15.1 is the latest iOS 15 version and 14.8.1 is the latest iOS 14 version.

  1. The device makes a request to the update server, giving it its information (product identifiers, current version).
  2. The update server returns details for iOS 15.1 (called an asset), with some special information on how to check iOS 14 (and also whether to show it as the update at the top or at the bottom, etc.)
  3. If your device is on iOS 14.5 or above (this is when support for alternate software updates was added), it will make a request to the update server again, but using the special information on getting iOS 14.
  4. The update server returns an asset for iOS 14.8.1.
  5. Your device takes into account its current version (it's not going to show 14.8.1 if you're already on 14.8.1, for example) and the instructions on where to show it and displays the updates to you.

But 15.2 is the latest iOS 15 version, not 15.1. Let's look what what changed:

  1. The device makes a request to the update server as normal
  2. The update server returns details for iOS 15.2 (called an asset). However, there is no alternate update information. As far as the device knows, 15.2 is the only update that exists.
  3. Since your device only found 15.2, it'll only show 15.2 (again, assuming you're not already on 15.2+).

See the issue here?

Why would Apple do this?

As we don't have any information from Apple, we can only guess, but the reason is probably security. Take a look at the 15.2 security content page; quite a number of things was fixed. It's possible Apple wants everyone to update for the patches, but then again, why not just release an update for iOS 14?

So is alternate updating dead?

We don't know. Apple still mentions alternate updates on their managing software updates page, but this page is known to become outdated for periods.

However, there may still be a way to get alternate updates, using the venerable delay OTA. Since assets under 15.2 (15.0 - 15.1/15.1.1, specifically. 15.1.1 is only for iPhone 12/13 if you're confused) still have the alternate update information, you can still get 14.8.1 (or 14.8) to pop up if you delay for the proper period of time. Here's how this works if you delayed for 10 days, for example:

  1. The device makes a request to the update server, giving it its information (product identifiers, current version) but also the period of time to delay for.
  2. The update server returns details for iOS 15.1 (called an asset), with some special information on how to check iOS 14 (and also whether to show it as the update at the top or at the bottom, etc.)
  3. If your device is on iOS 14.5 or above (this is when support for alternate software updates was added), it will make a request to the update server again, but using the special information on getting iOS 14, and also with the delay period information. (If your delay is high enough, you'll get 14.8 instead of 14.8.1.)
  4. The update server returns an asset for iOS 14.8.1.
  5. Your device takes into account its current version (it's not going to show 14.8.1 if you're already on 14.8.1, for example) and the instructions on where to show it and displays the updates to you.

It ends up looking like this:

15.1

Yes this was the original screenshot before Photoshop

14.8.1 is present! Hooray!

Now, where do you get a profile with a proper delay? Easy, head to my site and look for the profiles marked alternate (if you want 14.8, you're better off with the non-alternate one). Ignore the dates though, those are broken.

But what if you're on <14.5? Well, you'd need to update to 14.8 using the non-alternate profile, as it's the oldest version you can still delay OTA too that supports alternate updates. From there, you would be able to OTA to 14.8.1 if you wish.

### Big important thing however: no one has tested this yet (although I am testing rn)

For all we know, TSS could have stopped signing 14.8.1, rendering this entire thing moot.

It works

But wait, you said 15.0 - 15.1/15.1.1. What happens when 15.1/15.1.1 expires?

Well, if the status quo is maintained and Apple doesn't put alternate software information back in the 15.2 asset or for future assets (ie. 15.3), once 15.1.1 expires (15.2 hits 90 days old) we will no longer be able to see alternate software updates. I'm hoping this isn't the case though, it doesn't make sense for Apple to renege on this.

tl;dr

If you pull 15.2 from the update server you won't see alternate updates. You need to delay OTA so you see an older asset which still has the alternate update information.

@slava19691969
Copy link

Здравствуйте! Можно ли с задержкой получить ios 14.8.1 как описано в этой статье? Если да, то будьте так добры прислать мне профиль конфигурации OTA 14.8.1 на мою электронную почту: slavenin1969@mail.ru Заранее благодарю вас за ответ!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment