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$ |
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.
CustomerSeed – AppleSeed beta OS releases
DeveloperSeed – Apple Developer Connection beta OS releases
PublicSeed – macOS public beta OS releases
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.
seedutil current: Displays information about the beta feed which the Mac is using.
seedutil fixup: Repairs problems with the currently-enrolled beta feed.
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.
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 |
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
2. Installs the payload-free package, which uses seedutil to configure the Mac to use the selected beta OS feed.
3. Runs Software Update.
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.
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
Post a Comment