[Scena Switch] Rilasciato Custom Firmware Atmosphère v0.8.6

Disponibile un nuovo aggiornamento per Atmosphère, il Custom Firmware per console Switch introduce il supporto per lanciare l’applet Web attraverso applicazioni homebrew.

Atmosphere è un Custom Firmware portatile che può essere facilmente implementato su qualsiasi server Web che supporti le specifiche Servlet 2.3 o direttamente su framework come Vert.x, Netty e Play.

Un’altra caratteristica interessante è che ora il Custom Firmware Atmosphère scarica direttamente le chiavi in automatico, questo ci evita di generarli attraverso strumenti di terze parti.

Nota: Si consiglia di non aggiornare la console al firmware 6.2.0, almeno per il momento, eseguite l’installazione del Custom Firmware SOLO se montate l’ultimo aggiornamento del sistema.

Componenti

Atmosphère è costituito da molti componenti, ciascuno dei quali sostituisce/modifica un diverso componente del sistema:

  • Fusée: Loader della prima fase, responsabile del caricamento e della validazione dello stage 2 (TrustZone personalizzata) più package2 (i sysmodules Kernel/FIRM) e la loro applicazione in base alle necessità. Questo sostituisce tutte le funzionalità normalmente in Package1loader/NX Bootloader.
    • Sept: Il payload utilizzato per abilitare il supporto per la derivazione della chiave di runtime su 7.0.0.
  • Exosphère: TrustZone personalizzato, per eseguire un monitor sicuro personalizzato.
  • Thermosphère: Supporto ELu EmuNAND, ovvero backup e utilizzo di immagini NAND virtualizzate/reindirizzate.
  • Stratosphère: Sysmodule personalizzati, entrambi in stile Rosalina per estendere il kernel/fornire nuove funzionalità e lo stile di reimplementazione del caricatore per agganciare azioni importanti del sistema
  • Troposphère: Patch del sistema operativo Horizon a livello di applicazione, utilizzati per implementare le funzionalità desiderabili el Custom Firmware.

Caratteristiche

