2018-04-27 22:54:46 +00:00
<!doctype html>
< html >
< head >
< meta charset = "utf-8" >
2018-05-17 19:06:27 +00:00
< link rel = "stylesheet" type = "text/css" href = "style.css" / >
2018-05-17 21:38:07 +00:00
< link href = "favicon.png" rel = "icon" type = "image/x-icon" / >
2019-02-11 12:59:27 +00:00
< title > Switch Payload Loader v1.4< / title >
2018-05-20 05:39:19 +00:00
2018-05-22 03:15:19 +00:00
< script src = "./i18n/en-US.js" > < / script >
< script src = "./i18n/it-IT.js" > < / script >
< script src = "./i18n/pt-BR.js" > < / script >
< script src = "./i18n/de-DE.js" > < / script >
2018-05-24 17:57:20 +00:00
< script src = "./i18n/es-MX.js" > < / script >
2018-07-06 16:13:20 +00:00
< script src = "./i18n/pl-PL.js" > < / script >
2018-07-09 03:07:03 +00:00
< script src = "./i18n/zh-CN.js" > < / script >
< script src = "./i18n/zh-TW.js" > < / script >
2018-07-09 05:39:51 +00:00
< script src = "./i18n/ru-RU.js" > < / script >
2018-05-22 03:15:19 +00:00
< script src = "./i18n.js" > < / script >
2018-05-20 05:39:19 +00:00
<!-- JQuery: needed for some Bootstrap Components -->
< script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js" > < / script >
<!-- Bootstrap 3 framework -->
<!-- Latest compiled and minified CSS -->
< link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity = "sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin = "anonymous" >
<!-- Optional theme -->
< link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity = "sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin = "anonymous" >
<!-- Latest compiled and minified JavaScript -->
< script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity = "sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin = "anonymous" > < / script >
2018-04-27 22:54:46 +00:00
< / head >
2018-05-21 17:53:56 +00:00
< body class = "container-fluid" id = "pageBody" >
2018-05-20 05:39:19 +00:00
< div class = "row" id = "title" >
2018-05-22 03:15:19 +00:00
< h1 id = "pageTitle" > Nintendo Switch Payload Loader< / h1 >
< h4 id = "pageSubtitle" > Fusee Launcher ported to JavaScript using WebUSB.< / h4 >
2018-05-17 19:11:43 +00:00
< / div >
2018-05-20 05:39:19 +00:00
< div class = "row margin-top-md" >
< div class = "col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3" >
< div class = "btn-group" role = "group" aria-label = "..." >
2018-05-22 03:15:19 +00:00
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('en-US')" > English< / a >
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('it-IT')" > Italiano< / a >
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('pt-BR')" > Português< / a >
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('de-DE')" > Deutsch< / a >
2018-05-24 17:57:20 +00:00
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('es-MX')" > Español< / a >
2018-07-06 16:13:20 +00:00
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('pl-PL')" > Polski< / a >
2018-07-09 03:08:09 +00:00
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('zh-CN')" > 简体中文< / a >
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('zh-TW')" > 繁体中文< / a >
2018-07-09 05:39:51 +00:00
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('ru-RU')" > Русский< / a >
2018-05-20 05:39:19 +00:00
< / div >
< / div >
< / div >
< div class = "row margin-top-md" id = "infodiv" >
< div class = "col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3" >
< div class = "alert alert-danger" role = "alert" >
2018-05-22 03:15:19 +00:00
< p id = "dangerDanger" > This is moderately tested. Although no issues have been discovered, I'm not responsible if anything goes wrong!< / p >
2018-05-20 05:39:19 +00:00
< / div >
< div class = "alert alert-warning alert-dismissible" role = "alert" >
< button type = "button" class = "close" data-dismiss = "alert" aria-label = "Close" > < span aria-hidden = "true" > × < / span > < / button >
2018-05-22 03:15:19 +00:00
< p id = "warningWindows" > This does NOT work on Windows due to a limitation in the Chrome implementation of WebUSB (and probably other reasons!)< / p >
2018-05-20 05:39:19 +00:00
< / div >
< div class = "alert alert-warning alert-dismissible" role = "alert" >
< button type = "button" class = "close" data-dismiss = "alert" aria-label = "Close" > < span aria-hidden = "true" > × < / span > < / button >
2018-05-22 03:15:19 +00:00
< p id = "warningBrowser" > This does NOT currently work on any browser but Chrome, because they don't implement WebUSB.< / p >
2018-05-20 05:39:19 +00:00
< / div >
< div class = "alert alert-warning alert-dismissible" role = "alert" >
< button type = "button" class = "close" data-dismiss = "alert" aria-label = "Close" > < span aria-hidden = "true" > × < / span > < / button >
2018-05-22 03:15:19 +00:00
< p id = "warningLinux" > On Linux, you might get an 'Access Denied' or 'No Compatible Device' error on the Connect dialog! If you do, you can try creating a file at < code > /etc/udev/rules.d/50-switch.rules< / code > With the following contents:< br > < code > SUBSYSTEM==\"usb\", ATTR{idVendor}==\"0955\", MODE=\"0664\", GROUP=\"plugdev\"< / code > < / p >
2018-05-20 05:39:19 +00:00
< / div >
< div class = "alert alert-warning alert-dismissible" role = "alert" >
< button type = "button" class = "close" data-dismiss = "alert" aria-label = "Close" > < span aria-hidden = "true" > × < / span > < / button >
2018-05-22 03:15:19 +00:00
< p id = "warningTested" > This has been tested and appears to work on Linux, OSX, Android (unrooted) and Chromebooks. Your mileage may vary.< / p >
2018-05-20 05:39:19 +00:00
< / div >
< div class = "alert alert-info" role = "alert" >
2018-05-22 03:15:19 +00:00
< p > < strong id = "labelInstructions" > Instructions:< / strong > < / p >
2018-05-20 05:39:19 +00:00
< ul >
2018-05-22 03:15:19 +00:00
< li id = "liRCM" > Put the Switch in RCM, and connect it to your device.< / li >
< li id = "liSelect" > Select either the example payload, or upload one.< / li >
< li id = "liPress" > Press 'Deliver Payload!'< / li >
< li id = "liAPX" > On the consent screen that appears, select 'APX' and hit 'Connect'.< / li >
< li id = "liLaunch" > If all goes well, the payload will launch!< / li >
2018-05-20 05:39:19 +00:00
< / ul >
< / div >
2018-07-22 19:38:26 +00:00
< div class = "alert alert-info" role = "alert" >
2019-02-11 12:59:27 +00:00
< p id = "labelContribute" > If you would like to help adding another translation or updating/adding a payload, check < a href = "https://github.com/AtlasNX/web-cfw-loader/blob/master/CONTRIBUTING.md" > this< / a > .< / p >
2018-07-22 19:38:26 +00:00
< / div >
2018-05-20 05:39:19 +00:00
< / div >
2018-05-18 04:46:02 +00:00
< / div >
2018-05-24 17:57:20 +00:00
2018-05-20 05:39:19 +00:00
< div class = "row" >
2018-05-21 18:31:13 +00:00
< div class = "col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3" >
2018-05-22 03:15:19 +00:00
< h1 id = "h1SetupDelivery" > Setup Payload Delivery< / h1 >
2018-05-20 05:39:19 +00:00
< form id = "mainForm" >
< div class = "row" >
< div class = "col-xs-6" >
2018-05-22 03:15:19 +00:00
< h4 id = "h4SelectPayload" > Select Payload:< / h4 >
2018-05-20 05:39:19 +00:00
< / div >
< div class = "col-xs-6" >
2018-05-22 03:15:19 +00:00
< select class = "pull-right" id = "payloadSelect" onchange = "onSelectChange()" >
2019-02-11 12:59:27 +00:00
< option value = "atmosphere" id = "optionAtmosphere" > Atmosphère 0.8.3< / option >
< option value = "sx os" id = "optionSXOS" > SX OS (All Versions)< / option >
2019-01-05 19:31:18 +00:00
< option value = "ReiNX" id = "optionReiNX" > ReiNX 2.0< / option >
2019-02-11 12:59:27 +00:00
< option value = "CTCaer_Hekate" id = "optionCTCaerHekate" > CTCaer's Hekate Mod v4.6< / option >
< option value = "fusee" id = "optionFusee" > (Re)Switched test payload (fusee)< / option >
2018-05-22 03:15:19 +00:00
< option value = "uploaded" id = "optionUpload" > Upload payload< / option >
2018-05-20 05:39:19 +00:00
< / select >
< / div >
< / div >
2018-04-27 22:54:46 +00:00
2018-05-20 05:39:19 +00:00
< div class = "row" id = "uploadContainer" style = "display: none" >
2018-05-21 17:27:30 +00:00
< div class = "col-xs-12" >
2018-05-20 05:39:19 +00:00
< input style = "float: right" type = "file" id = "payloadUpload" accept = ".bin" / >
< / div >
< / div >
< div class = "row divider-line" > < / div >
< div class = "row margin-top-md" >
< div class = "col-xs-10" >
2018-05-22 03:15:19 +00:00
< h4 id = "h4GetByteArray" > Get payload byte array (don't sploit)< / h4 >
2018-05-20 05:39:19 +00:00
< / div >
< div class = "col-xs-2" >
< input class = "pull-right" type = "checkbox" name = "shouldDebug" id = "shouldDebug" >
< / div >
< / div >
2018-05-24 17:57:20 +00:00
< div class = "row divider-line" > < / div >
2018-05-20 05:39:19 +00:00
< / form >
2018-05-24 17:57:20 +00:00
2018-05-20 05:39:19 +00:00
< div class = "row margin-top-md" >
2018-05-21 18:31:13 +00:00
< div class = "col-xs-6 col-xs-offset-6 col-md-4 col-md-offset-8" >
< button class = "btn btn-primary btn-lg btn-block" id = "goButton" > Deliver Payload!< / button >
2018-05-20 05:39:19 +00:00
< / div >
< / div >
2018-05-24 17:57:20 +00:00
2018-05-20 05:39:19 +00:00
< / div >
2018-04-27 22:54:46 +00:00
< / div >
2018-05-20 05:39:19 +00:00
< div class = "row" >
2018-05-21 18:31:13 +00:00
< div class = "col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3" >
2018-05-22 03:15:19 +00:00
< h3 id = "h3Log" > Log:< / h3 >
2018-05-20 05:39:19 +00:00
< div id = "output" > < / div >
2018-05-24 17:57:20 +00:00
< button class = "btn btn-primary pull-right margin-top-md" id = "clearlogsbutton" onclick = "clearLog();" > Clear Logs< / button > < br > < br >
2018-05-20 05:39:19 +00:00
< / div >
2018-05-17 22:54:16 +00:00
< / div >
2018-04-27 22:54:46 +00:00
2019-02-11 12:59:27 +00:00
< script src = "./payloads/hekate.js" > < / script >
< script src = "./payloads/fusee.js" > < / script >
< script src = "./payloads/sxos.js" > < / script >
< script src = "./payloads/reinx.js" > < / script >
< script src = "./payloads/fusee-primary.js" > < / script >
2018-04-27 22:54:46 +00:00
< script src = "./main.js" > < / script >
< / body >
2018-05-20 05:39:19 +00:00
< div class = "row margin-top-md" id = "page-footer" >
< div class = "col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3" >
< div id = "disclaimer" >
2019-02-11 12:59:27 +00:00
< p id = "disclaimer1" > Source can be found on < a href = "https://github.com/AtlasNX/web-cfw-loader" > GitHub< / a > (or by hitting view source, there is no backend!).< / p >
2018-05-22 03:15:19 +00:00
< p id = "disclaimer2" > Ported from < a href = "https://github.com/reswitched/fusee-launcher" > fusee-launcher< / a > .< / p >
2019-02-11 12:59:27 +00:00
< p id = "disclaimer3" > Thanks to < a href = "https://github.com/ktemkin" > ktemkin< / a > and < a href = "https://github.com/reswitched" > ReSwitched< / a > , as well as < br > < a href = "https://github.com/atlas44" > Atlas44< / a > and < a href = "https://atlas44.s3-us-west-2.amazonaws.com/web-fusee-launcher/index.html" > his website< / a > as a beginning point for this one.< / p >
< p id = "disclaimer4" > Lastly, thanks to < a href = "https://github.com/ElijahZAwesome" > ElijahZAwesome< / a > for creating this project, < a href = "https://github.com/falquinho" > falquinho< / a > for the new bootstrap layout and portuguese translation, < a href = "https://github.com/Filo97" > Filo97< / a > for the italian translation, < a href = "https://github.com/tumGER" > tumGER< / a > for his german and russian translations, < a href = "https://github.com/lordfriky" > Lord_Friky< / a > for the spanish translation, < a href = "https://github.com/lorek123" > Lorek< / a > for the polish translation and < a href = "https://github.com/Rakau" > Rakau< / a > for the chinese translations.< / p >
2018-05-20 05:39:19 +00:00
< / div >
< / div >
< / div >
< / html >