# Nintendo Switch

# Custom Firmware

# CFW für Switch Version 1

### Beschreibung:

Die Bootrom des Tegra X1 weist einen kritischen Defekt auf, bekannt als "Fusée Gelée", der im Tegra Recovery Mode auftritt. Der USB-Software-Stack umfasst eine Kopierfunktion, deren Umfang ein Angreifer bestimmen kann. Mithilfe eines eigens erstellten USB Control Request kann ein Angreifer diesen Mangel nutzen, um seine eigenen Daten in den Execution-Stack zu übertragen und somit kompletten Zugriff auf den Boot- und Powermanagement-Prozessor (BPMP) zu erlangen. Dies ermöglicht die vollständige Kontrolle über das Gerät, jedoch ist dazu physischer Zugriff erforderlich. Dieser Fehler wurde öffentlich bekannt, nachdem er am 24. April 2018 durchgesickert war.

Im Juli 2018 wurde das Problem durch eine aktualisierte Version der Switch behoben.

### Vorrausetzungen:

#### Eure Switch muss den CPU Bug haben:  


  
Hier der Seriennumemer check:

<details id="bkmrk-seriennummern-tl%3Bdr."><summary>Seriennummern</summary>

<span style="font-size: 18px;"><span style="color: #ff0000;">TL;DR. Compare your serial here to know if your Switch is patched or not:</span></span>  
  
Serials beginning with XAW1:  
<span style="color: #00b300;">Serials between XAW10000000000 - XAW10065000000 are safe to buy</span>  
<span style="color: #ff8000;">Serials between XAW10066000000 - XAW10120000000 are possibly patched</span>  
<span style="color: #ff0000;">Serials above XAW10120000000 are definitely patched</span>

---

  
Serials beginning with XAW4:  
<span style="color: #00b300;">Serials between XAW40000000000 - XAW40011000000 are safe to buy</span>  
<span style="color: #ff8000;">Serials between XAW40011000000 - XAW40012000000 are possibly patched</span>  
<span style="color: #ff0000;">Serials above XAW40012000000 are definitely patched</span>

---

  
Serials beginning with XAW7:  
<span style="color: #00b300;">Serials between XAW70000000000 - XAW70017500000 are safe to buy</span>  
<span style="color: #ff8000;">Serials between XAW70017500000 - XAW70030000000 are possibly patched</span>  
<span style="color: #ff0000;">Serials above XAW70030000000 are definitely patched</span>

---

  
Serials beginning with XAJ1:  
<span style="color: #00b300;">Serials between XAJ10000000000 - XAJ10020000000 are safe to buy</span>  
<span style="color: #ff8000;">Serials between XAJ10020000000 - XAJ10030000000 are possibly patched</span>  
<span style="color: #ff0000;">Serials above XAJ10030000000 are definitely patched</span>

---

  
Serials beginning with XAJ4:  
<span style="color: #00b300;">Serials between XAJ40000000000 - XAJ40044000000 are safe to buy</span>  
<span style="color: #ff8000;">Serials between XAJ40044000000 - XAJ40083000000 are possibly patched</span>  
<span style="color: #ff0000;">Serials above XAJ40083000000 are definitely patched</span>

---

  
Serials beginning with XAJ7:  
<span style="color: #00b300;">Serials between XAJ70000000000 - XAJ70040000000 are safe to buy</span>  
<span style="color: #ff8000;">Serials between XAJ70040000000 - XAJ70050000000 are possibly patched</span>  
<span style="color: #ff0000;">Serials above XAJ70050000000 and above definitely patched  
</span>

---

  
Serials beginning with XAW9:  
Refurbished Consoles directly from Nintendo. <span style="color: #ff8000;">Possibly patched. </span>However, data show a good percentage of unpatched consoles with this prefix.

---

  
Serials beginning with XAK:  
No informations available, since those are only sold in Korea (?)

---

  
Serials beginning with XKW and XKJ:  
These Switches have the new motherboard revision called "Mariko".  
<span style="color: #ff0000;">They are 100% patched.</span>

</details>#### Physikalisches Zubehör um das Leben leichter zu machen:

##### Einen JIG für den Home Button Recovery Modus  
(wenn du ein RCM-Loader hast, brauchst du keinen JIG, ist nämlich dabei):

Der komplizierteste Teil dieses Vorgangs besteht darin, den Tegra Recovery Mode zu aktivieren. Dafür müssen die Tasten POWER, Lautstärke hoch und HOME gleichzeitig gedrückt werden, während die Switch ausgeschaltet ist. Allerdings besitzt die Switch selbst keinen HOME-Button; dieser befindet sich nur an den Controllern. Stattdessen ist der HOME-Button bei der Switch über Pin 10 am Connector des rechten Joy-Con angebunden.  
  
