Home Homebrew Rilasciato MakeROM v0.18.3

[Scena 3DS] Rilasciato MakeROM v0.18.3

1181
0

Pubblicato un nuovo aggiornamento per MakeROM, lo strumento a riga di comando può essere utilizzato per creare file NCCH, CCI e CIA per console Nintendo 3DS.

Il formato nativo che memorizza i binari del codice e gli archivi di dati per la console 3DS è NCCH. I file NCCH sono composti da:

  • codice/exheader/plainregion (usato per l’esecuzione del codice) (plainregion elenca solo i componenti aggiuntivi della libreria SDK inclusi).
  • icona (testo del titolo dell’app, icona, impostazioni del menu home, vedi qui.
  • banner (cbmd + cwav, ovvero il banner/suono dello schermo superiore mostrato nell’homemenu).
  • logo (la schermata iniziale visualizzata dopo l’avvio di un’applicazione dal menu principale).
  • romfs (filesystem di sola lettura utilizzato per memorizzare le risorse).

Gli usi tipici dei file NCCH includono:

  • Immagine eseguibile (codice+exheader+icona+banner+logo+romfs).
  • Archivio e-Manual (accessibile da homemenu) (romfs).
  • Archivio CIA figlio DLP (accessibile dall’applicazione) (romfs).
  • Aggiorna Archivio dati (rom).
  • Archivio dati autonomo (roms).
  • Archivio indice DLC (icon+romfs).
  • Archivio DLC (rom).

Il formato nativo per le immagini delle schede di gioco è invece CCI ed è un formato contenitore NCCH. I file CCI sono limitati a contenere 8 file NCCH e possono contenere file NCCH solo per i titoli delle applicazioni.

Configurazione NCCH per CCI

NCCHNecessarioIndex
Immagine eseguibileSi0
Archivio e-ManualNo1
Archivio DLP child CIANo2
Aggiorna Archivio dataNo7

CIA

Il formato nativo per il confezionamento dei file NCCH per l’installazione è CIA, che è anche un formato contenitore NCCH. I file CIA sono limitati a contenere 65535 file NCCH e possono essere utilizzati per contenere file NCCH per qualsiasi tipo di titolo.

I file CIA contengono anche dati firmati utilizzati dal 3DS per la gestione generale del titolo e DRM. Installare file CIA personalizzati su un 3DS che utilizza anche eShop/SysUpdates non è saggio poiché è probabile che si verifichino conflitti.

Configurazioni NCCH per CIA

Applicazioni (Applicazione/DlpChild/Demo/Patch/Applicazione di sistema):

NCCHNecessarioIndex
Immagine eseguibileSi0
Archivio e-ManualNo1
Archivio DLP child CIANo2

System Applet/Module:

NCCHNecessarioIndex
Immagine eseguibileSi0

Archivi System Data:

NCCHNecessarioIndex
Data archiveSi0

DLC:

Il numero di archivi data DLC nel DLC varia per ciascun DLC.

NCCHNecessarioIndex
DLC index archiveSi0
DLC data archive SiVaria

Utilizzo Makerom

Riga di comando

makerom [general args] [rsf args] [crypto args] [ncch 0 build args] [cci args] [cia args]

Argomenti generali

ArgomentoValori accettabiliNote
-f 'ncch'/'cxi'/'cfa'/'cci'/'cia'Specifica il formato del file di output. 'nnch'/'cxi'/'cfa' non ha alcun effetto, probabilmente analizzato senza errori per il supporto legacy.
-o Percorso file valido.Specifica nome/percorso per il file di output. Makerom deciderà un nome se questo non è specificato.
-vNon richiestoAbilita output dettagliato.

Argomenti RSF

ArgomentoValori accettabiliNote
-rsf Percorso file validoSpecifica il percorso di Rom Specification File (RSF). Vedi sotto per la creazione di RSF.
-D=Viene utilizzato per sostituire dove esiste "$()" nei file RSF con "". (Le maiuscole non sono obbligatorie)

Argomenti crittografici

ArgomentoValori accettabiliNote
-target 't'/'d'/'p'Specifica la key-chain. Ciò influisce sulla crittografia, sulla firma e sulla disponibilità del modello "-desc". t=test, adatto per homebrew. d=devkit(incompleto), adatto per devkit. p=retail(inutilizzabile), adatto per la firma di software di vendita al dettaglio?
-ckeyid Qualsiasi valore compreso tra 0 e 255 (incluso).Sostituisce la chiave comune predefinita utilizzata per crittografare le chiavi del titolo CIA.
-showkeysNessunoScarica la key-chain caricato su stdout.

Argomenti NCCH Build

ArgomentoValori accettabiliNote
-elf Percorso file validoSpecificare ELF. Vedere sotto per la creazione di ELF.
-icon Percorso file validoSpecifica l'icona.
-banner Percorso file validoSpecifica banner.
-desc : ='app'/'ecapp'/'demo'/'dlpchild'. ='kernel version minor'.Usa un modello per exheader/accessdesc. Questi sono hardcoded, quindi non tutti i firmware hanno un modello, è possibile utilizzare un valore compreso tra 1 e 7 al posto di "versione kernel minore". Un modello non dovrebbe essere utilizzato se il titolo necessita di autorizzazioni "speciali", l'RSF deve essere completamente configurato.
-exefslogoNessunoIncludi il logo in ExeFS. Necessario per l'utilizzo su sistemi <5.0.

Argomenti utili per ricostruire un file NCCH:

ArgomentoValori accettabiliNote
-code Percorso file validoSpecifica il codice binario decompresso/in chiaro exefs.
-exheader Percorso file validoSpecifica il binario di intestazione in testo normale.
-logo Percorso file validoSpecifica il logo.
-plainrgn Percorso file validoSpecificare la regione normale NCCH.
-romfs Percorso file validoSpecificare un binario RomFS non crittografato.

Argomenti CCI

ArgomentoValori accettabiliNote
-content :=Percorso file valido. =Qualsiasi valore compreso tra 0-7 (incluso)Includere un file NCCH creato nel contenitore CCI. "-i" può essere utilizzato al posto di "-content".
-devcciNessunoCrea una CCI di debug?
-nomodtidNessunoNon modifica i TitleId dei file NCCH inclusi in modo che corrispondano a NCCH0
-alignwrNessunoAllinea l'offset per la regione scrivibile Card2 alla fine dell'ultimo NCCH nel CCI.

Argomenti CIA

ArgomentiValori accettabili Note
-content ::=Percorso file valido. =Qualsiasi valore compreso tra 0x0-0xFFFF (incluso). =Qualsiasi valore compreso tra 0x0-0xFFFFFFFF (incluso)Includere un file NCCH creato nel contenitore CIA. Se non è specificato, verrà generato in modo casuale. "-i" può essere utilizzato al posto di "-content".
-major Qualsiasi valore compreso tra 0-63 (incluso)Specificare la versione principale per il titolo. Non può essere utilizzato con "-dver".
-minor Qualsiasi valore compreso tra 0-63 (incluso)Specificare la versione minore per il titolo. Non può essere utilizzato con "-dver".
-micro Qualsiasi valore compreso tra 0-15 (incluso)Specificare la versione micro per il titolo.
-dver Qualsiasi valore compreso tra 0-4095 (incluso)Specificare la versione del titolo dati per il titolo. Non può essere utilizzato con "-major" o "-minor".
-dlcNessunoSpecifica questo flag durante la creazione di un DLC CIA.
-randNessunoUsa una chiave del titolo casuale per crittografare il contenuto del file CIA.

Esempi

Esempi generali:

Crea CXI

makerom -o sample.cxi -rsf sample.rsf -target t -elf sample.elf -icon sample.icn -banner sample.bnr -desc app:4

Crea CFA

makerom -o sample.cfa -rsf sample.rsf -target t

Crea CCI

makerom -f cci -o sample.cci -target t -i sample.cxi:0 -i sample.cfa:1

Crea CIA

makerom -f cia -o sample.cia -target t -i sample.cxi:0:0 -i sample.cfa:1:1

Makerom supporta la creazione di un file NCCH e includerlo automaticamente (come index 0) in un contenitore NCCH:

Crea CCI e CXI contemporaneamente e includi un CFA

makerom -f cci -o sample.cci -rsf sample.rsf -target t -elf sample.elf -icon sample.icn -banner sample.bnr -desc app:4 -i sample.cfa:1

Crea CIA e CXI contemporaneamente e includi un CFA

makerom -f cia -o sample.cia -rsf sample.rsf -target t -elf sample.elf -icon sample.icn -banner sample.bnr -desc app:4 -i sample.cfa:1:1

Ricostruzione CXI:

makerom -o rebuild.cxi -rsf rebuild.rsf -target t -code rebuild/code.bin -exheader rebuild/exheader.bin -icon rebuild/icon.bin -banner rebuild/banner.bin -romfs rebuild/romfs.bin

Creazione di file RSF

Ispirato al formato Nintendo per la loro MakeROM, è necessario un file di configurazione yaml per creare file NCCH, è possibile creare CIA/CCI senza utilizzare un file RSF, ma verranno utilizzate le impostazioni predefinite.

Per CXI, i file RSF possono essere utilizzati per specificare le autorizzazioni e le impostazioni di controllo dell’accesso. Makerom può utilizzare le impostazioni predefinite utilizzando l’opzione “-desc”, che rimuove il requisito per specificarle nel file RSF.

Esempio di RSF da utilizzare con “-desc”: download (link interrotto)

Esempio di RSF da utilizzare senza “-desc”: download

Creazione di file ELF

L’ultimo devkitARM utilizzato insieme a ctrulib può creare file ELF compatibili con MakeROM. Anche i file ELF creati utilizzando l’SDK ufficiale sono supportati da MakeROM.

Changelog v0.18.3

  • [BuildSystem] makefile per makerom e libyaml aggiornato per definire -D_GNU_SOURCE per build linux.
    • Questo corregge il problema #122 in cui alcune funzioni sono state definite implicitamente causando segfault su Linux.

Changelog v0.18.2

  • [BugFix] Inizializza correttamente prod InitialData KeyX.
  • [BugFix] Seleziona correttamente CCI CryptoType quando non specificato manualmente.

Changelog v0.18.1

  • [BugFix] Corretto un bug in cui i dati iniziali non venivano generati correttamente (#107).
  • [Modifica] Gli errori nella generazione delle firme RSA ora sono un avviso, non un errore.
  • [Modifica] MakeROM ora fornirà maggiori informazioni sugli errori irreversibili. Questo dovrebbe aiutare a diagnosticare errori confusi.
  • [Modifica] MakeROM avviserà gli utenti se il tipo di crittografia CCI non è supportato dalla destinazione.

Download: MakeROM v0.18.3 [MacOS ARM64]

Download: MakeROM v0.18.3 [MacOS x86_64]

Download: MakeROM v0.18.3 [Ubuntu x86_64]

Download: MakeROM v0.18.3 [Win x86_64]

Download: Source code MakeROM v0.18.3

Fonte: github.com

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: Xbox Series

Vedi altri prodotti Xbox Series

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui
Captcha verification failed!
Punteggio utente captcha non riuscito. Ci contatti per favore!

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.