Skip to main content

Actualizador seguro de Nintendo Switch

Project description

switch-up

License

A safe, automated SD card manager for Nintendo Switch homebrew on macOS, Windows, and Linux.

Why does this exist?

switch-up started as a fix for the very real problems macOS causes when updating a Switch SD card.

macOS silently injects hidden files (.DS_Store, ._* files, extended attributes) into folders on FAT32/exFAT media. Those files can corrupt your SD card from the Switch's point of view and trigger boot failures, black screens, and cryptic errors.

On top of that, macOS Finder's "Replace" behavior is destructive — dragging a folder with the same name can delete the original instead of merging contents. A simple update can wipe out configs, mods, cheats, and homebrew files.

Even on Windows and Linux, users still benefit from a safer update flow.

switch-up automates the process safely:

  1. Backs up your configuration files before touching anything
  2. Smart Merges new files onto your SD without deleting existing content
  3. Cleans hidden junk files that should not live on the SD card
  4. Restores your backup automatically if anything goes wrong

Installation

From PyPI

pip install switch-up

From source

git clone https://github.com/yourusername/switch-up.git
cd switch-up
pip install -e .

Requirements

  • Python 3.8 or higher
  • macOS, Windows, or Linux

Usage

Update Atmosphere and Hekate to the latest version

Downloads the latest releases from GitHub and installs them safely to your SD card.

switch-up update --latest

The tool will auto-detect your SD card from the default mount locations of the current platform:

  • macOS: /Volumes
  • Linux: /media, /run/media, /mnt
  • Windows: mounted drive letters such as E:/

If you have multiple SD cards or a custom mount point, specify the path manually:

switch-up update --latest --sd-path /path/to/your/sd

Examples:

switch-up update --latest --sd-path /Volumes/MY_SD
switch-up update --latest --sd-path /media/oscar/MY_SD
switch-up update --latest --sd-path E:/

Update only Atmosphere (skip Hekate)

switch-up update --latest --ams-only

Install a local ZIP file

If you already downloaded a release ZIP manually:

switch-up install ./atmosphere-1.8.0.zip --sd-path /path/to/your/sd

Clean junk files only (no update)

Removes hidden compatibility junk from the SD card. On macOS this also attempts to remove extended attributes.

switch-up fix-archive-bit /path/to/your/sd

What happens during an update?

1. Backup      → Saves hekate_ipl.ini, exosphere.ini, and other configs
                  to ~/.switch-up/backups/ (timestamped)
2. Extract     → Unpacks the ZIP to a temporary directory
3. Smart Merge → Copies new files to SD, preserving your existing content
4. Cleanup     → Removes .DS_Store, ._* files, __MACOSX/, and xattrs on macOS
5. Done        → If anything fails at step 3, your backup is auto-restored

Configuration Backups

Before every operation, switch-up saves your critical config files to:

~/.switch-up/backups/20260227_143000/
├── hekate_ipl.ini
├── exosphere.ini
├── bootloader/hekate_ipl.ini
└── atmosphere/config/system_settings.ini

These backups persist across sessions so you can always recover your settings.

Commands Reference

Command Description
switch-up update --latest Download and install the latest Atmosphere + Hekate
switch-up update --latest --ams-only Download and install only Atmosphere
switch-up install <zip> Install a local ZIP file to the SD card
switch-up fix-archive-bit [path] Clean hidden junk files from the SD card; remove xattrs on macOS
switch-up --version Show the current version
switch-up --help Show help for all commands

Platform Support

switch-up now supports macOS, Windows, and Linux.

Current behavior by platform

  • macOS

    • Auto-detects SD cards under /Volumes
    • Removes hidden junk files
    • Removes extended attributes when possible
  • Linux

    • Auto-detects SD cards under /media, /run/media, and /mnt
    • Supports backup, Smart Merge, local ZIP install, and release downloads
    • Skips macOS-only xattr cleanup
  • Windows

    • Auto-detects SD cards from mounted drive letters
    • Supports backup, Smart Merge, local ZIP install, and release downloads
    • Skips macOS-only xattr cleanup

License

GPLv3 — See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

switch_up-0.2.0.tar.gz (25.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

switch_up-0.2.0-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

Details for the file switch_up-0.2.0.tar.gz.

File metadata

  • Download URL: switch_up-0.2.0.tar.gz
  • Upload date:
  • Size: 25.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for switch_up-0.2.0.tar.gz
Algorithm Hash digest
SHA256 86b0c56f7752a758d426944ce6bde32e8b3ab1b43fdef0231a00fb3cf45520a4
MD5 f5a225214ad45d20cc25bbdd8b85e9f3
BLAKE2b-256 5a0570f9f17e3c6b04a896ea81e59659aadcf1d9018a0171775e6902079b7d53

See more details on using hashes here.

Provenance

The following attestation bundles were made for switch_up-0.2.0.tar.gz:

Publisher: publish.yml on OscarCampohermoso/switch-up

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file switch_up-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: switch_up-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 27.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for switch_up-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 04874ee7b93252352d38893fd76321ee90fd031439323ae63d4b8029a1110503
MD5 c7808ec02ca39c78a0acda12cfe4f283
BLAKE2b-256 d722cfdc887c9b3f9e9dc7655179b1f18736462ca7299c70668aed543d0e8fb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for switch_up-0.2.0-py3-none-any.whl:

Publisher: publish.yml on OscarCampohermoso/switch-up

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page