A small Bash script to update the main files used on my hacked Nintendo Switch SD card.
It currently handles:
The script downloads the latest GitHub releases, creates a backup of the current SD card files, then copies the updated files to the SD card.
Connect your Nintendo Switch microSD card to your computer, then run:
./switch-updater.sh /path/to/sd-cardYou can also update the SD card without removing it from the console by using Hekate USB Mass Storage.
Boot into Hekate, mount the SD card from Tools > USB Tools, then run:
./switch-updater.sh /Volumes/SwitchThe script performs the following steps:
- Checks that all required binaries are installed.
- Downloads the latest releases for Atmosphere, Hekate and sys-patch.
- Stores downloaded files in the
downloads/directory. - Tracks downloaded versions in
downloads/versions.env. - Creates a backup of important SD card files in
backups/. - Extracts downloaded archives when needed.
- Copies the updated files to the SD card.
→ Destination: /Volumes/Switch
Checking releases...
✓ atmosphere 1.11.1 already downloaded
✓ hekate v6.5.2 already downloaded
✓ sys-patch v1.6.2.0 already downloaded
Backup...
✓ backup created: /path/to/project/backups/sd-card-2026-05-19
Updating SD card...
✓ atmosphere
✓ hekate
✓ sys-patch
✓ fusee.bin
Done.Before updating the SD card, the script creates a backup of the files and directories it may overwrite.
Backups are stored in:
backups/
A backup is created once per day using the following format:
sd-card-YYYY-MM-DD
If a backup already exists for the current day, the script reuses it and does not create another one.
Downloaded files are stored in:
downloads/
The script keeps track of downloaded versions in:
downloads/versions.env
If a release has already been downloaded, the script skips downloading it again.
This project is mostly made for my own setup.
It assumes a fairly standard Atmosphere/Hekate/sys-patch SD card layout. It only copies the files it manages and does not intentionally touch unrelated files on the SD card.