Yanu is a Nintendo Switch ROM updater designed to work with Skyline on Android w/Termux, Linux, and Windows, as well as other platforms with the help of Docker images. It serves as a temporary solution until Skyline supports Updates/DLCs natively.
Important
Yanu doesn't support DLCs as of yet
Precompiled binaries are available from the GitHub releases page.
- NSP
- XCI* (through XCI-NSP conversion)
Check out Video Tutorial by SmokeyMC for Android.
- Download & Install
Termuxfrom F-droid. - Copy-paste the following in
Termuxand hit enter:
bash <(curl -L https://raw.githubusercontent.com/nozwock/yanu/main/scripts/yanu-bootstrap-termux.sh)Relevant resources:
- MiXplorer XDA Forum
- MiXplorer GDrive download link
- Ensure that your system has all the necessary dependencies installed to build hactool/hacPack/etc. For example:
sudo apt -y install gcc-12 g++-12 make git libjpeg-dev binutils-dev libicu-dev - Download & give executable permission to
yanu:chmod +x yanu-x86_64-unknown-linux-musl
Note
If for some reason, the backends are not compiling properly for you on Linux, you could always use the docker builds.
- Just download & run.
Note
Due to the lack of code-signing, some anti-virus programs may falsely identify the program as malicious. I cannot afford expensive certificates to prevent this. Exercise caution if concerned and consider using tools like virustotal.com or hybrid-analysis.com.
Go here to pull the container you wish to use. Once you have the container, you can use it like this:
# Expecting 'prod.keys` in pwd
docker run -v "$(pwd)"/prod.keys:/root/.switch/prod.keys -v "$(pwd)":/work ghcr.io/nozwock/yanu update --base '/path/to/base' --update '/path/to/update' View CLI help with:
yanu-cli --helpFor updating a ROM:
yanu-cli --keyfile '/path/to/keyfile' update --base '/path/to/base' --update '/path/to/update'Set a new Yanu Directory (Used in tui) with:
yanu-cli config --yanu-dir '/new/path/here'For unpacking ROMs:
yanu-cli unpack --base '/path/to/base' --update '/path/to/update'OR, for only unpacking a single ROM:
yanu-cli unpack --base '/path/to/base'For packing unpacked ROM data (both base+update were unpacked):
yanu-cli pack --controlnca './base+update.xxxxxx/patchdata/control.nca' --titleid 'xxxxxxxxxxxxxxxx' --romfsdir './base+update.xxxxxx/romfs' --exefsdir './base+update.xxxxxx/exefs'If only base was unpacked, get the control NCA from basedata.
Tip
- For Windows, adapt the above examples by replacing
/with\and using the appropriate path to the executable. - Control NCA is typically around 1MB in size.
- Yanu only accepts Control Type NCA. If unsure of the Type, trial and error can help narrow down the options.
- Check the logs for guidance on which TitleID to use if using the wrong one.
| Used for | Windows | Linux |
|---|---|---|
| Keys | %USERPROFILE%\.switch |
$HOME/.switch |
| Cache | %LOCALAPPDATA%\com.github.nozwock.yanu |
$HOME/.cache/com.github.nozwock.yanu |
| Config | %APPDATA%\com.github.nozwock.yanu |
$HOME/.config/com.github.nozwock.yanu |
-
Newer games failing to update.
Before applying the update, it is necessary to either use the latest product keys or perform a downgrade of the base and update the ROM files firmware using NSCB. This approach has proven to be effective. -
If you encounter errors such as 'Failed to sync package repos' while installing yanu on Termux, try updating your outdated repositories using:
termux-change-repo
- hactool, hacPack, hac2l, hactoolnet, and 4NXCI are used internally for the heavy lifting.
- @Pipetto-crypto for the
aarch64-linuxhac2lbinary. - Willfaust's script for reference.