{"id":13761895,"url":"https://github.com/developersu/ns-usbloader","last_synced_at":"2025-05-14T08:07:20.219Z","repository":{"id":39495302,"uuid":"169933891","full_name":"developersu/ns-usbloader","owner":"developersu","description":"Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files.","archived":false,"fork":false,"pushed_at":"2025-01-26T20:05:49.000Z","size":1854,"stargazers_count":1965,"open_issues_count":50,"forks_count":131,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-04-11T02:51:58.538Z","etag":null,"topics":["gui","ns","nsp","tinfoil","usb"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/developersu.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":"2019-02-10T01:57:09.000Z","updated_at":"2025-04-09T18:04:02.000Z","dependencies_parsed_at":"2023-01-30T23:16:29.746Z","dependency_job_id":"ad9a7e39-0a91-4c71-b236-1b55a7ca7498","html_url":"https://github.com/developersu/ns-usbloader","commit_stats":{"total_commits":290,"total_committers":13,"mean_commits":"22.307692307692307","dds":"0.13793103448275867","last_synced_commit":"1e4593afb6e33206f29eee7ed3c24379d301f692"},"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developersu%2Fns-usbloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developersu%2Fns-usbloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developersu%2Fns-usbloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developersu%2Fns-usbloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/developersu","download_url":"https://codeload.github.com/developersu/ns-usbloader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101617,"owners_count":22014909,"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":["gui","ns","nsp","tinfoil","usb"],"created_at":"2024-08-03T14:00:31.328Z","updated_at":"2025-05-14T08:07:15.199Z","avatar_url":"https://github.com/developersu.png","language":"Java","funding_links":[],"categories":["Java","System Software","🔧 Packages"],"sub_categories":["Bootloaders","⚡ Misc"],"readme":"\u003ch1 align=\"center\"\u003e\u003cimg src=\"screenshots/ApplicationLogo.svg\" alt=\"NS-USBloader\" width=\"450px\"/\u003e\u003c/h1\u003e\n\n![License](https://img.shields.io/badge/License-GPLv3-blue.svg) ![Releases](https://img.shields.io/github/downloads/developersu/ns-usbloader/total.svg) ![LatestVer](https://img.shields.io/github/release/developersu/ns-usbloader.svg) [![status-badge](https://ci.redrise.ru/api/badges/12/status.svg)](https://ci.redrise.ru/repos/12)\n\nNS-USBloader is:\n* A PC-side installer for **[Huntereb/Awoo-Installer](https://github.com/Huntereb/Awoo-Installer)** / other compatible installers (USB and Network supported) and **[XorTroll/Goldleaf](https://github.com/XorTroll/Goldleaf)** (USB) NSP installer. \nAlternative to default **usb_install_pc.py**, **remote_install_pc.py**, **GoldTree**/**Quark**. \n* RCM payload tool that works on Windows, macOS (Intel and Apple Silicon) and Linux (x86, amd64 and Raspberry Pi ARM).\n* It's a tool for creating split files! \n* Also you can use it for merging split-files into one :)\n\n\n[Click here for Android version ;)](https://github.com/developersu/ns-usbloader-mobile)\n\nWith GUI and cookies. Works on Windows, macOS and Linux.\n### Let's stay in touch:\n#### [→ Independent source code storage](https://git.redrise.ru/desu/ns-usbloader)\n#### [→ Mirror, issues tracker, place to send PRs](https://github.com/developersu/ns-usbloader)\n#### [→ Nightly builds](https://redrise.ru/builds/ns-usbloader/)\n\n[Support/Donate](#support-this-app)\n\nSometimes I add new posts about this project [on my blog page](https://developersu.blogspot.com/search/label/NS-USBloader).\n\n\u003cimg src=\"screenshots/1.png\" alt=\"screenshot\" width=\"250\"/\u003e  \u003cimg src=\"screenshots/2.png\" alt=\"screenshot\" width=\"250\"/\u003e  \n\u003cimg src=\"screenshots/3.png\" alt=\"screenshot\" width=\"250\"/\u003e  \u003cimg src=\"screenshots/4.png\" alt=\"screenshot\" width=\"250\"/\u003e  \n\u003cimg src=\"screenshots/5.png\" alt=\"screenshot\" width=\"250\"/\u003e\n\n#### License\n\n[GNU General Public License version 3](https://github.com/developersu/ns-usbloader/blob/master/LICENSE), or (at your option) any later version.\n\n#### Used libraries \u0026 resources\n* [OpenJFX](https://wiki.openjdk.java.net/display/OpenJFX/Main)\n* [usb4java](https://mvnrepository.com/artifact/org.usb4java/usb4java)\n* Few icons taken from: [materialdesignicons.com](http://materialdesignicons.com/)\n* Information, ideas and data from ['fusee-launcher'](https://github.com/reswitched/fusee-launcher) application\n* [Apache Commons CLI](https://commons.apache.org/proper/commons-cli/)\n\n### List of awesome code contributors, translators and other great people!\n\n* [Pablo Curiel (DarkMatterCore)](https://github.com/DarkMatterCore)\n* [wolfposd](https://github.com/wolfposd)\n* [agungrbudiman](https://github.com/agungrbudiman)\n* Perfect algorithms and great examples taken from mrdude project [mrdude2478/IPS_Patch_Creator](https://github.com/mrdude2478/IPS_Patch_Creator/)\n\n* French by [Stephane Meden (JackFromNice)](https://github.com/JackFromNice) \n* Italian by [unbranched](https://github.com/unbranched)\n* Korean by [DDinghoya](https://github.com/DDinghoya)\n* Portuguese by [almircanella](https://github.com/almircanella)\n* Spanish by [/u/cokimaya007](https://www.reddit.com/u/cokimaya007), [Kuziel Alejandro](https://github.com/Uzi-Oni)\n* Chinese (Simplified) by [Huang YunKun (htynkn)](https://github.com/htynkn), [FFT9 (XXgame Group)](http://xxgame.net/)\n* Chinese (Traditional) by [qazrfv1234](https://github.com/qazrfv1234), [FFT9 (XXgame Group)](http://xxgame.net/)\n* German by [Swarsele](https://github.com/Swarsele)\n* Vietnamese by [Hai Phan Nguyen (pnghai)](https://github.com/pnghai)\n* Czech by [Spenaat](https://github.com/spenaat)\n* Arabic by [eslamabdel](https://github.com/eslamabdel)\n* Romanian by [Călin Ilie](https://github.com/calini)\n* Swedish by [Daniel Nylander](https://github.com/yeager)\n* Japanese by [kuragehime](https://github.com/kuragehimekurara1)\n* Ryukyuan languages by [kuragehime](https://github.com/kuragehimekurara1)\n* Turkish language by [Erimsaholut](https://github.com/Erimsaholut)\n* Serbian (Latin) translation [BlytheScythe](https://github.com/BlytheScythe)\n\n* Angelo Elias Dalzotto makes packages in AUR\n* Phoenix[Msc] provides his shiny Mac M1 for debug\n\n### System requirements\n\n- JDK 11 for macOS and Linux\n- libusb, if you have a Mac with Apple Silicon (install via `brew install libusb`)\n\n### Supported Goldleaf versions\n| Goldleaf version | NS-USBloader version |\n|------------------|----------------------|\n| v0.5             | v0.4 - v0.5.2, v0.8+ |\n| v0.6             | none                 |\n| v0.6.1           | v0.6                 |\n| v0.7 - 0.7.3     | v0.7+                |\n| v0.8 - 0.9       | v1.0+                |\n| v0.10            | v6.0+                |\n\nwhere '+' means 'any next NS-USBloader version'.\n\n### Awoo Installer and compatible applications support\n\nAwoo Installer uses the same command-set (or 'protocol') to [Adubbz/Tinfoil](https://github.com/Adubbz/Tinfoil/).\n\nA lot of other forks/apps uses the same command-set. To stop speculating about the name it's now called 'Awoo'. It WAS called 'TinFoil' before. Not any more.\n\n### Usage\n##### Linux:\n\n1. Install JRE/JDK 8u60 or higher (openJDK is good. Oracle's one is also good). JavaFX not needed (it's embedded).\n\n2. `root # java -jar /path/to/NS-USBloader.jar`\n\n3. Optional: add user to 'udev' rules to use NS not-from-root-account\n```\nroot # vim /etc/udev/rules.d/99-NS.rules\nSUBSYSTEM==\"usb\", ATTRS{idVendor}==\"057e\", ATTRS{idProduct}==\"3000\", MODE=\"0666\"\nroot # udevadm control --reload-rules \u0026\u0026 udevadm trigger\n```\n4. For RCM part\n```\nroot # vim /etc/udev/rules.d/99-NS-RCM.rules\nSUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0955\", ATTRS{idProduct}==\"7321\", MODE=\"0666\"\nroot # udevadm control --reload-rules \u0026\u0026 udevadm trigger\n```\n\n5. For HiDPI use scaling like `java -Dglass.gtk.uiScale=150% -jar application.jar`\n\n##### Raspberry Pi\n\n1. Install JDK: `sudo apt install default-jdk`\n\n2. For UI install JavaFX: `sudo apt install openjfx`\n\n3. See steps 3 and 4 from 'Linux' section to  update 'udev'.\n\n##### macOS\n\nDouble-click on downloaded .jar file. Follow instructions. Or see 'Linux' section.\n\nSet 'Security \u0026 Privacy' settings if needed.\n\n*Please note: JDK 19 is recommended for using on macOS. There are issues already reported from users on Mac with JDK 14.*\n\n##### macOS on Apple Silicon (ARM)\n\nDownload application with `-m1.jar` postfix.\n\nManually install libusb with Homebrew by running `brew install libusb` in your Terminal.\n\n##### Windows: \n\n* Once application opens click on 'Gear' icon. \n* Click 'Download and install drivers'\n* Install drivers\n\n#### And how to use it?\n\nThe first thing you should do it install Awoo ([Huntereb](https://github.com/Huntereb/Awoo-Installer)) or Goldleaf ([XorTroll](https://github.com/XorTroll/Goldleaf)) on your NS. \n\nTake a look on app, find where is the option to install from USB and/or Network. Maybe (very old) [this article (about TinFoil)](https://developersu.blogspot.com/2019/02/ns-usbloader-en.html) will be helpful.\n\n#### In details\n\nThere are three tabs. First one is main.\n\n##### 'Gamepad' tab.\n\nAt the top of you selecting from drop-down application and protocol that you're going to use. For Goldleaf only USB is available. Lamp icon stands for switching themes (light or dark).\n\nThen you may drag-n-drop files (split-files aka folders) to application or use 'Select NSP files' button. Multiple selection for files available. Click it again and select files from another folder it you want, it will be added into the table.\n\nTable.\n\nThere you can select checkbox for files that will be sent to application (AW/GL). ~~Since Goldleaf v0.5 allow you only one file transmission per time, only one file is available for selection.~~ \n\nAlso, you can use space to select/un-select files and 'delete' button for deleting. By right-mouse-click you can see context menu where you can delete one OR all items from the table.\n\nFor Goldleaf v0.6.1 and NS-USBloader v0.6 (and higher) you will have to use 'Explore content' -\u003e 'Remote PC (via USB)' You will see two drives HOME:/ and VIRT:/. First drive is pointing to your home directory. Second one is reflection of what you've added to table (first application tab). Also VIRT:/ drive have limited functionality in comparison to HOME:/. E.g. you can't write files to this drive since it's not a drive. But don't worry, it won't make any impact on Goldleaf or your NS if you try.\n\nAlso, for Goldleaf write files (from NS to PC): You have to 'Stop execution' properly before accessing files transferred from GL. Usually you have to wait 5sec or less. It will guarantee that your files properly written to PC.\n\n##### 'RCM' tab\n\nOn this tab you can select payloader like Hekate or LockPick_RCM and send it to NS. Drag-n-drop supported. Also some in-app validations for payload takes place ;)\n\n##### 'Folder with arrows and zeroes' tab\n\nOn this tab you can split and merge files. Select 'Split' or 'Merge' and split (or merge). BTW Drag-n-drop supported.\n\n##### 'Gears' tab.\n\nHere you can configure settings for network file transmission. Usually you shouldn't change anything. But it you're cool hacker, go ahead! The most interesting option here is 'Don't serve requests'. Architecture of the Awoo's NET part is working interesting way. When you select in Awoo network NSP transfer, application will wait at port 2000 for the information about where should it take files from. Like '192.168.1.5:6060/my file.nsp'. Usually NS-USBloader serves requests by implementing simplified HTTP server and bringing it up and so on. But if this option selected, you can define path to remote location of the files. For example if you set in settings '192.168.4.2:80/ROMS/NS/' and add in table file 'my file.nsp' then NS-USBloader will simply tell Awoo \"Hey, go take files from '192.168.4.2:80/ROMS/NS/my%20file.nsp' \". Of course you have to bring '192.168.4.2' host up and make file accessible from such address (just go install nginx). As I said, this feature is interesting, but I guess won't be popular.\n\nAlso here you can:\n* Set 'Auto-check for updates' for checking for updates when application starts, or click button to verify if new version released immediately.\n* Set 'Show only *.nsp in Goldleaf' to filter all files displayed at HOME:/ drive. So only NSP files will appear.\n\n##### 'Dialog with three dots' tab.\n\nThat's where all logs dropped. Verbose information about transmissions comes here.\n\n\n##### CLI (command line interface)\n\nTo get help run ``$ java -jar ns-usbloader-4.0.jar --help``\n\n```\n -c,--clean                      Remove/reset settings and exit\n -g,--Goldleaf \u003c...\u003e             Install via Goldleaf mode. Check '-g help' for information.\n -h,--help                       Show this help\n -m,--merge \u003c...\u003e                Merge files. Check '-m help' for information.\n -n,--tfn \u003c...\u003e                  Install via Awoo Network mode. Check '-n help' for information.\n -r,--rcm \u003c[PATH/]payload.bin\u003e   Send payload\n -s,--split \u003c...\u003e                Split files. Check '-s help' for information.\n -t,--tinfoil \u003cFILE...\u003e          Install via Awoo USB mode.\n -v,--version                    Show application version\n```\n\nFor more complex commands help use help argument after the fists key. For example: \n\n```\n$ java -jar ns-usbloader-4.0.jar -n help\n\nUsage:\n        ns-usbloader -n nsip=\u003carg1\u003e [hostip=\u003carg2\u003e] FILE1 ...\n        ns-usbloader --tfn nsip=\u003carg1\u003e [hostip=\u003carg2\u003e] FILE1 ...\n\nOptions:\n        nsip=\u003cip\u003e               Define NS IP address (mandatory)\n        hostip=\u003cip[:port]\u003e      Define this host IP address. Will be obtained automatically if not set.\n```\n\nUsage examples:\n\n```\nSend RCM payload:\n$ java -jar ns-usbloader-4.0.jar -r C:\\Users\\Superhero\\hekate.bin\nSend files to Awoo Installer via Net-install: \n$ java -jar ns-usbloader-4.0.jar -n nsip=192.168.0.1 ./file.nsz ./file.nsp ~/*.xci\nSend files to Goldleaf v0.8:\n$ java -jar ns-usbloader-4.0.jar -g ver=v0.8 ./*\nSplit files:\n$ java -jar ns-usbloader-4.0.jar -s /tmp/ ~/*.nsp\nMerge files:\n$ java -jar ns-usbloader-4.0.jar -m /tmp/ ~/*.nsp\n```\n\n### Other notes\n\n'Status' = 'Uploaded' that appears in the table does not mean that file has been installed. It means that it has been sent to NS without any issues! That's what this app about. \nHandling successful/failed installation is a purpose of the other side application: Awoo/Awoo-like or Goldleaf. And they don't provide any feedback interfaces so I can't detect success/failure.\n\n#### What is this '-legacy' jar?!\n\n**JAR with NO postfixes** recommended for Windows users, Linux users and macOS users who're using Mojave or later versions.\n\n**JAR with '-legacy' postfix** is for macOS users who're still using OS X releases before (!) Mojave.\n(It also works for Linux and for Windows, but sometimes it doesn't work for Windows and I don't know why).\n\nWe have this situation because of weird behaviour inside usb4java library used in this application for USB interactions. In '-legacy' it's v1.2.0 and in 'normal' it's v1.3.0\n\n### Translators!\n\nIf you want to see this app translated to your language, go grab [this file](https://github.com/developersu/ns-usbloader/blob/master/src/main/resources/locale.properties) and translate it.\n\nIf you're familiar with pull request, go ahead and create it! No worries it you are not. Just upload somewhere (like pastebin/google drive/whatever else). [Create new issue](https://github.com/developersu/ns-usbloader/issues) and post a link. I'll grab it and add.\n\nTo convert files of any locale to readable format (and vise-versa) you can use this site [https://itpro.cz/juniconv/](https://itpro.cz/juniconv/)\n\n## Support this app\n\nIf you like this app, just give a star (@ GitHub).\n\nThis is non-commercial project.\n\nThanks!\n\nAppreciate assistance and support of both [Vitaliy](https://github.com/SebastianUA) and [Konstantin](https://github.com/konstantin-kelemen). Without you all this magic would not have happened.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopersu%2Fns-usbloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevelopersu%2Fns-usbloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopersu%2Fns-usbloader/lists"}