What

Before FileWave 14.7+ the MDM protocol only displayed updates reported by devices. Apple's GDMF allows FileWave to display all currently available updates.  The former only allowed for installing the latest version reported by the device, whilst GDMF provides provision for intermediate updates that are still available from Apple.


FileWave now reports multiple updates for devices and all device types will also report iOSUpdate as a named update, where previously they would only report a dedicated updated, for example: iPadOSUpdate


When/Why

This feature allows upgrading an iPad running iPadOS 15.0.2 to iPadOS 15.1 while the most recent update might be 15.3, for example. This functionality is supported on iOS, tvOS and iPadOS. 

Device Reports

Historically, FileWave would receive the latest reported update from a device.  For example, any compatible iPads running an iPadOS version of 15.0.2 or below would report the following where 15.3.1 is the latest available version:

	<key>AvailableOSUpdates</key>
	<array>
		<dict>
			<key>AllowsInstallLater</key>
			<false/>
			<key>Build</key>
			<string>19D52</string>
			<key>DownloadSize</key>
			<integer>667505362</integer>
			<key>HumanReadableName</key>
			<string>iPadOS 15.3.1</string>
			<key>InstallSize</key>
			<integer>673185792</integer>
			<key>IsCritical</key>
			<false/>
			<key>ProductKey</key>
			<string>iOSUpdate19D52</string>
			<key>ProductName</key>
			<string>iOS</string>
			<key>RestartRequired</key>
			<true/>
			<key>Version</key>
			<string>15.3.1</string>
		</dict>

Note the device reports not just the update version, but the update size also.  FileWave shows the Human Readable Name reported for this update, along with the size of the installer.  The Product Key is shown in the footer of the window where an update is selected.

As such, only updates reported by devices were visible and only subsequently could the Fileset association be created and associated.

GDMF

GDMF updates are pulled from a URL (akin to the mechanism macOS used prior to MDM updates).  All mobile updates currently available from Apple are listed under one generic name: 'iOSUpdate', followed by the version number.  Devices need not report required updates in advance and associations can be made prior to the device's next check-in, benefitting from the update being already available and associated.

The catalogue of data provided by Apple does not include the file size of the update, but FileWave populates the footer of the update window to indicate the update is a GDMF update when selected.

 

How

FileWave server will regularly check Apple GDMF service to pull the list of available updates for each device. Make sure to read and follow Apple documentation related to network requirements. GDMF service provides the following information:

  • Product version
  • Posting date
  • Expiration date
  • List of supported devices

For instance, the following shows extract for iOSUpdate 15.3:

   {
        "ProductVersion": "15.3",
        "PostingDate": "2022-01-26",
        "ExpirationDate": "2022-05-11",
        "SupportedDevices": [
          "iPad11,1",
          "iPad11,2",
          "iPad11,3",
          "iPad11,4",
          "iPad11,6",
          "iPad11,7",
          "iPad12,1",
          "iPad12,2",
          "iPad13,1",
          "iPad13,10",
          "iPad13,11",
          "iPad13,2",
          "iPad13,4",
          "iPad13,5",

FileWave will cross reference all supported device types for each Product Version and show these as requested by the device, even though the device may not actually have personally requested them.  This allows pre-association.


FileWave will update the Software Update view on every synchronisation with Apple.  Only updates currently available should be reported.  If Apple deprecate an update, this update should no longer show in the Software Update view.  Cross reference this view with currently Created/Associated Filesets to ensure the updates are still current.


GDMF advantageously proposes all possible updates for each device, not just the last one, as can be seen in the below images.  Device 'London-001' shows both iOSUpdate 15.5 and 15.4.1 as appropriate:

You can now follow the usual process : create Fileset, approve the update, associate the update for any currently available intermediate version.


Considerations

Reported Updates

Note, not all updates are necessarily appropriate for all device types.  For example, the current version of 15.5.1 at the time of writing was only appropriate for these device types.  Of course, Apple may change this over time, but FileWave should list appropriate devices (as listed by Apple) for any given update.

           {
                "ExpirationDate": "2022-08-23",
                "PostingDate": "2022-05-25",
                "ProductVersion": "15.5.1",
                "SupportedDevices": [
                    "AppleTV11,1",
                    "AppleTV5,3",
                    "AppleTV6,2",
                    "AudioAccessory1,1",
                    "AudioAccessory1,2",
                    "AudioAccessory5,1"
                ]
            },

Create Fileset

FileWave now reports both GDMF and Client Reported updates.  Consequence of creation:

Device Reported Updates

Creating a Fileset, based upon those the devices report as requested, will only attempt to push this update whilst the device still requests this update.  The consequence for any device not yet updated, when the next version is released, is this update Fileset will no longer be successful, since the device will no longer request this version.

GDMF Updates

Creating a Fileset based upon a GDMF reported Fileset allows any displayed version to be pushed, regardless of the latest available version.  This will only be true whilst Apple maintain this update online.  Once Apple deprecate this update the matching Fileset will no longer be able to update any devices not yet upgraded.  Below is the list of possible iOS 15 updates available at the time of writing.  Notice that version 15 updates below 15.3 are no longer available, whilst a version of 14 is still available.

Example of Currently Available Updates
                "ProductVersion": "15.5.1",
                "ProductVersion": "15.5",
                "ProductVersion": "15.4.1",
                "ProductVersion": "15.4",
                "ProductVersion": "15.3.1",
                "ProductVersion": "15.3",
                "ProductVersion": "14.8.1"


Avoid associating multiple appropriate updates.  It is unclear in this instance what may occur and is possible one update will cancel the first ending in a situation where no update is actioned.  If automatically deploying to devices is chosen, disable this before assigning a new association.

Consider using one method only, either the original reported version by device or GDMF.  GDMF provides the greatest scope of control though and would probably be the better choice going forward in most environments.