Enabling macOS betas with a Munki NoPkg

Apple changed the process for enrolling in macOS beta seeds beginning with 13.4 released in May 2023.

What could previously be automated via the seedutil command line tool now requires user interaction.

Thankfully we can still use Managed Software Center to make this process easier for users.

Read on for the details…

Before macOS 13.4

In the past, a Munki NoPkg that scripted seedutil under the hood could be used to allow end users to enroll or unenroll from macOS beta seeds.

/System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil enroll CustomerSeed

Users didn’t need to know the details of how this happened and could use Managed Software Center to enable betas as easily as installing any other piece of software.

After macOS 13.4

Starting with macOS 13.4 seedutil no longer works and enrolling into a beta seed requires user interaction in the Software Update preference pane. However, the Beta updates option is not visible by default.

Users must open a specific link to reveal the Beta updates functionality in the GUI.

x-apple.systempreferences:com.apple.Software-Update-Settings.extension?action=showBetaUpdates

The trick is making this easy for end users and that is what we’ll accomplish with a Munki NoPkg.

Apple ID required

The most important change is that an Apple ID enrolled in a beta program is now required. Users must sign-in using a Managed Apple ID with AppleSeed for IT access or an Apple ID that is a member of a Developer account or the public beta program.

Nathaniel Strauss detailed this change in his post “Goodbye seedutil, hello Apple IDs.”

Once we open the link for the user they will be able to sign in with their Apple ID, select an available Beta seed and then have the opportunity to update.

If users want to stop receiving beta updates they can toggle them off or sign out completely.

The Script

The script to open the link is simple enough. But since Munki runs as root, we need to detect the current user and run the command as them.


#!/bin/bash

# Get the username of the current user
currentUser="$(/usr/sbin/scutil <<< "show State:/Users/ConsoleUser" | /usr/bin/awk '/Name :/ { print $3 }')"

# Open Software Update as the user
sudo -u "$currentUser" open "x-apple.systempreferences:com.apple.Software-Update-Settings.extension?action=showBetaUpdates"

The NoPkg

Due to the Apple changes that require user interaction, the new NoPkg needs to be an OnDemand type that only runs right after the user “Installs” it.

I have an example NoPkg available on GitHub which is ready to use and can be dropped right into your Munki repo with no changes.

Leave a Reply

Your email address will not be published. Required fields are marked *