Supporta il seguente set di funzioni:

  • Fusée , un bootloader personalizzato.
    • Supporta il caricamento e la personalizzazione di KIP arbitrari dalla scheda SD.
    • Supporta il caricamento di un kernel personalizzato dalla scheda SD (/atmosphere/kernel.bin).
    • Supporta patch del kernel definite in fase di compilazione su base per-firmware.
    • Tutte le patch su percorsi come /atmosphere/kip_patches/<user-defined patch name>/<SHA256 of KIP>.ips verranno applicate ai KIP pertinenti, consentendo una facile distribuzione di patch che supportano più versioni.
      • Sono supportati entrambi i formati IPS e IPS32.
    • Tutte le patch su percorsi come /atmosphere/kernel_patches/<user-defined patch name>/<SHA256 of Kernel>.ips verranno applicate al kernel, consentendo una facile distribuzione di patch che supportano più versioni.
      • Sono supportati entrambi i formati IPS e IPS32.
    • Configurabile modificando BCT.ini sulla scheda SD.
    • Atmosphère dovrebbe anche essere agganciabile dal bootloader di hekate alternativo, per quelli che lo preferiscono. 
  • Exosphère, un monitor sicuro personalizzato e completo.
    • Exosphere è una re-implementazione del firmware TrustZone di Nintendo, che replica completamente tutte le sue funzionalità.
    • Inoltre, è stato esteso per fornire informazioni sull’attuale versione dell’API Atmosphere, per gli homebrew che desiderano farne uso.
  • Stratosphère, un insieme di moduli di sistema personalizzati. Ciò comprende:
    • Un modulo di sistema del loader.
      • Reimplementazione del loader Nintendo, che replica completamente tutte le funzionalità originali.
      • Configurabile modificando /atmosphere/loader.ini.
      • Supporto di prima classe per l’Homebrew Loader.
        • Verrà utilizzato un exefs NSP (predefinito /atmosphere/hbl.nsp) al posto degli estremi del titolo della vittima.
        • Per impostazione predefinita, HBL sostituirà l’applet album, ma dovrebbe essere supportata anche qualsiasi altra applicazione.
      • Esteso per supportare il reindirizzamento arbitrario del contenuto eseguibile sulla scheda SD.
        • I file saranno caricati preferenzialmente da /atmosphere/titles/<titleid>/exefs/ , se presente.
        • I file presenti nell’exefs originale che un utente vuole contrassegnare come non presente possono essere “stub” creando un file .stub sulla SD.
        • Se presente, un PFS0 in /atmosphere/titles/<titleid>/exefs.nsp sostituirà completamente gli exefs originali.
        • Il reindirizzamento è facoltativamente modificabile tenendo premuti determinati pulsanti (per impostazione predefinita, tenendo premuto R si disabilita il reindirizzamento).
      • Implementato il supporto completo per l’applicazione di patch ai contenuti NSO.
        • Verranno applicate tutte le patch su percorsi come /atmosphere/exefs_patches/<user-defined patch name>/<Hex Build-ID for NSO to patch>.ips , consentendo una facile distribuzione di patch che supportano versioni e/o titoli di firmware multipli.
        • Sono supportati entrambi i formati IPS e IPS32.
      • Ampliato per supportare l’avvio di contenuti da file eseguibili liberi sulla scheda SD, senza richiedere alcuna installazione ufficiale.
        • Questo viene fatto specificando FsStorageId_None all’avvio.
    • Un modulo di sistema del service manager.
      • Reimplementazione del service manager di Nintendo, che ne replica completamente tutte le funzionalità originali.
      • Supporto in fase di compilazione per la reintroduzione di “smhax”, che consente ai clienti di saltare facoltativamente la verifica dell’accesso ai servizi saltando l’inizializzazione.
      • Esteso per consentire agli homebrew di acquisire più informazioni per i servizi privilegiati rispetto a quanto consentito da Nintendo.
      • Esteso per aggiungere una nuova API per l’installazione di listener Man-In-The-Middle per servizi arbitrari.
        • L’API può essere utilizzata per rilevare in modo sicuro se un servizio è stato registrato in modo non bloccante senza effetti collaterali.
        • Documentazione completa delle API in arrivo.
    • Un modulo di sistema del process manager.
      • Reimplementazione del process manager di Nintendo, che ne replica completamente tutte le funzionalità originali.
      • Esteso per consentire agli homebrew di acquisire informazioni per processi arbitrari e quindi leggere/modificare la memoria di sistema senza bloccare l’esecuzione.
      • Esteso per consentire agli homebrew di recuperare informazioni sui limiti delle risorse di sistema.
      • Esteso includendo un’implementazione completa ed estesa del modulo di sistema boot2 di Nintendo.
        • L’ordine di lancio del titolo è stato ottimizzato per consentire un accesso più rapido alla scheda SD.
        • Il modulo del sistema di raccolta degli errori non viene avviato intenzionalmente, impedendo la generazione di molti report di errore di telemetria del sistema.
        • Gli utenti possono inserire i propri sysmodules personalizzati sulla scheda SD e contrassegnarli per l’avvio automatico di boot2 creando un file /atmosphere/titles/<title ID>/boot2.flag sulla loro scheda SD.
    • Un modulo di sistema fs.mitm personalizzato.
      • Utilizza l’API MitM di Atmosphère per fornire agli utenti un mezzo semplice per modificare i contenuti del gioco.
      • Intercetta tutti i comandi FS inviati dai giochi, con una gestione speciale per i comandi utilizzati per montare contenuti RomFS/DLC per consentire una facile creazione e distribuzione di mod di gioco/DLC.
        • fs.mitm analizzerà l’immagine RomFS di base per un gioco, un’immagine RomFS situata in /atmosphere/titles/<title ID>/romfs.bin , e tutti i file sfusi in /atmosphere/titles/<title ID>/romfs/ , e li unisce in un’unica immagine RomFS.
        • Quando si uniscono, i file sfusi sono preferiti al contenuto nell’immagine della scheda SD romfs.bin e i file dall’immagine della scheda SD sono preferiti a quelli nell’immagine di base.
      • Può inoltre essere utilizzato per intercettare i comandi inviati da titoli di sistema arbitrari (ad eccezione di quelli lanciati prima che la scheda SD sia attiva), creando un file /atmosphere/titles/<title ID>/fsmitm.flag sulla scheda SD.
      • Può essere forzatamente disabilitato per qualsiasi titolo, creando un file /atmosphere/titles/<title ID>/fsmitm_disable.flag sulla scheda SD.
      • Il reindirizzamento è facoltativamente modificabile tenendo premuti determinati pulsanti (per impostazione predefinita, tenendo premuto R si disabilita il reindirizzamento).
    • Un modulo di sistema personalizzato crash report.
      • Funziona come un rimpiazzo per il modulo del sistema Creport di Nintendo.
      • Genera report dettagliati e leggibili su arresti anomali del sistema, salvandoli in /atmosphere/crash_reports/<timestamp>_<title ID>.log .
      • Poiché i report non vengono inviati al erpt, questo disabilita tutta la telemetria correlata al rapporto di arresto anomalo.
  • Miglioramenti alla stabilità generale del sistema per migliorare l’esperienza dell’utente.

