{"id":19039644,"url":"https://github.com/nozwock/yanu","last_synced_at":"2025-04-04T08:09:17.747Z","repository":{"id":127716855,"uuid":"603503912","full_name":"nozwock/yanu","owner":"nozwock","description":"Yet Another NSP Updater for Skyline","archived":false,"fork":false,"pushed_at":"2025-01-12T21:28:06.000Z","size":7071,"stargazers_count":219,"open_issues_count":6,"forks_count":15,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-28T07:07:59.678Z","etag":null,"topics":["cli","desktop-app","egui","nintendo","rust","switch","termux"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nozwock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-18T18:00:30.000Z","updated_at":"2025-03-25T12:29:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"6ab69713-c839-4e2d-b60a-35d7afdc36cc","html_url":"https://github.com/nozwock/yanu","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nozwock%2Fyanu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nozwock%2Fyanu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nozwock%2Fyanu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nozwock%2Fyanu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nozwock","download_url":"https://codeload.github.com/nozwock/yanu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142074,"owners_count":20890653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","desktop-app","egui","nintendo","rust","switch","termux"],"created_at":"2024-11-08T22:18:03.663Z","updated_at":"2025-04-04T08:09:17.726Z","avatar_url":"https://github.com/nozwock.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# yanu\nYet Another NSP Updater for [Skyline](https://github.com/skyline-emu/skyline)\n\n**Consider starring 🌟 the project if it helped**\n\n\u003c/div align=\"center\"\u003e\n\n---\n\n## About\n[![download badge](https://img.shields.io/github/downloads/nozwock/yanu/total?style=social)](https://github.com/nozwock/yanu/releases)\n\n**Yanu** is a **Nintendo Switch** ROM updater designed to work with Skyline on [Android w/Termux](https://github.com/nozwock/yanu#android-wtermux), [Linux](https://github.com/nozwock/yanu#linux), and [Windows](https://github.com/nozwock/yanu#windows), as well as other platforms with the help of [Docker images](https://github.com/nozwock/yanu#docker). It serves as a temporary solution until Skyline supports Updates/DLCs natively.\n\n\u003e [!IMPORTANT]\n\u003e Yanu doesn't support DLCs as of yet\n\nPrecompiled binaries are available from the [GitHub releases page](https://github.com/nozwock/yanu/releases).\n\n\u003cdetails\u003e\u003csummary\u003eScreenshot\u003c/summary\u003e\n\u003cimg alt=\"screenshot\" src=\"https://github.com/nozwock/yanu/assets/57829219/4543d6c0-ab91-41e0-abdd-6c3ad5ec2591\"\u003e\n\u003c/details\u003e\n\n### Supported File Types\n- [x] NSP \n- [x] XCI* (through XCI-NSP conversion)\n\n## Installation\n\n### Android w/Termux\n\n\u003e **Check out [Video Tutorial](https://teddit.net/r/EmulationOnAndroid/comments/11ui6v8) by SmokeyMC for Android.**\n\n1. Download \u0026 Install `Termux` from [F-droid](https://f-droid.org/en/packages/com.termux/).\n2. Copy-paste the following in `Termux` and hit enter:\n  ```console\n  bash \u003c(curl -L https://raw.githubusercontent.com/nozwock/yanu/main/scripts/yanu-bootstrap-termux.sh)\n  ```\n\nRelevant resources:\n- MiXplorer [XDA Forum](https://forum.xda-developers.com/t/app-2-2-mixplorer-v6-x-released-fully-featured-file-manager.1523691/)\n- MiXplorer GDrive [download link](https://drive.google.com/drive/folders/1BfeK39boriHy-9q76eXLLqbCwfV17-Gv)\n\n\n### Linux\n\n1. Ensure that your system has all the necessary dependencies installed to build hactool/hacPack/etc. For example:\n   ```console\n   sudo apt -y install gcc-12 g++-12 make git libjpeg-dev binutils-dev libicu-dev\n   ```\n2. Download \u0026 give executable permission to `yanu`:\n   ```console\n   chmod +x yanu-x86_64-unknown-linux-musl\n   ```\n\n\u003e [!NOTE]\n\u003e If for some reason, the backends are not compiling properly for you on Linux, you could always use the docker builds.\n\n### Windows\n\n- Just [download](https://github.com/nozwock/yanu/releases) \u0026 run.\n\n\u003e [!NOTE]\n\u003e 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](https://www.virustotal.com) or [hybrid-analysis.com](https://www.hybrid-analysis.com).\n\n### Docker\nGo [here](https://github.com/nozwock/yanu/pkgs/container/yanu) to pull the container you wish to use.\nOnce you have the container, you can use it like this:\n   ```sh\n      # Expecting 'prod.keys` in pwd\n      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' \n   ```\n\n## Usage (CLI only)\nView CLI help with:\n```sh\nyanu-cli --help\n```\n\nFor updating a ROM:\n```sh\nyanu-cli --keyfile '/path/to/keyfile' update --base '/path/to/base' --update '/path/to/update'\n```\n\nSet a new `Yanu Directory` (Used in `tui`) with:\n```sh\nyanu-cli config --yanu-dir '/new/path/here'\n```\n\nFor unpacking ROMs:\n```sh\nyanu-cli unpack --base '/path/to/base' --update '/path/to/update'\n```\n\nOR, for only unpacking a single ROM:\n```sh\nyanu-cli unpack --base '/path/to/base'\n```\n\nFor packing unpacked ROM data (both base+update were unpacked):\n```sh\nyanu-cli pack --controlnca './base+update.xxxxxx/patchdata/control.nca' --titleid 'xxxxxxxxxxxxxxxx' --romfsdir './base+update.xxxxxx/romfs' --exefsdir './base+update.xxxxxx/exefs'\n```\nIf only base was unpacked, get the control NCA from `basedata`.\n\n\u003e [!TIP]\n\u003e - For Windows, adapt the above examples by replacing `/` with `\\` and using the appropriate path to the executable.\n\u003e - Control NCA is typically around 1MB in size.\n\u003e - Yanu only accepts Control Type NCA. If unsure of the Type, trial and error can help narrow down the options.\n\u003e - Check the logs for guidance on which TitleID to use if using the wrong one.\n\n## Directories Used\n\n| Used for | Windows                                  | Linux                                   |\n| -------- | ---------------------------------------- | --------------------------------------- |\n| Keys     | `%USERPROFILE%\\.switch`                  | `$HOME/.switch`                         |\n| Cache    | `%LOCALAPPDATA%\\com.github.nozwock.yanu` | `$HOME/.cache/com.github.nozwock.yanu`  |\n| Config   | `%APPDATA%\\com.github.nozwock.yanu`      | `$HOME/.config/com.github.nozwock.yanu` |\n\n## Troubleshooting\n\n- Newer games failing to update.\\\n   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](https://github.com/julesontheroad/NSC_BUILDER). This approach has proven to be effective.\n\n- If you encounter errors such as 'Failed to sync package repos' while installing yanu on Termux, try updating your outdated repositories using:\n   ```sh\n   termux-change-repo\n   ```\n\n## Special Thanks\n\n- [hactool](https://github.com/SciresM/hactool), [hacPack](https://github.com/The-4n/hacPack), [hac2l](https://github.com/Atmosphere-NX/hac2l), [hactoolnet](https://github.com/Thealexbarney/LibHac), and [4NXCI](https://github.com/The-4n/4NXCI) are used internally for the heavy lifting.\n- [@Pipetto-crypto](https://github.com/Pipetto-crypto) for the `aarch64-linux` `hac2l` binary.\n- [Willfaust's script](https://gist.github.com/willfaust/fb90dec409b8918290012031f09a78ef) for reference.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnozwock%2Fyanu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnozwock%2Fyanu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnozwock%2Fyanu/lists"}