Setting up macbook for updates from seedutil

 

As part of a discussion of how to build test VMs, a colleague mentioned how they were using the seedutil tool to help configure Macs to access Apple’s beta updates. I hadn’t run across this tool before, so I decided to do some research and see if I could make it work for my own testing needs. For more details, see below the jump.

seedutil is available at the following location in macOS 10.13.2:

1
/System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil

There is no manpage for it, but if you call the seedutil tool by itself it will display the following options:

computername:~ username$ sudo /System/Library/PrivateFrameworks/Seeding.framework/Resources/seedutil -help
Password:
usage: seedutil enroll SEED_PROGRAM
seedutil unenroll
seedutil current
seedutil migrate OLD_VERSION NEW_VERSION
seedutil fixup
computername:~ username$
view raw
gistfile1.txt
hosted with ❤ by GitHub

Here’s how the following seedutil options work on macOS 10.13.2:

seedutil enroll: Sets up the Mac to use one of three beta update feeds from Apple’s Software Update servers.

CustomerSeedAppleSeed beta OS releases
DeveloperSeedApple Developer Connection beta OS releases
PublicSeedmacOS public beta OS releases

Screen Shot 2018 01 05 at 9 38 22 PM

These feeds are referenced from the following file:

1
/System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/SeedCatalogs.plist

seedutil unenroll: Removes the current beta feed from the Mac and sets it to use the regular macOS updates.

Screen Shot 2018 01 05 at 10 36 34 PM

seedutil current: Displays information about the beta feed which the Mac is using.

Screen Shot 2018 01 05 at 10 25 10 PM

seedutil fixup: Repairs problems with the currently-enrolled beta feed.

Screen Shot 2018 01 05 at 10 34 36 PM

I was not able to discover what seedutil‘s migrate function does. If any readers know, please let me know in the comments.

If you run seedutil enroll and specify a beta update feed, the next time you run Software Update you should see the latest beta update appear as an available update option.

Screen Shot 2018 01 05 at 10 38 28 PM

Screen Shot 2018 01 05 at 9 36 22 PM

One reason why this tool is particularly interesting to me is that it can be used to install the latest macOS beta software onto an otherwise-unconfigured test Mac or test macOS VM. As an example of this, I’ve written the following script:

#!/bin/bash

# Set Mac to receive OS beta updates from Software Update

/System/Library/PrivateFrameworks/Seeding.framework/Resources/seedutil enroll DeveloperSeed

# Give the OS time to register the changes before any follow-up Software Update process runs.

sleep 10
view raw
gistfile1.txt
hosted with ❤ by GitHub

I’ve created a payload-free package from the script and then added it to a DeployStudio workflow. This workflow does the following:

1. Allows you to select a drive

Screen Shot 2018 01 05 at 9 34 49 PM

2. Installs the payload-free package, which uses seedutil to configure the Mac to use the selected beta OS feed.

Screen Shot 2018 01 05 at 9 35 27 PM

3. Runs Software Update.

Screen Shot 2018 01 05 at 9 35 35 PM

Once the workflow has completed its run and rebooted, the following actions take place at first boot:

A. The Mac is configured to use the selected beta feed
B. Apple’s softwareupdate tool checks for, downloads and installs all relevant updates, including the latest beta OS updates.
C. Following the installation of all available updates, the Mac restarts.

Screen Shot 2018 01 05 at 9 58 52 PM

At the end of the process, you should have a factory-fresh test Mac or VM which already has the latest macOS beta software installed.

Comments

Popular posts from this blog

SOX - Sound eXchange - How to use SOX for audio processing tasks in research.

Sox of Silence - Original post - http://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/

How to get video or audio duration of a file using ffmpeg?