mirror of
https://github.com/nh-server/switch-guide.git
synced 2026-08-15 20:19:49 -07:00
make autoRCM boot0/boot1 warning less passive aggressive, 'improve' serial number checker and move modchip guide to getting started page as opposed to on the modchip introduction page.
This commit is contained in:
@@ -19,29 +19,7 @@
|
||||
<option>XAK7</option>
|
||||
<option>XAK9</option>
|
||||
</optgroup>
|
||||
<optgroup label="Mariko (not hackable via software)">
|
||||
<option>XKW1</option>
|
||||
<option>XKW4</option>
|
||||
<option>XKW7</option>
|
||||
<option>XKW9</option>
|
||||
<option>XKJ1</option>
|
||||
<option>XKJ4</option>
|
||||
<option>XKJ7</option>
|
||||
<option>XKJ9</option>
|
||||
<option>XTW1</option>
|
||||
<option>XTW4</option>
|
||||
<option>XTW7</option>
|
||||
<option>XTW9</option>
|
||||
<option>XTJ1</option>
|
||||
<option>XTJ4</option>
|
||||
<option>XTJ7</option>
|
||||
<option>XTJ9</option>
|
||||
<option>XTE1</option>
|
||||
<option>XTE4</option>
|
||||
<option>XTE7</option>
|
||||
<option>XTE9</option>
|
||||
<option>XJW0</option>
|
||||
<option>XWW0</option>
|
||||
<optgroup label="Mariko (not hackable via software)" id="mariko-prefixes">
|
||||
</optgroup>
|
||||
<optgroup label="Switch 2 (not hackable)">
|
||||
<option>HAE1</option>
|
||||
|
||||
@@ -8,7 +8,7 @@ AutoRCM causes the console to believe it is bricked, and will automatically laun
|
||||
|
||||
**If you don't have a BOOT0/1 backup yet...**
|
||||
|
||||
You really want to kill your console, huh? If you haven't made a BOOT0/1 backup yet, it is recommended to make one **right now**.
|
||||
If you haven't made a BOOT0/1 backup yet, it is recommended to make one **right now**. Please follow the steps below to do so:
|
||||
|
||||
1. Boot into hekate.
|
||||
1. Go to `Tools`, and select `Backup eMMC`.
|
||||
|
||||
+55
-11
@@ -1,3 +1,27 @@
|
||||
const MARIKO_FAMILIES = [
|
||||
{ base: 'XKW', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XKJ', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XKE', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XTW', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XTJ', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XTE', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XJW', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XJJ', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XJE', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XWW', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XWJ', type: 'range', from: 0, to: 9 },
|
||||
{ base: 'XWE', type: 'range', from: 0, to: 9 },
|
||||
];
|
||||
|
||||
function buildMarikoOptions(group) {
|
||||
for (const family of MARIKO_FAMILIES) {
|
||||
const opt = document.createElement('option');
|
||||
opt.value = family.base;
|
||||
opt.textContent = `${family.base} (${family.from}–${family.to})`;
|
||||
group.appendChild(opt);
|
||||
}
|
||||
}
|
||||
|
||||
function initSerialChecker() {
|
||||
const prefix = document.getElementById("serial-prefix");
|
||||
const digits = document.getElementById("serial-digits");
|
||||
@@ -7,7 +31,14 @@ function initSerialChecker() {
|
||||
|
||||
if (!prefix || !digits) return;
|
||||
|
||||
const marikoGroup = document.getElementById("mariko-prefixes");
|
||||
if (marikoGroup) buildMarikoOptions(marikoGroup);
|
||||
|
||||
function checkSerial(s) {
|
||||
if (s.length >= 3) {
|
||||
const isMarikoFamily = MARIKO_FAMILIES.some(f => s.startsWith(f.base));
|
||||
if (isMarikoFamily) return 'mariko';
|
||||
}
|
||||
if (s.match(/^X[KJWT][JWCE]/)) return 'mariko';
|
||||
if (s.match(/^XA[JW][9]/)) return 'refurb';
|
||||
if (s.match(/^XAK[1479]/)) return 'krmaybe';
|
||||
@@ -62,14 +93,14 @@ function initSerialChecker() {
|
||||
}
|
||||
|
||||
const messages = {
|
||||
mariko: { type: 'danger', text: 'This appears to be a <strong>Mariko (V2) Switch or Switch Lite</strong>. These are patched and not hackable via software, only via hardware modchip. Find trusted hardware modders <a href="https://nintendohomebrew.com/hardmodders">here</a>.' },
|
||||
switch2: { type: 'danger', text: 'This appears to be a <strong>Switch 2</strong>. These are currently not hackable.' },
|
||||
refurb: { type: 'warning', text: 'This prefix belongs to officially <strong>refurbished Switch</strong> consoles, it <strong>might be patched</strong>. The only way to know for sure is to manually push a payload. Continue to <a href="/user_guide/rcm/sending_payload.html">this page</a>.' },
|
||||
krmaybe: { type: 'warning', text: 'This serial <strong>might be patched</strong>. The only way to know for sure is to manually push a payload. Continue to <a href="/user_guide/rcm/sending_payload.html">this page</a>.' },
|
||||
maybe: { type: 'warning', text: 'This serial <strong>might be patched</strong>. The only way to know for sure is to manually push a payload. Continue to <a href="/user_guide/rcm/sending_payload.html">this page</a>.' },
|
||||
patched: { type: 'danger', text: 'This serial is <strong>patched</strong>. It is not hackable via software. Find trusted hardware modders <a href="https://nintendohomebrew.com/hardmodders">here</a>.' },
|
||||
unpatched: { type: 'tip', text: 'This serial is <strong>not patched</strong>! Click the following link to continue with the <a href="rcm/index">RCM path</a> of the guide.' },
|
||||
invalid: { type: 'danger', text: 'This serial is <strong>invalid</strong>. Double-check you typed it correctly. At minimum, provide 6 digits after the prefix.' },
|
||||
mariko: { type: 'danger', text: 'This appears to be a <strong>Mariko (V2) Switch or Switch Lite</strong>. These are patched and not hackable via software, only via hardware modchip. Find trusted hardware modders <a href="https://nintendohomebrew.com/hardmodders">here</a>.' },
|
||||
switch2: { type: 'danger', text: 'This appears to be a <strong>Switch 2</strong>. These are currently not hackable.' },
|
||||
refurb: { type: 'warning', text: 'This prefix belongs to officially <strong>refurbished Switch</strong> consoles, it <strong>might be patched</strong>. The only way to know for sure is to manually push a payload. Continue to <a href="/user_guide/rcm/sending_payload.html">this page</a>.' },
|
||||
krmaybe: { type: 'warning', text: 'This serial <strong>might be patched</strong>. The only way to know for sure is to manually push a payload. Continue to <a href="/user_guide/rcm/sending_payload.html">this page</a>.' },
|
||||
maybe: { type: 'warning', text: 'This serial <strong>might be patched</strong>. The only way to know for sure is to manually push a payload. Continue to <a href="/user_guide/rcm/sending_payload.html">this page</a>.' },
|
||||
patched: { type: 'danger', text: 'This serial is <strong>patched</strong>. It is not hackable via software. Find trusted hardware modders <a href="https://nintendohomebrew.com/hardmodders">here</a>.' },
|
||||
unpatched: { type: 'tip', text: 'This serial is <strong>not patched</strong>! Click the following link to continue with the <a href="rcm/index">RCM path</a> of the guide.' },
|
||||
invalid: { type: 'danger', text: 'This serial is <strong>invalid</strong>. Double-check you typed it correctly. At minimum, provide 6 digits after the prefix.' },
|
||||
}
|
||||
|
||||
function redact(s) {
|
||||
@@ -110,8 +141,21 @@ function initSerialChecker() {
|
||||
digits.addEventListener("input", serialChangeEvent);
|
||||
}
|
||||
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", initSerialChecker);
|
||||
} else {
|
||||
// make sure this component loads properly upon refreshing page/random navigation :P
|
||||
|
||||
function tryInit() {
|
||||
const prefix = document.getElementById("serial-prefix");
|
||||
if (!prefix) return;
|
||||
if (prefix.dataset.initialized) return;
|
||||
prefix.dataset.initialized = "1";
|
||||
initSerialChecker();
|
||||
}
|
||||
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", tryInit);
|
||||
} else {
|
||||
tryInit();
|
||||
}
|
||||
|
||||
const observer = new MutationObserver(tryInit);
|
||||
observer.observe(document.body, { childList: true, subtree: true });
|
||||
@@ -14,6 +14,14 @@ head: [
|
||||
|
||||
If you already know you have a modchipped Switch console, you can skip ahead to the [Modchip Introduction](../user_guide/modchip/index) page.
|
||||
|
||||
A modchip is a physical modification to the motherboard of your Switch. It cannot be installed without decent microsoldering experience. You can outsource this work to people who are willing to do the job for you, or you can also view the following guide if you are willing- and able to install one yourself.
|
||||
|
||||
::: tip
|
||||
|
||||
<a href="https://guide.nx-modchip.info/" class="btn btn-solid">Modchip Installation guide →</a>
|
||||
|
||||
**Note:** The above guide is not hosted or supported by NH Server; we cannot provide support for reviving consoles ruined by inexperience.
|
||||
|
||||
:::
|
||||
|
||||
## Finding your serial number
|
||||
|
||||
@@ -1,17 +1,5 @@
|
||||
# Introduction to Modchips
|
||||
|
||||
## Prerequisites
|
||||
|
||||
A modchip is a physical modification to the motherboard of your Switch. It cannot be installed without decent microsoldering experience. You can outsource this work to people who are willing to do the job for you, or you can also view the following guide if you are willing to install one yourself.
|
||||
|
||||
::: tip
|
||||
|
||||
<a href="https://guide.nx-modchip.info/" class="btn btn-solid">Modchip Installation guide →</a>
|
||||
|
||||
**Note:** The above guide is not hosted or supported by NH Server; we cannot provide support for reviving consoles ruined by inexperience.
|
||||
|
||||
:::
|
||||
|
||||
## Information
|
||||
|
||||
Unlike "unpatched" consoles, modchips enable CFW via CPU voltage glitching, which bypass bootROM firmware verifications. It allows a ``payload.bin`` file to be launched in place of BOOT0, loaded via a modchip firmware module named `sdloader`. This is much different from RCM and its exploit, [fusee-gelee](https://github.com/Qyriad/fusee-launcher/blob/master/report/fusee_gelee.md), which "unpatched" consoles use.
|
||||
@@ -19,7 +7,7 @@ Modchips allow any console, including all patched consoles, to run CFW!
|
||||
|
||||
## General knowledge
|
||||
|
||||
Patched Switch consoles (consoles produced after mid-2018) are immune to the fusee-gelee exploit in RCM. Attempting to inject a payload on a Patched console will be unsuccessful.
|
||||
Patched Switch consoles (consoles produced after mid-2018) are immune to the fusee-gelee exploit in RCM. Attempting to inject a payload via RCM on a Patched console will be unsuccessful.
|
||||
|
||||
Depending on your modchip's firmware, you may not be able to boot the console without a microSD card inserted.
|
||||
This means without a microSD inserted at all times, your Switch becomes *unusable*. The likelihood of the Switch becoming *unusable* is small, but still possible. To know if your modchip and its firmware support the bypassing of the firmware module `sdloader`, consult the "**About modchips and their firmware versions**" section below.
|
||||
|
||||
Reference in New Issue
Block a user