2019-01-31 09:10:19 +00:00
|
|
|
# Nintendo Switch Tool (NSTool) ![DeviceTag](https://img.shields.io/badge/Device-SWITCH-e60012.svg)
|
|
|
|
General purpose reading/extraction tool for Nintendo Switch file formats.
|
2017-07-18 14:23:37 +00:00
|
|
|
|
2019-01-31 09:10:19 +00:00
|
|
|
## Supported File Formats
|
|
|
|
* Meta (.npdm)
|
|
|
|
* PartitionFS (and HashedPartitionFS) (includes raw .nsp)
|
|
|
|
* RomFS
|
|
|
|
* GameCard Image (.xci)
|
|
|
|
* Nintendo Content Archive (.nca)
|
|
|
|
* Content Metadata (.cnmt)
|
|
|
|
* Nintendo Software Object (.nso)
|
|
|
|
* Nintendo Relocatable Software Object (.nro)
|
|
|
|
* Kernel Initial Process List (.ini)
|
|
|
|
* Kernel Initial Process (.kip)
|
|
|
|
* Nintendo Application Control Property (.nacp)
|
|
|
|
* ES Ticket (v2 only) (.tik)
|
|
|
|
* PKI Certificate (.cert)
|
2017-07-18 14:23:37 +00:00
|
|
|
|
2019-01-31 09:10:19 +00:00
|
|
|
# Usage
|
|
|
|
```
|
|
|
|
Usage: nstool [options... ] <file>
|
2018-04-24 09:25:05 +00:00
|
|
|
|
2019-01-31 09:10:19 +00:00
|
|
|
General Options:
|
|
|
|
-d, --dev Use devkit keyset.
|
|
|
|
-k, --keyset Specify keyset file.
|
|
|
|
-t, --type Specify input file type. [xci, pfs, romfs, nca, meta, cnmt, nso, nro, ini, kip, nacp, aset, cert, tik]
|
|
|
|
-y, --verify Verify file.
|
2018-04-24 09:25:05 +00:00
|
|
|
|
2019-01-31 09:10:19 +00:00
|
|
|
Output Options:
|
|
|
|
--showkeys Show keys generated.
|
|
|
|
--showlayout Show layout metadata.
|
|
|
|
-v, --verbose Verbose output.
|
2018-08-07 05:39:55 +00:00
|
|
|
|
2019-01-31 09:10:19 +00:00
|
|
|
XCI (GameCard Image)
|
|
|
|
nstool [--listfs] [--update <dir> --logo <dir> --normal <dir> --secure <dir>] <.xci file>
|
|
|
|
--listfs Print file system in embedded partitions.
|
|
|
|
--update Extract "update" partition to directory.
|
|
|
|
--logo Extract "logo" partition to directory.
|
|
|
|
--normal Extract "normal" partition to directory.
|
|
|
|
--secure Extract "secure" partition to directory.
|
2018-04-24 09:25:05 +00:00
|
|
|
|
2019-01-31 09:10:19 +00:00
|
|
|
PFS0/HFS0 (PartitionFs), RomFs, NSP (Ninendo Submission Package)
|
|
|
|
nstool [--listfs] [--fsdir <dir>] <file>
|
|
|
|
--listfs Print file system.
|
|
|
|
--fsdir Extract file system to directory.
|
2018-08-07 05:43:58 +00:00
|
|
|
|
2019-01-31 09:10:19 +00:00
|
|
|
NCA (Nintendo Content Archive)
|
|
|
|
nstool [--listfs] [--bodykey <key> --titlekey <key>] [--part0 <dir> ...] <.nca file>
|
|
|
|
--listfs Print file system in embedded partitions.
|
|
|
|
--titlekey Specify title key extracted from ticket.
|
|
|
|
--bodykey Specify body encryption key.
|
|
|
|
--tik Specify ticket to source title key.
|
|
|
|
--cert Specify certificate chain to verify ticket.
|
|
|
|
--part0 Extract "partition 0" to directory.
|
|
|
|
--part1 Extract "partition 1" to directory.
|
|
|
|
--part2 Extract "partition 2" to directory.
|
|
|
|
--part3 Extract "partition 3" to directory.
|
|
|
|
|
|
|
|
NSO (Nintendo Software Object), NRO (Nintendo Relocatable Object)
|
|
|
|
nstool [--listapi --listsym] [--insttype <inst. type>] <file>
|
|
|
|
--listapi Print SDK API List.
|
|
|
|
--listsym Print Code Symbols.
|
|
|
|
--insttype Specify instruction type [64bit|32bit] (64bit is assumed).
|
|
|
|
|
|
|
|
INI (Initial Process List Blob)
|
|
|
|
nstool [--kipdir <dir>] <file>
|
|
|
|
--kipdir Extract embedded KIPs to directory.
|
|
|
|
|
|
|
|
ASET (Homebrew Asset Blob)
|
|
|
|
nstool [--listfs] [--icon <file> --nacp <file> --fsdir <dir>] <file>
|
|
|
|
--listfs Print filesystem in embedded RomFS partition.
|
|
|
|
--icon Extract icon partition to file.
|
|
|
|
--nacp Extract NACP partition to file.
|
|
|
|
--fsdir Extract RomFS partition to directory.
|
|
|
|
```
|
2018-04-25 04:59:42 +00:00
|
|
|
|
2019-01-31 09:10:19 +00:00
|
|
|
# External Keys
|
|
|
|
NSTool doesn't embed any keys that are copyright protected. However keys can be imported via various keyset files.
|
|
|
|
|
|
|
|
See [SWITCH_KEYS.md](/SWITCH_KEYS.md) for more info.
|
|
|
|
|
|
|
|
# Building
|
|
|
|
See [BUILDING.md](/BUILDING.md).
|