The answer is: JUST ANGRILY RUN OVER THE PROBLEM

  • Boot into Safe Mode (holding down shift at the two separate appropriate moments, BTW OMGWTF). Safe mode still won’t login, but now you have an option…
  • Get to a terminal, somehow.
    • I was able to use crazy circus methods to get one: I pressed the play/pause button on my keyboard to trigger iTunes to bring up a license agreement dialog box, this in turn brings up the menu bar, which I used to get to System Preferences, from there I used the “Secrets” prefpane (which was luckily already installed) to launch Firefox, thereafter I used a url handler to have firefox let me choose an application to open – for example “Terminal” or “Quicksilver”)
    • There must be a better way.
  • At the terminal, run this (all on one line):

    sudo launchctl unload -w "/System/Library/LaunchDaemons/com.apple.mbsystemadministration.plist"

enter your password when prompted, then reboot.

If you know a better way to fix this issue, please share. If only launchctl unload -w from single-user-mode would work across reboots…

Misc Notes

From safe-mode, before the fix, errors like these were getting logged:

Oct 22 13:12:41 unknown mbsystemadministration[272]: open on (null)/Library/Preferences/.GlobalPreferences.plist: File exists
Oct 22 13:12:41 unknown com.apple.xpc.launchd[1] (com.apple.mbbackgrounduseragent): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
Oct 22 13:12:41 unknown mbsystemadministration[272]: open on (null)/Library/Preferences/com.apple.HIToolbox.plist: File exists
Oct 22 13:12:41 unknown mbsystemadministration[272]: open on (null)/Library/Preferences/com.apple.universalaccess.plist: File exists
Oct 22 13:12:51 unknown com.apple.xpc.launchd[1] (com.apple.mbbackgrounduseragent): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
Oct 22 13:13:01 unknown com.apple.xpc.launchd[1] (com.apple.mbbackgrounduseragent): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.

The “mb” in “mbsystemadministration.plist” is “MacBuddy” as you can see by running:

strings '/System/Library/CoreServices/Setup Assistant.app/Contents/Resources/mbsystemadministration' | grep -i buddy

Note I’m removing some things for blog readability…

-[MBSAServer getBuddyUser:]
-[MBSAServer postMacBuddyTasks:]
-[MBSAServer preMacBuddyTasks:]
-[MBSAServer terminateBuddySession:transitioningToUID:withCompletionBlock:]
Buddy info dict we just wrote is invalid: %@
FacelessConfiguration: %@ skip buddy cookie
FacelessConfiguration: skip buddy set
Failed to remove MacBuddy automation cookie. Error: %@
LastSeenBuddyBuildVersion
Removed MacBuddy automation cookie.
Setting the MacBuddy Cookie
ShowKeychainSyncBuddyAtLogin
getBuddyUser:
kPrimaryBuddyType
kSecondaryBuddyType
lastSeenBuddyBuildVersion
lastSeenBuddyBuildVersion
postMacBuddyTasks:
preMacBuddyTasks:
removeBuddyUserHome:
removeResumeBuddyCookie:
setLastSeenBuddyBuildVersion:
setMacBuddyDoneCookie:
setResumeBuddyCookie:
setShowKeychainSyncBuddyAtLogin:
setSkipBuddy:
showKeychainSyncBuddyAtLogin
showKeychainSyncBuddyAtLogin
skipMiniBuddy
switchToBuddySession:
terminateBuddySession:transitioningToUID:withCompletionBlock:
void MBSetTheMacBuddyCookie()

Separately, out of curiosity, I ran:

strings '/System/Library/CoreServices/Setup Assistant.app/Contents/Resources/mbsystemadministration' \
  | grep '/' | sort | uniq

…to see what paths the program might be working with…

%@/Library/Preferences
%@/Library/Preferences/%@
/Library/Documentation
/Library/Logs/DiagnosticReports
/Library/Preferences/%@
/System/Library/CoreServices/Language Chooser.app
/System/Library/CoreServices/ManagedClient.app/Contents/MacOS/ManagedClient
/Users/Shared/adi/adi-%08lX.pb
/bin/cat
/bin/chmod
/etc/kcpassword
/etc/kcpassword.mb
/etc/ntp.conf
/etc/resolver
/sbin/mount
/sbin/newfs_hfs
/sbin/shutdown -h now
/sbin/shutdown -r now
/sbin/umount
/usr/bin/certtool
/usr/libexec/configureLocalKDC
/usr/sbin/chown
/usr/sbin/hdik
/var/db/.AppleDiagnosticsSetupDone
/var/db/.AppleLaunchMigration
/var/db/.AppleSetupDebugInitialization
/var/db/.AppleSetupDone
/var/db/.AppleSetupDone22
/var/db/.AppleSetupResume
/var/db/.AppleSetupUser
/var/db/.InstallerConfiguration
/var/db/.RunLanguageChooserToo
/var/db/ConfigurationProfiles/.profilesAreInstalled
/var/db/krb5kdc
/var/root/.CFUserTextEncoding
ram://100000