How to find full Software Update information

Have you ever wanted to know which versions of recoveryOS are installed on your Apple silicon Mac? Or the build version of BridgeOS (iBridge) on an Intel Mac with a T2 chip? There are times when trying to find that information becomes mind-bending. So far, I haven’t found a property list containing such useful data, although those in the /SFR/current folder on the iSCPreboot volume of an Apple silicon Mac can be helpful.

There is an easier way to obtain full information about an Intel or Apple silicon Mac’s firmware, restore and Recovery versions, though: from Software Update, or to be more precise SoftwareUpdateMacController. This article explains how to obtain that, and what it contains.

Although I haven’t yet located a file containing this information, it’s written to the Unified log soon after booting macOS Monterey or Ventura, and may well be available in older versions of macOS as well.

The first step is to discover the exact time of the last boot, using the Boot button in my free utility Mints. A new window will open, and Mints will then search the log for the last 24 hours and report the exact time of each boot entry, marked with the distinctive string
=== system boot
As that also appears in the log entry recording Mints’ request for those log entries, the last entry reported will be the time that Mints asked for that log extract. Because Mints is searching the whole of the last 24 hours, this will take a while before it reports:

logsa02

With that window still open, open my free log browser Ulbow. Set the time there to the nearest round second immediately after the boot time, and the Period to 45 seconds. Paste into the Predicate Combo box the following:
subsystem == "com.apple.SoftwareUpdateMacController" && eventMessage CONTAINS[c] "Initialized new device:"
ensuring there are two consecutive equals signs ==, and the double-quotation marks are ‘straight’ and not typographic. Set the style to starters+ or similar, then click on the Get log button. You should see a single log entry return with all that lovely information.

suinternals

This log entry is part of a very long series in this phase of startup during which softwareupdated and its related sub-systems prepare for and then check whether there are updates due for that Mac. The information given is copious and invaluable. I’ll step through it in full for an M1 Mac first.

Mac Studio M1 Max, macOS 12.5:
This starts with general settings about that Mac’s feature support
targetedSystemVolume: /
deviceSupportsMobileGestalt: YES
deviceSupportsCoreServices: YES
deviceSupportsAppleInternalVariant: NO
deviceSupportsRestoreVersion: YES
deviceSupportsSFRSystemVersion: YES
deviceSupportsSFRRestoreVersion: YES
deviceSupportsMultiVolumeBoot: YES
those are followed by details of the current hardware and macOS
buildVersion: 21G72
productVersion: 12.5
hwModelString: J375cAP
deviceClass: Mac
productType: Mac13,1
releaseType: (null)
deviceBoardID: (null)
hwTarget: J375cAP
isInternal: NO
isBootedOSSecureInternal: NO
restoreVersion: 21.7.72.0.0,0
hasEmbeddedOS: NO
then follows info about the T2 and BridgeOS
hasBridgeOS: NO
bridgeBuildVersion: (null)
bridgeRestoreVersion: (null)
isBridgeInternal: NO
and about SFR, which seems to stand for Secure Firmware Restore, when in DFU mode
hasSFR: YES
sfrProductVersion: 12.5
sfrBuildVersion: 21G72
sfrRestoreVersion: 21.7.72.0.0,0
sfrReleaseType: (null)
the final section covers the master Recovery system, which is that in the dedicated container on the internal SSD, not the paired recovery volume in the same container as the boot volume. You should be able to enter that master Recovery if you boot in fallback Recovery, with a double-press-hold of the Power button at start up.
hasRecoveryOS: YES
recoveryOSProductVersion: 12.3
recoveryOSBuildVersion: 21E230
recoveryOSRestoreVersion: 21.5.230.0.0,0
recoveryOSReleaseType: (null)
Note that the boot system and its paired Recovery here are in 12.5, while the fallback is in 12.3. I don’t know why that isn’t 12.4, which was the previous version of macOS installed.

Highlights seen for an Intel model with a T2 chip include
Intel Mac with T2 chip, macOS 12.5:
deviceBoardID: Mac-7BA5B2D9E42DDD94
hwTarget: J137AP
hasBridgeOS: YES
bridgeBuildVersion: 19P6064
bridgeRestoreVersion: 19.16.16064.0.0,0
In this case, the bridgeBuildVersion is the ‘firmware version’ given in the Controller view of System Information, and the bridgeRestoreVersion is shown as System Firmware Version in the Hardware view.

And that for macOS running inside a VM
macOS 12.5 VM:
hwModelString: VMA2MACOSAP
productType: VirtualMac2,1
deviceBoardID: VMM-arm64
hwTarget: VMA2MACOSAP
hasSFR: YES
hasRecoveryOS: YES
recoveryOSProductVersion: 12.4
That VM had originally been installed as 12.4, and was then updated to 12.5, leaving its master Recovery in 12.4. There’s currently no way to boot a guest in fallback Recovery, so that’s of only academic interest at present.

If you’re running Ventura beta you’ll be in for a surprise when you see the additional information it provides about its new patch update system.

If there’s sufficient interest, I could make this a single-button action in Mints.