Wiki

  • Fusée, un bootloader personalizzato.
    • Supporta il caricamento e la personalizzazione di KIP arbitrari dalla scheda SD.
    • Supporta patch del kernel definite in fase di compilazione su base per-firmware.
    • Configurabile modificando il file BCT.ini sulla scheda SD.
    • Atmosphère dovrebbe anche essere eseguibile anche dal bootloader alternativo hekate, per coloro che lo preferiscono.
  • Exosphère, un monitor sicuro personalizzato con funzionalità complete.
    • Exosphere è una re-implementazione del firmware TrustZone di Nintendo, che replica completamente tutte le sue funzionalità.
    • Inoltre, è stato esteso per fornire informazioni sull’attuale versione dell’API Atmosphere, per gli homebrew che desiderano farne uso.
  • Stratosphère, un insieme di moduli di sistema personalizzati. Ciò comprende:
    • Un modulo di sistema del loader.
      • Reimplementazione del caricatore Nintendo, replica completamente tutte le funzionalità originali.
      • Esteso per supportare il reindirizzamento arbitrario del contenuto eseguibile sulla scheda SD.
        • I file saranno caricati preferenzialmente da /atmosphere/titles/<titleid>/exefs/ , se presente.
        • I file presenti nell’exef originale che un utente vuole contrassegnare come non presente possono essere “stub” creando un file .stub sulla SD.
        • Se presente, un file PFS0 in /atmosphere/titles/<titleid>/exefs.nsp sostituirà completamente gli exef originali su 2.0.0+.
        • Il reindirizzamento sarà opzionalmente modificabile tenendo premuti determinati pulsanti.
      • Implementato il supporto completo per l’applicazione di patch ai contenuti NSO.
        • Verranno applicate tutte le patch su percorsi come /atmosphere/exefs_patches/<user-defined patch name>/<Hex Build-ID for NSO to patch>.ips , consentendo una facile distribuzione di patch che supportano più versioni e/o titoli.
        • Sono supportati entrambi i formati IPS e IPS32.
      • Ampliato per supportare l’avvio di contenuti da file eseguibili liberi sulla scheda SD, senza richiedere alcuna installazione ufficiale.
        • Questo viene fatto specificando FsStorageId_None all’avvio.
    • Un modulo di sistema del service manager.
      • Reimplementazione del service manager di Nintendo, replica completamente tutte le funzionalità originali.
      • Supporto in fase di compilazione per la reintroduzione di “smhax”, che consente ai clienti di saltare facoltativamente la verifica dell’accesso ai servizi saltando l’inizializzazione.
      • Esteso per consentire agli homebrew di acquisire più maniglie per i servizi privilegiati rispetto a quanto consentito da Nintendo.
      • Esteso per aggiungere una nuova API per l’installazione di listener Man-In-The-Middle per servizi arbitrari.
        • L’API può inoltre essere utilizzata per rilevare in modo sicuro se un servizio è stato registrato in modo non bloccante senza effetti collaterali.
        • Documentazione completa delle API in arrivo.
    • Un modulo di sistema del process manager.
      • Reimplementazione del process manager di Nintendo, replica completamente tutte le funzionalità originali.
      • Esteso per consentire a homebrew di acquisire handle per processi arbitrari e quindi leggere e modificare la memoria di sistema senza bloccare l’esecuzione.
      • Esteso includendo un’implementazione completa ed estesa del modulo di sistema boot2 di Nintendo.
        • L’ordine di lancio del titolo è stato ottimizzato per consentire un accesso più rapido sulla scheda SD .
        • Il modulo del sistema di raccolta degli errori non viene avviato intenzionalmente, impedendo la generazione di molti report di errore di telemetria del sistema.
        • Gli utenti possono inserire i propri sysmodules personalizzati sulla scheda SD e contrassegnarli per l’avvio automatico di boot2 creando un file /atmosphere/titles/<title ID>/boot2.flag sulla loro scheda SD.
    • Un modulo di sistema fs.mitm personalizzato.
      • Utilizza l’API MitM di Atmosphère per fornire agli utenti un mezzo semplice per modificare i contenuti del gioco.
      • Intercetta tutti i comandi FS inviati dai giochi, con una gestione speciale per i comandi utilizzati per montare contenuti RomFS/DLC per consentire una facile creazione e distribuzione di mod di gioco/DLC.
        • fs.mitm analizzerà l’immagine RomFS di base per un gioco, un’immagine RomFS situata in /atmosphere/titles/<title ID>/romfs.bin , e tutti i file sfusi in /atmosphere/titles/<title ID>/romfs/ , e unendoli in un’unica immagine RomFS.
          • Quando si uniscono, i file sfusi sono preferiti al contenuto nell’immagine della scheda SD romfs.bin e i file dall’immagine della scheda SD sono preferiti a quelli nell’immagine di base.
      • Può essere utilizzato per intercettare anche i comandi inviati da titoli di sistema arbitrari (ad eccezione di quelli lanciati prima che la scheda SD sia attiva), creando un file /atmosphere/titles/<title ID>/fsmitm.flag sulla scheda SD.
    • Un modulo di sistema personalizzato per crash report.
      • Funziona come un rimpiazzo per il modulo del sistema Creport di Nintendo.
      • Genera report dettagliati e leggibili su arresti anomali del sistema, salvandoli in /atmosphere/crash_reports/<timestamp>_<title ID>.log .
      • Poiché i report non vengono inviati al erpt erpt, questo disabilita tutta la telemetria correlata al rapporto di arresto anomalo.
  • Miglioramenti alla stabilità generale del sistema per migliorare l’esperienza dell’utente.

