IPod Updater

iPod Updater (also known by its later internal project name, iPod Updater Extreme) was a utility to update or restore (format/erase) an iPod to the latest firmware.

iPod Utility is released for Windows 2000 and later, in addition to macOS as PowerPC and Intel 32-bit universal binaries. It does not run on macOS Catalina or later, which removes support for Intel 32-bit applications. Mac OS 9.2.1 was supported for the first and second generation iPods until at least iPod Software 1.2.1 Updater. It additionally supported Windows Me until iPod Software 1.3 and 2.0.1 Updaters. Windows 98 was not supported, as it lacked the necessary functionality for USB/FireWire mass storage devices.

On Macs, new iPod firmware updates were delivered by way of Software Update automatically downloading them. Subsequently, launching iTunes with an outdated iPod connected would display a prompt requesting to launch iPod Updater.

Initially, the app was only required to support the first and second generation iPod. With the release of iPod with dock connector (3rd generation), and later iPod mini, separate branches of the app were released for each device and firmware. With version 2004-04-28 (3.0), the separate apps were merged into one unified app, named simply "iPod Updater", followed by the date of release.

On 2006, iTunes 7.0 was released with the ability to update and restore iPods, obsoleting iPod Updater. This release saw the introduction of the IPSW file format, allowing iTunes to download the latest firmware on an as-needed basis. The format was later extended for use with the Apple TV with iTunes 7.1, and iPhone with iTunes 7.3.

Supported iPods
The following table lists the firmware versions supported by each known release of iPod Updater, starting from version 2004-04-28. It does not include updates released on or after 2006, when the latest update of almost all iPods were repackaged into IPSWs ahead of the release of iTunes 7.0.

Observations
iPod Updater 2006-01-10 and 2006-03-23 include a ReadMe.rtf file, presumably included by accident, containing the following:

Mac OS 9	CarbonUSB.h, CarbonUSB.cpp, macos9/CarbonUSB_macos9.cpp

Mac OS X	CarbonUSB.h, macosx/CarbonUSB_osx.cpp, macosx/CarbonUSB_FSCalls.cpp

The macosx/CarbonUSB_MacOSX.c file is outdated–do not use it.

CarbonUSB_DebugLog.cpp is required for both 9 and X if DEBUG_CARBONUSB is set to 1

iPod Reset Utility
iPod Reset Utility (initially iPod shuffle Reset Utility) was a variant of iPod Updater released with specific support for the iPod shuffle (1st generation), later adding support for the iPod shuffle (2nd generation). It was intended to be used as an alternative to iTunes, should it fail to restore an iPod shuffle.

iPod Reset Utility is released for Windows 2000 SP4 and later, in addition to macOS as PowerPC and Intel 32-bit universal binaries. It does not run on macOS Catalina or later, which removes support for Intel 32-bit applications.

Observations
iPod shuffle Reset Utility 1.0 references the then-announced, but not yet released, iPod shuffle (2nd generation) in Icons.plist, despite a matching icon not being included. Additionally, a Doxygen  build script is found inside the app's resources. However, it doesn't appear to contain anything interesting.

In version 1.0.0.53 for Windows, strings for non-English localizations in the main iPodshuffleResetUtility.exe refer to "Apple iPod Q98", the device's codename. It is unclear where these localization strings are used, as the UI strings are actually loaded from language-specific  files, not the main executable.

In versions 1.0.3 and later, all variants of the iPod shuffle (2nd generation) have a shared firmware, labelled as firmware identifier 130 (its later revisions are 131 and 133), while the IPSWs for this iPod are unique to each revision.

In version 1.0.4.71 for Windows, the iPod shuffle (2nd generation) DFU mode image is referred to as "S5L8441 Rev.1" in the embedded FirmwareVersions.plist ( PE resource), while the chip itself is labelled S5L844A. It is therefore possible S5L844A is a minor variant of S5L8441.