All Projects → hjuutilainen → Bigsurblocker

hjuutilainen / Bigsurblocker

Licence: mit
Block Big Sur installer app from launching

Projects that are alternatives of or similar to Bigsurblocker

Munkiadmin
macOS app for managing Munki repositories
Stars: ✭ 310 (+81.29%)
Mutual labels:  macadmin
Micromdm
Mobile Device Management server
Stars: ✭ 1,238 (+623.98%)
Mutual labels:  macadmin
Jss Filevault Reissue
A framework for re-escrowing missing or invalid FileVault keys with Jamf Pro.
Stars: ✭ 132 (-22.81%)
Mutual labels:  macadmin
Outset
Automatically process packages, profiles, and scripts during boot, login, or on demand.
Stars: ✭ 478 (+179.53%)
Mutual labels:  macadmin
Docklib
Python module intended to assist IT administrators with manipulation of the macOS Dock.
Stars: ✭ 73 (-57.31%)
Mutual labels:  macadmin
Display manager
An open-source Python library which can modify your Mac's display settings manually or automatically.
Stars: ✭ 109 (-36.26%)
Mutual labels:  macadmin
GNU-bash-mac-installer
Downloads and builds a Mac package installer for GNU bash 5
Stars: ✭ 17 (-90.06%)
Mutual labels:  macadmin
Sus Inspector
Inspect Apple software update service
Stars: ✭ 153 (-10.53%)
Mutual labels:  macadmin
Mac Zsh Completions
macOS specific additional completion definitions for Zsh.
Stars: ✭ 79 (-53.8%)
Mutual labels:  macadmin
Firmware password manager
A Python script to help Macintosh administrators manage the firmware passwords of their computers.
Stars: ✭ 127 (-25.73%)
Mutual labels:  macadmin
Macvars
command library for scripting osx
Stars: ✭ 34 (-80.12%)
Mutual labels:  macadmin
Jamf Interaction Toolkit
Standardized UEX Toolkit to display dialog and support postponing running policies.
Stars: ✭ 58 (-66.08%)
Mutual labels:  macadmin
Privacy services manager
A single management utility to administer Location Services, Contacts requests, Accessibility, and iCloud access in Apple's OS X.
Stars: ✭ 115 (-32.75%)
Mutual labels:  macadmin
Vfuse
Convert bootable DMG images for use in VMware Fusion
Stars: ✭ 392 (+129.24%)
Mutual labels:  macadmin
Quickpkg
wrapper for pkgbuild to quickly build simple packages from an installed app, a dmg or zip archive.
Stars: ✭ 137 (-19.88%)
Mutual labels:  macadmin
Splashbuddy
Onboarding splash screen for Jamf Pro. Improves DEP provisioning for macOS.
Stars: ✭ 309 (+80.7%)
Mutual labels:  macadmin
Moroz
Moroz is a Santa server
Stars: ✭ 93 (-45.61%)
Mutual labels:  macadmin
Installomator
Installation script to deploy standard software on Macs
Stars: ✭ 159 (-7.02%)
Mutual labels:  macadmin
Mac admin
Helpful scripts & configuration profiles for the Mac admin community
Stars: ✭ 139 (-18.71%)
Mutual labels:  macadmin
Desktoppr
Simple command line tool to set the desktop picture on macOS
Stars: ✭ 127 (-25.73%)
Mutual labels:  macadmin

Big Sur Blocker

Detect when Install macOS Big Sur.app installer application has launched, terminate the process and display an alert.

bigsurblocker

This project is heavily inspired by Erik Berglund's AppBlocker. It uses the same underlying idea of registering and listening for NSWorkspace notifications when app has started up and then checking the CFBundleIdentifier of the launched app to identify a Big Sur installer launch.

Why

Apple wants end users to upgrade to the latest macOS as soon as it becomes available. Depending on the software and policies your organization uses, this might be unacceptable. As an administrator, you currently have some options:

  • Use an MDM to push a profile to delay updates for maximum of 90 days. This will however postpone all updates, not just the macOS upgrade.
  • If your fleet is enrolled in an MDM, you can use softwareupdate --ignore to hide certain updates. This will result in a highly broken user experience where the system thinks it has an update pending but it is unable to download and install it. Apple has also decided that only MDM enrolled systems can use the --ignore flag.
  • If you are already using a binary authorization system such as Googles Santa, you should use it but deploying a system like Santa only for blocking Big Sur might be unfeasible.

How

The bigsurblocker binary is installed in /usr/local/bin and is launched for each user through a launch agent. This means that the binary is running in the user session and therefore has the privileges of the current user. It runs silently in the background and listens for app launch notifications. As soon as the user launches the macOS installer application, the binary (forcefully) terminates it and displays a warning message.

By design, it will not block the startosinstall command line tool.

Requirements

The binary requires at least macOS 10.9, however it has been tested only on macOS 10.10, 10.11, 10.12, 10.13, 10.14 and 10.15.

Note. It seems that macOS 10.10 and 10.11 have trouble installing a signed and notarized package. Use the unsigned package available from the releases page if deploying on those. The signed and notarized package can be used on macOS 10.12 and later.

Configuration

All configuration is optional. If needed, the alert title and text can be set through a configuration profile. Use com.hjuutilainen.bigsurblocker as the domain and AlertTitle and AlertText as the keys.

Installation

On macOS 10.12 and later, download a prebuilt package from the Releases page and deploy with your favorite method. The package is signed and notarized.

On OS X 10.11 and earlier, download and deploy an unsigned package from the Releases page and deploy with your favorite method

Uninstall

To fully uninstall bigsurblocker, run the following (as root or with sudo):

current_user_uid=$( echo "show State:/Users/ConsoleUser" | scutil | awk '/UID :/ && ! /loginwindow/ { print $3 }' )

launchd_item_path="/Library/LaunchAgents/com.hjuutilainen.bigsurblocker.plist"
launchctl bootout gui/${current_user_uid} "${launchd_item_path}"

rm -f /Library/LaunchAgents/com.hjuutilainen.bigsurblocker.plist
rm -f /usr/local/bin/bigsurblocker

pkgutil --forget com.hjuutilainen.bigsurblocker

License

Big Sur Blocker is licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].