Previsto


Ci sono un certo numero di funzionalità pianificate per l’inclusione di Atmosphère che non saranno presenti nella versione 0.7. A mano a mano che vengono implementati, la versione di rilascio di Atmosphère passerà da 0.7 a 0.8 a 0.9 e infine 1.0.

Queste funzionalità attualmente pianificate includono:

  • Thermosphère, un’implementazione di emunand basata su hypervisor.
  • Un set di strumenti di debug ricco di funzionalità (un componente di Stratosphère).
    • Un modulo di sistema monitor di debug personalizzato, che fornisce un’API per il debug dei processi della Switch. Potrebbe non essere una reimplementazione del monitor di debug di Nintendo.
      • Questo dovrebbe includere un’implementazione gdbstub, possibilmente prendendolo in prestito da Luma3DS.
      • Questa API dovrebbe essere ulteriormente utilizzabile per gli scopi di modifica della RAM/”Cheat Engine”.
    • Un modulo di sistema shell personalizzato, che fornisce agli utenti un mezzo per eseguire vari RPC (con supporto per funzionalità comuni e interessanti) sul proprio Switch in remoto. Potrebbe non essere una reimplementazione della shell di Nintendo.
      • Questo dovrebbe supportare le connessioni client sia su Wi-Fi che su USB.
    • Un modulo di sistema di registrazione personalizzato, che fornisce un mezzo per altri componenti di Atmosphère (e possibilmente per i moduli di sistema Nintendo) per registrare l’output di debug.
      • Questo dovrebbe supportare l’accesso alla scheda SD, tramite Wi-Fi e via USB.
  • Un sistema di plugin a livello di applicazione.
    • Idealmente, ciò funzionerà in qualche modo come il sistema di plugin di NTR-CFW sul 3DS, consentendo agli utenti di eseguire il proprio codice nel processo di un gioco nel proprio thread.
  • Un’implementazione analogica AR Code/Gameshark, che consente una facile condivisione/sviluppo di codici cheat da eseguire sul dispositivo.
  • Ulteriori estensioni ai componenti esistenti di Atmosphère.
  • Miglioramenti alla stabilità generale del sistema per migliorare l’esperienza dell’utente.

