Home Homebrew Rilasciato FuseCheck v1.0.1: Più chiarezza e sicurezza per il ritorno all’OFW...

[Scena Switch] Rilasciato FuseCheck v1.0.1: Più chiarezza e sicurezza per il ritorno all’OFW su Nintendo Switch

160
0

Pubblicato un rapido aggiornamento per FuseCheck, il payload bare-metal sviluppato da sthetix, diventato uno strumento di riferimento per chi possiede una Nintendo Switch modificata e vuole sapere con certezza se è possibile tornare al firmware ufficiale senza correre il rischio di un brick irreversibile.

Questo aggiornamento non introduce nuove funzioni invasive, ma migliora in modo deciso chiarezza e affidabilità, due aspetti fondamentali quando si parla di sicurezza hardware.

La novità principale riguarda la gestione del database dei fuse. In precedenza, in assenza del file fusecheck_db.txt, il tool poteva mostrare informazioni fuorvianti, come un firmware indicato erroneamente come versione 1.0.0.

Con questo aggiornamento, FuseCheck ora avvisa esplicitamente l’utente quando il database manca o quando la cartella di configurazione non è stata copiata correttamente sulla SD, fornendo feedback chiari e immediati ed eliminando ogni possibile ambiguità.

Il funzionamento di FuseCheck resta semplice ma cruciale. Ogni volta che una Nintendo Switch viene aggiornata con un firmware ufficiale, la console brucia internamente dei fuse hardware.

Questi fuse non possono essere ripristinati e rappresentano un contatore permanente degli aggiornamenti effettuati. Se si tenta di avviare un firmware ufficiale che richiede un numero di fuse inferiore rispetto a quelli già bruciati, la console si blocca definitivamente, ed è proprio qui che FuseCheck diventa essenziale.

Il payload legge automaticamente il firmware attualmente installato, rileva direttamente dall’hardware il numero reale di fuse bruciati, supportando sia i modelli Erista sia Mariko, e confronta questi dati con un database dedicato.

In pochi secondi, direttamente da Hekate, l’utente ottiene un responso chiaro e inequivocabile: avvio sicuro oppure rischio concreto di brick. Non è più necessario fare calcoli manuali, consultare tabelle esterne o affidarsi a supposizioni.

Caratteristiche

  • Rilevamento automatico del firmware — Rileva la versione firmware dal SystemVersion NCA nella partizione SYSTEM.
  • Lettura fuse hardware — Legge il conteggio dei fuse bruciati direttamente dai registri hardware.
  • Analisi di compatibilità — Confronta i fuse rilevati con i requisiti del firmware.
  • Layout UI orizzontale — Interfaccia pulita, ispirata a TegraExplorer.
  • Visualizzatore database fuse — Permette di sfogliare i requisiti completi dei fuse per tutte le versioni firmware.
  • Supporto allo scorrimento — Navigazione tra voci illimitate del database.
  • Supporto screenshot — Cattura i risultati con il gesto a tre dita.
  • Derivazione chiavi in memoria — Le chiavi vengono derivate solo in RAM; nulla viene scritto sulla SD.
  • Database esterno — File di database facilmente aggiornabile (nessuna ricompilazione necessaria).
  • Ritorno automatico a Hekate — Avvia il bootloader/update.bin al termine dell’esecuzione.

Indicatori di stato

ERRORE CRITICO

  • Condizione: Fuse bruciati < fuse richiesti
  • Risultato: OFW NON SI AVVIA (schermo nero)
  • Funziona: CFW (Atmosphère), Semi-stock (Hekate nogc)
  • Non funziona: OFW stock

ERRORE CRITICO (FUSE IN ECCESSO)

  • Condizione: Fuse bruciati > fuse richiesti
  • Risultato: OFW NON SI AVVIA (schermo nero)
  • Funziona: CFW (Atmosphère), Semi-stock (Hekate nogc)
  • Non funziona: OFW stock
  • Nota: Evento molto raro, ma possibile su alcune console.

CORRISPONDENZA PERFETTA

  • Condizione: Fuse bruciati = fuse richiesti
  • Risultato: OFW SI AVVIA NORMALMENTE
  • Nota: Il sistema è in uno stato ideale sia per CFW che per OFW.

Installazione

  • Scaricare l’archivio ZIP dalla repository.
  • Estrarre il contenuto dell’archivio ZIP sulla scheda SD.
  • Avviare la console in Hekate.
  • Lanciare FuseCheck.bin dal menu Payloads.

Utilizzo

Pagina principale (Risultati controllo fuse)

La schermata principale mostra:

  • Versione firmware — Rilevata automaticamente dalla partizione SYSTEM.
  • Fuse bruciati — Conteggio dei fuse hardware letto dai registri ODM6+ODM7 (X fuse bruciati).
  • Fuse richiesti — Numero di fuse necessari per il firmware rilevato.
  • Stato — Risultato di compatibilità con indicazione a colori.
  • Informazioni dettagliate — Cosa funziona e cosa non funziona in base allo stato dei fuse.

Controlli:

  • VOL+ — Visualizza il database dei fuse (tutte le versioni firmware).
  • VOL- — Ritorna a Hekate.
  • Power — Spegne la console.
  • Tocco a 3 dita — Scatta uno screenshot.

Pagina database fuse

Consente di visualizzare i requisiti completi dei fuse per tutte le versioni firmware Nintendo Switch:

  • Intervalli di versioni di sistema.
  • Conteggio fuse per unità di produzione.
  • Conteggio fuse per unità di sviluppo.
  • Indicatore di scorrimento con posizione [inizio–fine/totale].

