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

Il developer SciresM ha pubblicato un nuovo aggiornamento per il Custom Firmware Atmosphère per console Nintendo Switch.

Il Framework Atmosphere  è stato progettato per semplificare la creazione di applicazioni Web asincrone che includono un mix di comportamento WebSocket, Comet e RESTful, questo è completamente diverso dai Custom Firmware modulari ReiNX e RajNX.

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

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.7.4

Fusee-primary è stato aggiornato l’ultima volta nella versione: 0.7.0.

  • La libstratosphere è stata completamente riscritta e divisa in un suo sottomodulo separato.
    • Sebbene questo sia principalmente “sotto la hook” per gli utenti finali, il refactoring è più veloce (migliora sia le prestazioni di avvio che quelle di runtime), più preciso (molte delle strutture IPC interne sono ora bug-per-bug compatibili con le implementazioni di Nintendo) e significativamente più stabile (risolve un gran numero di bug presenti nella vecchia libreria).
    • Il refactoring dell’API è significativamente più pulita e più facile da scrivere per il codice del modulo di sistema, che dovrebbe migliorare/accelerare lo sviluppo della stratosphere.
    • Gli sviluppatori che desiderano scrivere i propri moduli di sistema personalizzati per lo Switch ora possono includere facilmente libstratosphere come sottomodulo nei loro progetti.
  • Il Loader è stato esteso per aggiungere un nuovo modo generico per reindirizzare il contenuto (ExternalContentSources), courtesy @misson20000:
    • Un nuovo comando è stato aggiunto a ldr:shel, includendo un tid per reindirizzare e restituire un handle di sessione.
    • Quando il TID richiesto si sta caricando, il Loader interrogherà l’handle come se fosse un IFileSystem.
      • Questo consente ai clienti di definire genericamente i propri filesystem e sovrascrivere il contenuto con essi nel loader.
  • fs.mitm ha ottenuto diverse ottimizzazioni che dovrebbero migliorare le sue prestazioni e stabilità:
    • Il reindirizzamento di RomFS ora si verifica solo quando c’è del contenuto da reindirizzare, anche se il titolo viene mitmato altrove.
    • Viene conservata una cache dell’archivio dati attivo, se presente, per tutti i title ID aperti. Ciò significa che se due processi tentano entrambi di aprire lo stesso archivio, fs.mitm non duplicherà alcuno dei suoi lavori.
    • I metadati RomFS ora vengono memorizzati nella cache della scheda SD su build invece di essere mantenuti in memoria – questo riduce notevolmente l’ingombro della memoria e consente a fs.mitm di reindirizzare più titoli contemporaneamente rispetto a prima.
  • Sono stati corretti numerosi bug, tra cui:
    • Una perdita di risorse è stata risolta durante la creazione del processo. Questo risolve i crash che si verificano quando un grande numero di giochi (>32) sono stati lanciati dall’ultimo riavvio.
    • fs.mitm non ha più errori durante la ricezione di un buffer a dimensione zero. Questo risolve i crash in alcuni giochi, incluso The Messenger.
    • La semantica del server multi-thread non dovrebbe più causare deadlock in determinate circostanze.Questo risolve i crash in alcuni giochi, tra cui NES Classics.
    • Ora il PM fornisce solo le autorizzazioni complete per i KIP attivi. Questo risolve un potenziale crash in cui nuovi processi potrebbero non essere in grado di essere registrati con FS.
  • Il target make dist ora include il ramo nel nome del zip generato.
  • Miglioramenti alla stabilità generale del sistema per migliorare l’esperienza dell’utente.

Download: Custom Firmware Atmosphère v0.7.4

Download: Payload Fusee-primary

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



Source : github.com

(Visited 1 times, 1 visits today)

Lascia un commento

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