Mount Nintendo Switch archive as filesystems, and find/extract files from them.
- Nca (only AES-CTR encrypted/plaintext NCA3s are supported, BKTR encryption (for update NCAs) is unsupported)
- Xci
- Pfs
- Hfs
- Romfs
Formats are recognized based on magicnums/numeric contants present in their headers, and not their extensions.
Refer to the built-in help (-h
/--help
). You can find help on a specific subcommand using fuse-nx <subcmd> --help
, or fuse-nx --help-all
.
Windows is supported via:
- WinFsp: make sure that
winfsp-x64.dll
(found inC:\Program Files (x86)\WinFsp\bin
after installing) is present in the same directory as the executable; - WSL: To access the filesystem through the explorer, you will need to pass the
-o allow_other
flag to FUSE when mounting, and adduser_allow_other
to/etc/fuse.conf
.
- lib: Library (fnx) for parsing the supported file formats;
- src: Source code for the main application;
- bindings: CPython (3) bindings for the library;
- scripts: example Python scripts using these bindings.
This program depends on either libgcrypt or mbedtls for cryptographic operations. The former should be preferred when possible, as it makes uses of available hardware crypto extensions (whereas mbedtls only supports AES-NI).
The build process as follows:
meson build
meson compile -C build -j$(nproc)
If libcrypt is not found, it will fall back on the system installation of mbedtls, or failing that, on a clean build of it. mbedtls can be forcefully enabled by passing -Dcryptobackend=mbedtls
on the configure step.
python setup.py build
sudo meson install -C build
For users of Arch-based distros, an AUR package is available.
sudo python setup.py install
Or just pip install -U git+https://github.com/averne/Fuse-Nx.git
.