Um eine Verbindung herzustellen, können Sie entweder mit einer Büroklammer Pin 1 und Pin 10, also die beiden äußeren Pins, oder mit einem Kabel Pin 10 und Pin 1 verbinden. Alternativ zu Pin 1 können auch die oberen Kühlrippen, die Rail selbst oder die nahegelegene Schraube verwendet werden. Wichtig ist, dass Pin 10 dabei geerdet wird.  
  
Oder man nutzt einen JIG was ich nur empfehlen kann:  
Diesen einfach and er rechten seite mit on noch unten reinschieben wo sonst der Controller reinkommt.  
Dann die Switch an den Computer oder den RCM Loader anschließen und die Switch starten.  
Per Computer muss dann noch ein Payload gesendet werden. Am RCM Loader wird ja mittels Plus taste die Firmware ausgewählt. Dazu unten später. Erst nach dem auswählen die Switch starten.

[https://www.amazon.de/rcm-jig/s?k=rcm+jig](https://www.amazon.de/rcm-jig/s?k=rcm+jig)

[![image-1713635706216.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-04/scaled-1680-/KRPPGf9HpjFaZ1JA-image-1713635706216.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-04/KRPPGf9HpjFaZ1JA-image-1713635706216.png)

##### Ein RCM Loader One :

[https://www.amazon.de/RCM-Loader-kompatibel-Nintendo-Switch/dp/B0C7KJ737C/](https://www.amazon.de/RCM-Loader-kompatibel-Nintendo-Switch/dp/B0C7KJ737C/)

[RCM Loader bei eBay](https://www.ebay.de/itm/404926961919?itmmeta=01HVYCG8JE7EBD8VW2VJ0TCGWA&hash=item5e478718ff:g:mAIAAOSw-I1mDZH6&itmprp=enc%3AAQAJAAAA4IyZdW%2F%2BJgzbQ%2FedoX0aZeluF1VEVDCJWsqaOLkuGfjkoaFYPdMFqGnwg5dt3fBUd8I6QP%2FgOVw1Empz1GkCSSfAtoG0Ib6mdb%2FZIB8Tc0CKfp2QfeF12aIexU175xHfHb3Br6IbUkjGAew5yvQTl%2F%2B6OtufOREeGh%2BAZrDri%2FKtogLYt7CIY4Z8xl5LKeDuzn1Q%2B2USllR2%2B6rywTlM4RqL9wCh%2FPIHtHt8VNnEONLr9v9a0i9gTWYgmhUywKvDQcKFg%2FWyFVaBrFb40IcVX7nuEMi2fbFNO4bLJYxtVUya%7Ctkp%3ABk9SR6SJwczfYw)

[![image-1713635863742.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-04/scaled-1680-/c2Gij7fnr1URPRDP-image-1713635863742.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-04/c2Gij7fnr1URPRDP-image-1713635863742.png)

Und wozu das Ding? Payloads können doch auch vom Computer direkt gesnedet werden  
Hier ein beschreibung im Spoiler:

<details id="bkmrk-vorteile-rcmloader-v"><summary>Vorteile RCMLoader vs Payload Software</summary>

Payloads können auch direkt von einem Computer aus gesendet werden, um den Recovery Mode (RCM) einer Nintendo Switch zu nutzen. Hier sind einige Vor- und Nachteile dieser beiden Methoden, also das Senden von Payloads vom Computer und das Verwenden eines dedizierten Geräts wie dem RCM Loader:

### Payloads vom Computer senden

**Vorteile:**

1. **Keine zusätzliche Hardware erforderlich**: Wenn du bereits einen Computer hast, brauchst du kein zusätzliches Gerät zu kaufen.
2. **Flexibilität**: Du kannst verschiedene Payloads leicht austauschen und anpassen, da du direkten Zugriff auf die Dateien auf deinem Computer hast.
3. **Updates und Support**: Es ist einfacher, Software auf dem Computer zu aktualisieren und Support für gängige Payload-Software zu finden.

**Nachteile:**

1. **Komplexität**: Für Anfänger kann es komplizierter sein, die erforderliche Software einzurichten und zu konfigurieren.
2. **Portabilität**: Ein Laptop oder Desktop-PC ist weniger tragbar als ein kleiner, dedizierter Loader.
3. **Abhängigkeit vom Betriebssystem**: Manchmal können Kompatibilitätsprobleme mit bestimmten Betriebssystemen oder spezifischen Softwareversionen auftreten.

### Verwendung eines RCM Loaders

**Vorteile:**

1. **Portabilität**: Der RCM Loader ist klein, leicht und kann leicht transportiert werden, was ihn ideal für Modifikationen unterwegs macht.
2. **Einfache Bedienung**: Einmal eingerichtet, ist der Loader oft einfacher zu bedienen, da er in der Regel nur das Anschließen an die Konsole erfordert, ohne weitere Konfiguration.
3. **Unabhängigkeit**: Der Loader ist nicht abhängig von einem Computer oder einer speziellen Software, was ihn in verschiedenen Situationen nützlich macht.

**Nachteile:**

1. **Kosten**: Ein RCM Loader ist eine zusätzliche Investition, da es sich um ein spezielles Gerät handelt.
2. **Eingeschränkte Funktionalität**: Im Vergleich zu einem Computer, der regelmäßig aktualisiert und angepasst werden kann, bietet der Loader möglicherweise nicht dieselbe Flexibilität oder Unterstützung für die neuesten Payloads und Updates.

### Zusammenfassung

Die Entscheidung, ob du Payloads direkt von einem Computer sendest oder einen RCM Loader verwendest, hängt von deinen spezifischen Bedürfnissen ab. Wenn Portabilität und einfache Bedienung entscheidend sind, könnte ein RCM Loader die bessere Wahl sein. Wenn du jedoch Wert auf Flexibilität und keine zusätzlichen Kosten legst, könnte das Senden von Payloads vom Computer die bessere Option sein.

</details>##### Eine SD Karte

Denn irgendwo muss die Firmware und Homebrews ja drauf.  
<span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">Nintendo unterstützt SD-Karten in den Dateiformaten **FAT32 oder exFAT**.  
unsere Custom Firmware unterstützen **<span style="color: #e03e2d;">nur</span>** **FAT32**   
Das Partitionslayout mus mbr / msdos haben.</span></span>  
Also mit <span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">**FAT32** </span></span> formatieren.

<span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">Der SD-Kartenslot befindet sich unter dem Ständer.  
</span></span>

<span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">Ein Payload allein reicht nicht.  
Es muss auch eine Firmware auf die SD-Karte</span></span>

<span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">Hier nehmen wir asl Beispiel Hekate + Atmosphere</span></span>

<span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">Hekate : [https://wiidatabase.de/switch-downloads/custom-firmware/hekate/?dl=0](https://wiidatabase.de/switch-downloads/custom-firmware/hekate/?dl=0)  
</span></span><span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">Atmosphere : [https://wiidatabase.de/switch-downloads/custom-firmware/atmosphere/?dl=0](https://wiidatabase.de/switch-downloads/custom-firmware/atmosphere/?dl=0)  
hekate INI, das ist das Pendant zur Windows boot.ini / bcd, da steht drin welche Firmware geladen werden soll.  
Diese Ini Datei in das Verzeichnis bootloader einfügen und überschreiben  
Ini : [https://wiidatabase.de/switch-downloads/custom-firmware/hekate/?dl=1](https://wiidatabase.de/switch-downloads/custom-firmware/hekate/?dl=1)</span></span>

<span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">Möchte man die Signatürprüfung deaktivieren, anstatt die erste INI diese die ganze ZIP auf die SD KArte kopieren und überschreiben sagen. Die Zip Atmosphere muss schon auf der SD-Karte sein.  
</span></span>

<span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">[https://wiidatabase.de/switch-downloads/hacks/signatur-patches/?dl=0](https://wiidatabase.de/switch-downloads/hacks/signatur-patches/?dl=0)</span></span>

<span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">  
</span></span><span class="BxUVEf ILfuVd" lang="de"><span class="hgKElc">Den Inhalt einfach auf die SD Karte entpacken / kopieren.</span></span>

##### Software Voraussetzungen wenn kein RCM Loader verwendet wird:

Der Python fusee-launcher.py für Linux und Mac

[https://static.wiidatabase.de/fusee-launcher.zip](https://static.wiidatabase.de/fusee-launcher.zip)

Installation unter Linux  
Hardware Vorausetzung:   
**xHCI-Controller** verfügen (USB 3.0 oder jeder andere USB-Port an einem modernen System).

```
apt install python3 python3-pip
pip install pyusb
```

Installtion unter Mac  
keine Hardware Vorausetzungen

[Python3 auf MACOS installieren.](https://wiki.hacker-net.de/books/python/page/python3-auf-macos-installieren "Python3 auf MACOS installieren.")

```
pip install pyusb
```

oder für Windows

TegraRcmGUI -&gt; [https://github.com/eliboa/TegraRcmGUI](https://github.com/eliboa/TegraRcmGUI)

### Payload durchführen

#### Mittels RCMLoader

Der RCM Loader kommt mit einigen Firmwares von Haus aus mit.

Mittels + Taste Können die Firmwares gewählt werden am Gerät.  
Die + Taste gedrückt halten dann wird der aktuelle Modus angezeigt , dann nochmals gedrückt halten dann wird die nächste Farbe angewählt, nochmals gedrückt halten wieder die nächste usw.  
Diese sind:

```
LED-color        Folder name                        Bulit-in payload
1 Blue           ATMOSPHERE_HEKATE       			HEKATE_CTCAER_5.6.0_Nyx_1.0.6
2 Green          REINX                              REINX_3.0
3 Red            SXOS                               SX_loader_1.0
4 Yellow         USER1                                  -
5 Magenta        USER2                                  -
6 Cyan           USER3                                  -

```

Die readme.txt-Datei vermerkt das Datum der letzten Update-Durchführung und die integrierten Payloads inklusive ihrer jeweiligen Farben (siehe Tabelle oben). Auf unserem Dongle war die Bezeichnung "USER1" in "USER1\_XKOS" geändert und enthielt XKOS, eine Kopie von SX OS. Überflüssig zu sagen, dass ich dies sofort entfernte und den Ordner umbenannte. Die Datei "LAUNCH.TXT" listet den aktuell eingestellten Payload auf.

In jedem Verzeichnis befindet sich eine Datei "payload.bin", die durch andere Payloads ersetzt werden kann, beispielsweise bei der Veröffentlichung einer neuen Version von ReiNX, um den Payload zu aktualisieren. Die "USER"-Verzeichnisse sind dafür gedacht, eigene Payloads aufzunehmen.

Gelegentlich wird eine neue Firmware veröffentlicht. In diesem Fall muss die aktuelle Version heruntergeladen und in den "IAP"-Ordner auf dem Dongle kopiert werden. Nachdem der Dongle getrennt und erneut verbunden wurde, startet nach drei Sekunden automatisch die Aktualisierung, woraufhin der Ordner gelöscht wird.

[![Auswahl_380.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-04/scaled-1680-/45k5c0gqDTuqnh0C-auswahl-380.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-04/45k5c0gqDTuqnh0C-auswahl-380.png)

Start des Payloads. Mittels + die Firmware auswählen und und warten

#### Mittels Software  


Die Switch in den RCM Modus setzten.   
Den JIG Einsetzten und Erst Lautstärke hoch dann gedrückt halten und dazu Power drüken.  
Dann mit USB Kabel mit dem Computer / MAC verbinden

##### fusee-launcher.py

```
python fusee-launcher.py PFAD_ZUM_PAYLOAD.bin
```

#### Über die Windows Software

Paxload durchsuchen und unter tools Memloader v3 auswählen.

[![image-1713639639294.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-04/scaled-1680-/j5WJJ2CconDLiUWV-image-1713639639294.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-04/j5WJJ2CconDLiUWV-image-1713639639294.png)

# Homebrew Software

# SNES

Beschreibung:

Ein SNES Emulator, es wird das cover genommen wenn das cover den gleichen Namen wie die ROM file hat.  
Die ROM files müssen auf der SD-Karte unterliegen

Die nro File kann hier downgeloadet werden

[https://github.com/Cpasjuste/pemu/releases/download/v6.7.1/pfbneo.nro](https://github.com/Cpasjuste/pemu/releases/download/v6.7.1/pfbneo.nro)

Nun erstellen wir in dem Verzeichnis switch ein neues Verzeichnis mit dem namen psnes.  
Dort drin erstellen wir ein Verzeichnis ROMS.  
Die nro Datei aus dem Download muss in switch/psnes Verzeichnis abgelegt werden

So sieht unser switch Verzeichnis dann aus

```
.
├── daybreak.nro
├── haze.nro
├── psnes
│   ├── psnes.nro
│   └── ROMS
└── reboot_to_payload.nro

```

# Home Brew Struktur und starten über das Homebrew Menu

### Beschreibung:

Homebres sind nro Dateien und werden im Verzeichnis switch abgelegt.  
Diese können in Unterverzeichnisse abgelegt werden.  
wenn zum Beispiel Hombrews auch eigen Verzeichnisse haben.  
Zum beispiel such psnes roms im Ordner roms.  
Würde es nur ein verzeichnis geben. Würden als Beispiel snes und nes roms vermischt.  
Somit sähe die Verzeichnisstruktur für switch so aus:

```
.
├── daybreak.nro
├── haze.nro
├── psnes
│   ├── psnes.nro
│   └── ROMS
└── reboot_to_payload.nro

```

Home brews lassen sich über das Homebrew Menü starten

Home Brew Menü installieren

Download Link : [https://wiidatabase.de/switch-downloads/hacks/switch-homebrew-menu/?dl=0](https://wiidatabase.de/switch-downloads/hacks/switch-homebrew-menu/?dl=0)

Auf die SD Karte entpacken in switch/  
Die Switch mit Wifi verbinden und den Custom DNS Server setzten :   
Primary DNS : 104.236.106.125  
Secondary DNS : 62.210.147.20  
Dann auf Connection test gehen