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" / >
2020-10-06 21:18:10 +00:00
< title > Switch Payload Loader v1.5.2< / 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 >
2019-02-14 20:49:27 +00:00
< script src = "./i18n/fr-FR.js" > < / script >
2019-09-29 10:59:44 +00:00
< script src = "./i18n/du-NL.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 >
2019-02-14 20:49:27 +00:00
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('fr-FR')" > French< / a >
2019-09-29 10:59:44 +00:00
< a class = "btn btn-info" href = "#" onclick = "setPageLanguage('du-NL')" > Nederlands< / 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" >
2019-09-16 15:42:42 +00:00
< p id = "dangerDanger" > This is moderately tested. Although no issues have been discovered, we're not responsible if anything goes wrong!< / p >
2019-08-31 11:29:47 +00:00
< / div >
2020-05-12 22:44:59 +00:00
2018-05-20 05:39:19 +00:00
< 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 >
2019-09-16 15:42:42 +00:00
< p id = "warningWindows" > This may or may not work on Windows due to a limitation in the Chrome implementation of WebUSB (and probably other reasons!). In our testing, it will sometimes work so give it a shot, but be wary.< / 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 >
2019-09-16 15:42:42 +00:00
< p id = "warningBrowser" > This does ONLY work on chromium-based browsers (Brave, Chrome, etc.), as they are the only ones with a working WEBCFW implementation.< / 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 >
2020-01-20 08:40:42 +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 > and afterwards add yourself to the plugdev group by typing < code > sudo usermod -a -G plugdev YOUR_NAME< / 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 >
2019-09-01 21:27:26 +00:00
< div class = "alert alert-info" role = "alert" >
2021-08-31 10:40:14 +00:00
< p > Switch Hacking Guide: < strong > < a href = "https://switch.homebrew.guide/" > CLICK HERE< / a > < / strong > < / p >
2019-09-01 21:27:26 +00:00
< / div >
2020-05-12 22:44:59 +00:00
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()" >
2021-04-19 20:44:19 +00:00
< option value = "Hekate" id = "optionHekate" > Hekate 5.5.5< / option >
2021-04-30 18:13:48 +00:00
< option value = "Atmosphere" id = "optionFuseePrimary" > Atmosphère 0.19.2< / 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 >
2020-05-30 07:51:10 +00:00
< script src = "./payloads/fusee_ams.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" >
2020-05-12 22:44:59 +00:00
< p id = "disclaimer1" > Source can be found on < a href = "https://github.com/lordfriky/web-cfw-loader" target = "_blank" > GitHub< / a > (or by hitting view source, there is no backend!).< / p >
< p id = "disclaimer2" > © < a href = "https://twitter.com/lord_friky" target = "_blank" > Lord Friky< / a > 2020< / p >
2019-02-14 20:49:27 +00:00
< / div >
2018-05-20 05:39:19 +00:00
< / div >
< / div >
< / html >