Make and Repack NCAs/NSPs
Go to file
2018-10-02 18:39:52 +03:30
docs Initial Release. 2018-10-02 18:39:52 +03:30
hacPack-GUI Initial Release. 2018-10-02 18:39:52 +03:30
LICENSES Initial Release. 2018-10-02 18:39:52 +03:30
mbedtls Initial Release. 2018-10-02 18:39:52 +03:30
aes.c Initial Release. 2018-10-02 18:39:52 +03:30
aes.h Initial Release. 2018-10-02 18:39:52 +03:30
cnmt.c Initial Release. 2018-10-02 18:39:52 +03:30
cnmt.h Initial Release. 2018-10-02 18:39:52 +03:30
config.mk.template Initial Release. 2018-10-02 18:39:52 +03:30
ConvertUTF.c Initial Release. 2018-10-02 18:39:52 +03:30
ConvertUTF.h Initial Release. 2018-10-02 18:39:52 +03:30
extkeys.c Initial Release. 2018-10-02 18:39:52 +03:30
extkeys.h Initial Release. 2018-10-02 18:39:52 +03:30
filepath.c Initial Release. 2018-10-02 18:39:52 +03:30
filepath.h Initial Release. 2018-10-02 18:39:52 +03:30
ivfc.c Initial Release. 2018-10-02 18:39:52 +03:30
ivfc.h Initial Release. 2018-10-02 18:39:52 +03:30
LICENSE Initial Release. 2018-10-02 18:39:52 +03:30
main.c Initial Release. 2018-10-02 18:39:52 +03:30
Makefile Initial Release. 2018-10-02 18:39:52 +03:30
nacp.c Initial Release. 2018-10-02 18:39:52 +03:30
nacp.h Initial Release. 2018-10-02 18:39:52 +03:30
nca.c Initial Release. 2018-10-02 18:39:52 +03:30
nca.h Initial Release. 2018-10-02 18:39:52 +03:30
pfs0.c Initial Release. 2018-10-02 18:39:52 +03:30
pfs0.h Initial Release. 2018-10-02 18:39:52 +03:30
pki.c Initial Release. 2018-10-02 18:39:52 +03:30
pki.h Initial Release. 2018-10-02 18:39:52 +03:30
README.md Initial Release. 2018-10-02 18:39:52 +03:30
romfs.c Initial Release. 2018-10-02 18:39:52 +03:30
romfs.h Initial Release. 2018-10-02 18:39:52 +03:30
settings.h Initial Release. 2018-10-02 18:39:52 +03:30
sha.c Initial Release. 2018-10-02 18:39:52 +03:30
sha.h Initial Release. 2018-10-02 18:39:52 +03:30
types.h Initial Release. 2018-10-02 18:39:52 +03:30
utils.c Initial Release. 2018-10-02 18:39:52 +03:30
utils.h Initial Release. 2018-10-02 18:39:52 +03:30
version.h Initial Release. 2018-10-02 18:39:52 +03:30

hacPack

License: GPL v2

hacPack is a tool for creating Nintendo Switch NCAs (Nintendo Content Archive) and packing them into NSPs (Nintendo Submission Package)
You can use hacPack to make your custom ncas and nsps, repack your modded games, and etc...

Thanks: SciresM, yellows8, Adubbz, SwitchBrew

Usage

Keys

You should place your keyset file with "keys.dat" filename in the same folder as hacPack
Alternatively, You can use -k or --keyset option to load your keyset file
Required keys are:

Key Name Description
header_key NCA Header Key
key_area_key_application_xx Application key area encryption keys

CLI Options:

*nix: ./hacpack [options...]  
Windows: .\hacpack.exe [options...]  
  
Options:
General options:  
-k, --keyset             Set keyset filepath, default filepath is ./keys.dat  
-h, --help               Display usage  
--tempdir                Set temp directory filepath, default filepath is ./hacbpack_temp/  
--keygeneration          Set keygeneration for encrypting key area, default keygeneration is 1  
--plaintext              Skip encrypting sections and set section header block crypto type to plaintext  
--sdkversion             Set SDK version in hex, default SDK version is 000C1100  
--keyareakey             Set key area key 2 in hex with 16 bytes lenght  
Required options:  
-o, --output             Set output directory  
--type                   Set file type [nca, nsp]  
--ncatype                Set nca type if file type is nca [program, control, manual, data, publicdata, meta]  
--titleid                Set titleid  
Program NCA options:  
--exefsdir               Set program exefs directory path  
--romfsdir               Set program romfs directory path  
--logodir                Set program logo directory path  
--noromfs                Skip creating program romfs section  
--nologo                 Skip creating program logo section  
Control NCA options:  
--romfsdir               Set control romfs directory path  
Manual NCA options:  
--romfsdir               Set manual romfs directory path  
Data NCA options:  
--romfsdir               Set data romfs directory path  
PublicData NCA options:  
--romfsdir               Set publicdata romfs directory path  
Metadata NCA options:  
--titletype              Set cnmt title type [application, addon]  
--programnca             Set program nca path  
--controlnca             Set control nca path  
--legalca                Set legal information nca path  
--htmldocnca             Set offline manual nca path  
--datanca                Set data nca path  
--digest                 Set cnmt digest  
NSP options:  
--ncadir                 Set input nca directory path  

GUI:

hacPack GUI is just an interface for CLI. It's just available for Microsoft Windows and it requires .NetFramework 4.5 or higher
Currently, all options are not implemented in GUI and it's recommended to use CLI

Check docs for more info

Licensing

This software is licensed under the terms of the GNU General Public License, version 2.
You can find a copy of the license in the LICENSE file.
Portions of project hacPack are parts of other projects, make sure to check LICENSES folder