An open API service indexing awesome lists of open source software.

https://github.com/travisvn/stop-tahoe-update

Prevent your Mac from "upgrading" to Tahoe. A community-led effort to safely block unwanted macOS upgrades.
https://github.com/travisvn/stop-tahoe-update

configuration-profile deferral mac macadmin macos macos-sequoia macos-tahoe mdm mobileconfig sequoia sysadmin tahoe update-blocker

Last synced: 22 days ago
JSON representation

Prevent your Mac from "upgrading" to Tahoe. A community-led effort to safely block unwanted macOS upgrades.

Awesome Lists containing this project

README

          

# πŸ›‘ Stop Tahoe Update

_A community-led effort to block unwanted macOS upgrades (e.g. Sequoia β†’ Tahoe)._

[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-blue.svg)](.github/CONTRIBUTING.md)
[![GitHub Discussions](https://img.shields.io/github/discussions/travisvn/stop-tahoe-update?logo=github)](https://github.com/travisvn/stop-tahoe-update/discussions)
[![Build & Validate](https://github.com/travisvn/stop-tahoe-update/actions/workflows/validate.yml/badge.svg)](https://github.com/travisvn/stop-tahoe-update/actions)

> Safe β€’ Transparent β€’ Reversible
>
> Everything here is inspectable and easy to undo.

---

## βš™οΈ What This Does

Apple allows deferring major macOS upgrades using configuration profiles with official `com.apple.applicationaccess` keys. This repo provides a **90-day deferral profile** along with scripts to install, check status, and uninstall it.

πŸ” What the deferral profile actually does

It uses Apple's official deferral keys:

```xml
forceDelayedMajorSoftwareUpdates
enforcedSoftwareUpdateMajorOSDeferredInstallDelay90
```

These settings hide major upgrades from Software Update for **up to 90 days** according to Apple's documentation. In practice, the deferral appears to continue working beyond that window β€” but your mileage may vary.

---

## 🧰 Quick Start

### 1. Clone or download the repo

```bash
git clone https://github.com/travisvn/stop-tahoe-update.git
cd stop-tahoe-update
```

Ensure the scripts are executable:
```bash
chmod +x ./scripts/*.sh
```

### 2. Apply the 90-day deferral profile

The script will generate unique identifiers to prevent conflicts and attempt to install the profile.

```bash
./scripts/install-profile.sh profiles/deferral-90days.mobileconfig
```

> [!NOTE]
> On recent macOS versions, silent installation may be blocked. If the script opens **System Settings**, locate the **"Profiles"** (or "Downloaded Profile") notification and click **Install** manually to complete the process.

### 3. Verify status

```bash
./scripts/status.sh
```

### 4. Remove later if needed

```bash
./scripts/uninstall-profile.sh
```

---

## πŸ“– Guides

- [Remove the Red Badge from the System Settings Dock Icon](./docs/REMOVE_DOCK_BADGE.md) β€” Get rid of the persistent notification badge on the System Settings icon in your Dock

---

## 🧩 What's Next? (Help Wanted)

The 90-day deferral profile works well today, but there are open questions the community can help answer:

- **How long does the deferral actually last?** Apple says 90 days, but anecdotal experience suggests it may persist longer. More data points would be valuable.
- **Can we suppress the Settings badge and upgrade prompts?** The red notification badge and "Install Now" prompts are a separate annoyance.
- **Are there other safe, reversible approaches?** If you've found something that works, we'd love to hear about it.
- **What changes with new macOS versions?** Apple may change deferral behavior in future releases.

If you have findings, ideas, or just want to share your experience, open a [Discussion](https://github.com/travisvn/stop-tahoe-update/discussions) or submit a PR.

---

## πŸ§‘β€πŸ’» Contributing

We welcome contributions of all kinds:

- **Testing** β€” verify the profile works on your macOS version and report results
- **Research** β€” document macOS update behavior, deferral edge cases, or new Apple keys
- **Scripts & tooling** β€” improve the install/uninstall experience
- **Ideas** β€” propose approaches for suppressing prompts or extending deferrals

πŸ“„ See [CONTRIBUTING.md](./.github/CONTRIBUTING.md) and [docs/GOALS.md](./docs/GOALS.md).

---

## βš–οΈ Safety Philosophy

- **No surprises** β€” every approach is documented and well-understood before it ships
- **Community-reviewed** β€” all code goes through PR review

---

## πŸ—ΊοΈ Beyond Tahoe

While this repo focuses on **Sequoia β†’ Tahoe**, the long-term goal is a general-purpose toolkit for macOS users who want to choose when β€” or if β€” they upgrade.

---

## πŸ’¬ Community & Support

- [GitHub Discussions](https://github.com/travisvn/stop-tahoe-update/discussions) β€” share findings, test results, and ideas
- [Issues](https://github.com/travisvn/stop-tahoe-update/issues) β€” report bugs or problems with the scripts/profiles

---

## 🧾 License

**MIT License** β€” simple, permissive, and open.