Changelog v0.8.6

Grazie al team @switchbrew, Atmosphère v0.8.6 viene fornito in bundle con hbl 2.1hbmenu 3.0.1.

Quanto segue è stato modificato dall’ultima versione:

  • Sono stati corretti numerosi bug, tra cui:
    • In fs.mitm è stato corretto un caso di logica invertita che impediva il corretto funzionamento del sistema di flag.
    • L’accesso al servizio Timer è stato corretto sia in caso di creport/fatale.
      • Questo risolve i timestamp usati nei nomi dei file fatal/crash report.
    • Corretto un problema di coerenza  nel driver Security Engine di exosphère.
      • Questo corregge alcuni problemi di instabilità riscontrati durante l’overclocking della CPU.
    • Il loader ora annulla correttamente i file NRO, quando viene utilizzato ldr:ro.
      • Questo corregge un arresto anomalo quando si avvia ripetutamente l’applet Web su <3.0.0.
    • L’utilizzo di hidKeysDown è stato corretto in hidKeysHeld in diversi moduli.
      • Questo corregge un raro problema in cui i tasti premuti potrebbero essere stati rilevati in modo errato.
    • Corretto un problema nel loader con lo smontaggio del file system.
      • A volte questo problema può causare l’avvio di un errore irreversibile 0x1015 all’avvio.
    • Sono stati corretti due errori nelle implementazioni della macchina virtuale cheat di dmnt.
      • Questo potrebbe causare il malfunzionamento delle cheat in determinate circostanze.
    • Ora PM utilizza un buffer statico invece di uno assegnato dinamicamente durante l’avvio del processo.
      • Questo corregge un problema di esaurimento della memoria durante la creazione con gcc 8.3.0.
    • Una soluzione alternativa per un bug deadlock nel kernel di Horizon su >= 6.0.0 è stata aggiunta in dmnt.
      • Questo impedisce il blocco del sistema all’avvio di determinati titoli con cheat abilitati (ad es. Mario Kart 8 Deluxe).
    • set.mitm ora legge la versione del firmware di sistema direttamente dall’archivio della versione di sistema, invece di chiamare in set:sys.
      • Questo corregge la compatibilità con la versione 1.0.0, che ora si riavvia con successo.
  • La macchina virtuale cheat di dmnt aveva alcune modifiche al set di istruzioni.
    • Aggiunto un nuovo codice operativo per l’inizio di blocchi condizionali basati sul contenuto del registro.
    • Altre modalità di indirizzamento sono state aggiunte all’opcode StoreRegisterToAddress.
    • Questi dovrebbero consentire l’implementazione di cheat più complessi.
  • Aggiunto un nuovo sistema per il salvataggio dello stato delle opzioni di cheat tra il boot del gioco.
    • I commutatori ora vengono salvati in atmosphere/titles/<title id>/cheats/toggles.txt quando entrambi gli atmosphere/titles/<title id>/cheats/toggles.txt sono stati caricati correttamente da quel file o atmosphere!dmnt_always_save_cheat_toggles impostazione del sistema atmosphere!dmnt_always_save_cheat_toggles è diverso da zero.
    • Questo elimina la necessità di impostare manualmente cheat da all-on ad all-off allo stato desiderato su ogni avvio di gioco.
  • Il comportamento predefinito per il supporto HBL del loade è stato modificato.
    • Invece di lanciare HBL quando l’album viene lanciato senza premere , il loader ora lancia HBL quando l’album o qualsiasi gioco viene lanciato con .
    • Loader ora sovrascriverà qualsiasi app oltre a un ID titolo specifico quando hbl_config!override_any_app è true in loader.ini .
      • Di conseguenza, l’ hbl_config!title_id=app stata deprecata. Il supporto verrà rimosso in Atmosphère 0.9.0.
  • Aggiunto il supporto di prima classe a loader e fs.mitm per consentire agli homebrew di eseguire l’applet web.
    • Il loader ora causerà il percorso NCA “HtmlDocument” da risolvere per qualsiasi titolo che HBL sta prendendo in consegna, anche se normalmente non lo farebbe.
    • fs.mitm ora provocherà anche richieste per montare il contenuto HtmlDocument per il titolo HBL per aprire la sdmc:/atmosphere/hbl_html .
      • Per impostazione predefinita, questo contiene solo una lista bianca degli URL.
  • Miglioramenti alla stabilità generale del sistema per migliorare l’esperienza dell’utente.