Controlli:

  • VOL+ — Scorri verso il basso (si ferma in fondo).
  • VOL- — Scorri verso l’alto (si ferma in cima).
  • Power — Ritorna alla schermata principale.
  • Tocco a 3 dita — Scatta uno screenshot.

Configurazione del Database

FuseCheck utilizza un file di database esterno per permettere aggiornamenti facili senza necessità di ricompilazione.

Posizione del Database

sd:/config/fusecheck_db.txt

Formato del Database

Il file di database supporta due tipi di voci:

Voci Fuse Count

[FUSE] <version_range> <prod_fuses> <dev_fuses>

Esempio:


[FUSE] 21.0.0-21.0.1 22 1
[FUSE] 20.0.0-20.5.0 21 1
[FUSE] 19.0.0-19.0.1 20 1
  • version_range: Versione firmware o intervallo (es. “21.0.0” o “20.0.0-20.5.0”).
  • prod_fuses: Fuse bruciati richiesti per unità di produzione.
  • dev_fuses: Fuse bruciati richiesti per unità di sviluppo.

Fonte: switchbrew.org/wiki/Fuses (sezione Anti Downgrade)

Voci NCA

[NCA] <version> <nca_filename>

Esempio:


[NCA] 21.0.1 e7273dd5b560d0ba282fc64206fecb56.nca
[NCA] 21.0.0 4b0130c8b9d2174a6574f6247655acc0.nca
[NCA] 20.5.0 23ce01f1fc55e55a783162d456e5ca58.nca
  • version: Versione firmware esatta (es. “21.0.1”).
  • nca_filename: Nome del file SystemVersion NCA (Title ID 0100000000000809).

Commenti

Le righe che iniziano con # sono considerate commenti:

# Questo è un commento
# Puoi aggiungere note sugli aggiornamenti firmware qui

Aggiornamento del Database

Quando viene rilasciato un nuovo firmware Switch:

  • Aggiorna la sezione [FUSE] con il nuovo conteggio fuse da switchbrew.
  • Aggiorna la sezione [NCA] con il nuovo filename del SystemVersion NCA.
  • Copia il file aggiornato in sd:/config/fusecheck_db.txt
  • Nessuna ricompilazione necessaria!

Un file di esempio è incluso nella repository come fusecheck_db.txt.

Come funziona

Dettagli Tecnici

  • Inizializzazione hardware — Inizializza display, storage e DRAM.
  • Derivazione chiavi in memoria — Deriva le chiavi BIS in RAM utilizzando il motore Lockpick_RCM.
  • Lettura fuse — Legge i registri fuse ODM6 e ODM7 e conta tutti i fuse bruciati.
  • Accesso alla partizione SYSTEM — Monta la partizione SYSTEM utilizzando la chiave BIS 2.
  • Rilevamento firmware — Scansiona /Contents/registered/ per trovare il SystemVersion NCA.
  • Matching con il database — Confronta il filename NCA con il database esterno.
  • Controllo di compatibilità — Confronta i fuse bruciati con quelli richiesti.
  • Visualizzazione stato — Mostra i risultati in layout orizzontale.

Nota: La Switch ha due registri fuse anti-downgrade (ODM6 e ODM7). FuseCheck legge entrambi per fornire una copertura completa dei fuse. A partire dal firmware 21.0.0+, Nintendo ha bruciato fino a 22 fuse, con ampio margine residuo per firmware futuri.

Mappatura Fuse-Firmware

Basato su switchbrew.org/wiki/Fuses:

Gamma di firmwareFusibili richiesti
1.0.0 1
2.0.0-2.3.02
3.0.0 3
3.0.1-3.0.24
4.0.0-4.1.05
5.0.0-5.1.06
6.0.0-6.1.07
6.2.0 8
7.0.0-8.0.19
8.1.0 10
9.0.0-9.0.111
9.1.0-9.2.012
10.0.0-10.2.013
11.0.0-12.0.114
12.0.2-13.1.015
13.2.1-14.1.216
15.0.0-15.0.117
16.0.0-16.1.018
17.0.0-18.1.019
19.0.0-19.0.120
20.0.0-20.5.021
21.0.0-21.0.122

Derivazione della chiave

  • Utilizza derive_bis_keys_silently() di Lockpick_RCM.
  • Funziona sia su Erista (generazione chiavi TSEC) che su Mariko (KEK Mariko).
  • Tutte le chiavi restano in RAM, nessuna scrittura sulla scheda SD.
  • Output grafico disattivato durante la derivazione delle chiavi.

Rilevamento Firmware

  • Montaggio della partizione SYSTEM usando la chiave BIS 2 derivata.
  • Scansione della directory /Contents/registered/ per i file NCA.
  • Confronto dei nomi dei file NCA con il database esterno.
  • Fallback a mappa fuse hardcoded se il database non è trovato.
  • Restituisce la versione firmware (major.minor.patch).

Changelog

  • Aggiunto un avviso quando il file fusecheck_db.txt è mancante, evitando la visualizzazione fuorviante del firmware versione 1.0.0.
  • Gli utenti ora vengono correttamente informati quando la cartella config non è stata copiata sulla scheda SD.
  • Migliorato il feedback all’utente in caso di file del database mancante.

Download: FuseCheck v1.0.1

Download: Source code FuseCheck v1.0.1