github jakcron/nstool v1.6.0
NSTool v1.6.0

latest releases: v1.9.2, v1.9.1, v1.9.0...
2 years ago

About

NSTool is a general purpose reading/extraction tool for Nintendo Switch file formats.

Supported File Formats

  • PartitionFs (PFS0) (.pfs0)
  • Sha256PartitionFs (HFS0) (.hfs0)
  • RomFs (.romfs)
  • Nintendo Content Archive (.nca)
  • Nintendo Submission Package (.nsp)
  • NX GameCard Image (.xci)
  • Meta (META) (.npdm)
  • Nintendo Application Control Property (.nacp)
  • Content Metadata (.cnmt)
  • ES Certificate (.cert)
  • ES Ticket (v2 only) (.tik)
  • Nintendo Shared Object (NSO0) (.nso)
  • Nintendo Relocatable Object (NRO0) (.nro)
  • Initial Program Bundle (INI1) (.ini)
  • Initial Program (KIP1) (.kip)

Change Log since v1.4.1

  • [NEW] CLI option to extract a file or directory from an archive (-x, --extract).
    • This extract command is supported by all archive types, including XCI and NCA.
    • See README.md for usage help.
  • [Deprecated] CLI option --listfs renamed to --fstree.
    • --listfs is still accepted for now, but may be removed in a later version.
  • [Deprecated] CLI options redundant --fsdir, --update, --logo, --normal, --secure, --part0, --part1, --part2, --part3
    • These are implemented as aliases for a full --extract option, and so they are extract jobs.
    • This means --fsdir works with XCI and NCA too.
  • [BugFix] Passing ticket at command-line (using --tik) now correctly imports title key.
  • [Change] New keys supported in prod.keys and dev.keys key-file.
    • It turns out XCI header keys are shared between prod and dev, and are selected based on an index in XCI header.
      • xci_header_key_## replaces xci_header_key
      • xci_header_key in prod.keys is mapped to xci_header_key_00
      • xci_header_key in dev.keys is mapped to xci_header_key_01
    • Processing XCI Initial Data isn't implemented yet, but support for importing key data was added:
      • xci_initial_data_kek_## AES128 key
    • Processing XCI CERT isn't implemented yet, but support for importing key data was added:
      • xci_cert_sign_key_modulus RSA2048 Modulus
      • xci_cert_sign_key_private RSA2048 Private Exponent
  • [Change] Most publicly known RSA public keys are now built-in, but can still be overridden by a user key-file.
  • [Change] Keys and hashes no longer have bytes separated with : in command-line output.
  • [Remove] Removed CompressedRomFs support
    • The implementation was for a pre-release version, and did not support the actually released CompressedRomFs format.

Don't miss a new nstool release

NewReleases is sending notifications on new releases.