Per informazioni sul set di funzioni supportato dalla versione 0.8.0, consultare le note di rilascio ufficiali.

Download: Custom Firmware Atmosphère v0.8.6

Download: Payload Fusee-primary

Download: Source code Custom Firmware Atmosphère v0.8.6

Fonte: Github.com

(Visited 1 times, 1 visits today)

7 commenti

  1. Ciao Francesco, tu che sei imparziale, leggo nel web opinioni discordanti, gente che dice: è meglio rimanere ad un fw basso 6.x.x che aggiornarlo al 7.0.1 dove alcuni giochi non funzionano, altri il contrario, meglio aggiornare al 7.0.1 prima che N se ne esca con un update che blocca tutto. Ha senso aggiornare alla 7.0.1? si guadagna una maggiore compatibilità con i giochi o altro? se nel caso dovrei aggiornare meglio usare l’opzione classica ma pure qui si dice che c’è il rischio ban o usare il progrmma “ChoiDujourNX”. Fammi sapere che ne pensi.

    1. Se monti il firmware 6.x puoi benissimo evitare di aggiornare, almeno per il momento, la nuova master key 7 difatti riesce a patchare i nuovi giochi che richiedono il firmware 7.x rendendoli eseguibili su firmware più bassi (non funziona sul firmware 1.0.0), puoi eseguire questa versione di Tinfoil e Lithium che attraverso il Custom Firmware ReiNX/Atmosphere o SX OS ti permetteranno di lanciare con tutta tranquillità i nuovi titoli: https://www.biteyourconsole.net/2019/03/27/scena-switch-rilasciato-tinfoil-e-lithium-v1-50/

      1. Grazie Francesco, si ho il 6.1.0 è per ora l’unico che non funziona è Pang. Ho installato la versione tinfoil che permette di dumpare giochi e update direttamente sulla console, invece questi ultimi sono i medesimi o differenziano.

      2. Ho seguito il tuo consiglio ed ho messo key.dat (master key 7) dentro il folder dove c’è tinfoil.nro, ma se lo lancio dalla sd mi da errore, se lo lancio dal programma mi dice sempre che serve il fw superiore, se uso l’opzione normal crypto, lo installa ma nella home quando lo lancio mi dice di aggiornare… come posso fare?

        1. Comunque ho messo dentro le keys FW 701:
          switch\tinfoil\ keys.txt
          switch\Goldleaf\ keys.dat
          C:\Goldtree.v0.5\ keys.dat
          ma mi dice sempre, che serve un fw maggiore, anche se uso le keys 701 sul fw610 non mi fa installare giochi nuovi come Gain Ground, Sayuki etc

  2. Perciò devo trovare la master key 7? Perché sto vedendo che Gain Ground ed altri giochi mi da errore e che serve un firmware più alto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *