add mset9

Adapted from 3DS:Alternate Exploits/Installing boot9strap (MSET9) on
the wiki, a page written primarily by @Gruetzig.

Also modifies FAQ accordingly.

Co-authored-by: Gruetzig <florianavilov@gmail.com>
This commit is contained in:
Lily 2023-10-05 02:02:15 +02:00 committed by lifehackerhansol
parent 72880a39ab
commit 3d9807ac39
No known key found for this signature in database
GPG key ID: 80FB184AFC0B3B0E
14 changed files with 227 additions and 11 deletions

View file

@ -103,6 +103,9 @@ sidebar_pages:
- -
title: Installing boot9strap (super-skaterhax) title: Installing boot9strap (super-skaterhax)
url: installing-boot9strap-(super-skaterhax) url: installing-boot9strap-(super-skaterhax)
-
title: Installing boot9strap (MSET9)
url: installing-boot9strap-(mset9)
- -
title: Installing boot9strap (petit-compwner) title: Installing boot9strap (petit-compwner)
url: installing-boot9strap-(petit-compwner) url: installing-boot9strap-(petit-compwner)

View file

@ -4,7 +4,7 @@ title: "Alternate Exploits"
{% include toc title="Table of Contents" %} {% include toc title="Table of Contents" %}
3DS / 3DS XL / 2DS consoles on firmware 11.17.0 do not currently have any free, software-only methods. Therefore, all of the methods here have some sort of prerequisite. MSET9 is currently the only exploit for 3DS / 3DS XL / 2DS consoles on firmware 11.17.0 that is free and does not require any software. If you're unable to use it, you'll need to use one of these methods, which all have some sort of prerequisite.
### Installed eShop titles ### Installed eShop titles

View file

@ -16,7 +16,7 @@ title: "FAQ"
{% capture compat %} {% capture compat %}
<summary><u>I am on the latest system version. Is my console hackable without any external hardware/prerequisites?</u></summary> <summary><u>I am on the latest system version. Is my console hackable without any external hardware/prerequisites?</u></summary>
It depends on your console model. At the moment, New 3DS / New 3DS XL / New 2DS XL is [able to be modded on 11.17.0](installing-boot9strap-(super-skaterhax)) without any prerequisites (e.g. eShop titles, physical items), while 3DS / 3DS XL / 2DS requires [additional software or hardware](alternate-exploits). **Yes!** New 3DS / New 3DS XL / New 2DS XL can use [super-skaterhax](installing-boot9strap-(super-skaterhax)), while 3DS / 3DS XL / 2DS can use [MSET9](installing-boot9strap-(mset9)).
{% endcapture %} {% endcapture %}
<details>{{ compat | markdownify }}</details> <details>{{ compat | markdownify }}</details>
@ -91,7 +91,7 @@ You will need at least 1.5GB of free SD card space to follow this guide in its e
{% capture compat %} {% capture compat %}
<summary><u>I heard about this thing I have to pay for (Gateway, Sky3DS, ntrboot, R4, etc). Is that something I need?</u></summary> <summary><u>I heard about this thing I have to pay for (Gateway, Sky3DS, ntrboot, R4, etc). Is that something I need?</u></summary>
At the moment, 3DS / 3DS XL / 2DS consoles on 11.17.0 need to use one of many [alternate exploits](alternate-exploits) to install custom firmware. If none of the other prerequisites are available, then ntrboot will be the cheapest available option (roughly $20 USD). No. While a DS flashcart can be used to mod a 3DS using [ntrboot](ntrboot), there is now a free software method available for most consoles.
3DS-mode flashcarts like Gateway and Sky3DS are not recommended because they are obsolete and may carry ban or brick risk. 3DS-mode flashcarts like Gateway and Sky3DS are not recommended because they are obsolete and may carry ban or brick risk.
{% endcapture %} {% endcapture %}

View file

@ -1,6 +1,6 @@
**3DS firmware 11.17.0 was recently released**. Here's what you should know: **The latest 3DS firmware is 11.17.0**. Here's what you should know:
+ If your console is running *Luma 10.2.1 or higher*, it is *100% safe* to update. You can check your Luma version by holding (Select) while booting your console. + If your console is running *Luma 10.2.1 or higher*, it is *100% safe* to update. You can check your Luma version by holding (Select) while booting your console.
+ If your console is on an older Luma version, you should [update Luma](checking-for-cfw) before you update your console to 11.17.0. + If your console is on an older Luma version, you should [update Luma](checking-for-cfw) before you update your console to 11.17.0.
+ If your console does not yet have custom firmware, **do NOT update to the latest version** unless this guide instructs you to. + If your console does not yet have custom firmware, **do NOT update to the latest version** unless this guide instructs you to. The methods on earlier firmwares are easier and more stable.
+ If your unmodified console is ALREADY on 11.17.0, this guide has been updated accordingly. Specifically, New3DS-family consoles have a [free software method](installing-boot9strap-(super-skaterhax)), while Old3DS-family consoles will need to use [alternate exploits](alternate-exploits) that rely on external hardware or software. + If your unmodified console is ALREADY on 11.17.0, this guide has been updated accordingly. Both [New3DS](installing-boot9strap-(super-skaterhax) and [Old3DS](installing-boot9strap-(mset9)) now have free software methods that (for the most part) do not require external hardware or software.

View file

@ -0,0 +1,104 @@
---
title: "Installing boot9strap (MSET9)"
---
{% include toc title="Table of Contents" %}
{% capture technical_info %}
<summary><em>Technical Details (optional)</em></summary>
[MSET9](https://github.com/zoogie/MSET9) is an exploit for the System Settings application developed by [zoogie](https://github.com/zoogie). It exploits a flaw where the ID1 (the second 32-character folder name inside of the Nintendo 3DS folder, inside of the ID0) can be *any* name as long as it is 32 characters. Performing a specific sequence of actions results in the 3DS executing the instructions are encoded into the ID1 folder name, which can be used to grant full control over the 3DS.
{% endcapture %}
<details>{{ technical_info | markdownify }}</details>
{: .notice--info}
### Compatibility Notes
This method currently only works on Old3DS-family consoles (3DS, 3DS XL, 2DS) on firmwares between (and including) 11.8.0 and 11.17.0.
{: .notice--warning}
This method requires a computer running Windows or Linux. macOS is NOT supported, nor are phones or tablets. If you do not have access to Windows or Linux, you will need to use an [alternate exploit](alternate-exploits).
{: .notice--warning}
### What You Need
* The latest prerelease of [MSET9](https://github.com/zoogie/MSET9/releases) (the Release `.zip` file)
* Any 3.x version of [Python](https://www.python.org/downloads/)
+ If you are on Linux, you likely already have Python 3. Check by opening a terminal and entering `python3 -V`. If this returns a version number, it will work for this guide.
### Instructions
#### Section I - Prep Work
1. Power on your console **with your SD card inserted**
1. Open Mii Maker
1. Wait for your console to reach the "Welcome to Mii Maker" screen, then exit Mii Maker
+ You may see [this screen](/images/screenshots/mset9/mii-extdata.png), which indicates the necessary data has been created
+ If you just reach the normal Mii Maker screen, exit Mii Maker and continue to the next step
1. Power off your console
1. Insert your SD card into your computer
1. Copy everything inside the `SDMC` folder from the Release `.zip` to the root of your SD card, overwriting any existing files
![MSET9 root layout](/images/screenshots/mset9/mset9-root-layout.png)
{: .notice--info}
1. Execute the `mset9.py` script on the root of your SD card
+ **Windows**: Double-click `mset9.bat`
+ If this doesn't work: hold SHIFT and right-click anywhere in the SD card window, then click the option that opens Terminal, PowerShell, or Command Prompt, then type `py -3 mset9.py` and press Enter
+ **Linux**: open a Terminal window, `cd` to the root of your SD card, then type `python3 mset9.py` and press Enter
+ You should see a window that says "MSET9 ... SETUP by zoogie"
+ You should keep this window open until the end of this page, but if you close it by accident, you can open it again by redoing this step
![Image: MSET9 setup](/images/screenshots/mset9/mset9-setup.png)
{: .notice--info}
1. Type `1`, then press Enter to setup MSET9
+ If you see "(title.db/import.db) does not exist on SD card!" and "Create them now? (type yes/no)", follow the [troubleshooting guide](troubleshooting#installing-boot9strap-mset9)
1. Once the window says "Setting up... done", safely eject your SD card from your computer
+ Keep the MSET9 window open
1. Reinsert your SD card into your console
1. Power on your console
#### Section II - MSET9
These instructions must be followed **EXACTLY**, so double-check EVERYTHING you are doing to avoid errors!
{: .notice--danger}
1. **[Hover over](/images/screenshots/mset9/hover-settings.png)** the System Settings icon using the D-Pad (do not select it yet)
1. Power off, then power on your console
1. Press (A) to launch System Settings
1. Navigate to `Data Management` -> `Nintendo 3DS` -> `Extra Data` ([image](/images/screenshots/mset9/settings-extdata.png))
1. **Do not press any buttons or touch the screen** - ensure that you see the Mii Maker icon
1. **With the console STILL ON, and without pressing any buttons or touching the screen**, remove your SD card from your console
+ The menu will refresh and say that no SD card is inserted, which is expected
1. Insert your SD card into your computer
1. In the MSET9 window, type `2`, then press Enter to trigger MSET9
+ You should see "Injecting... done."
1. Safely eject your SD card from your computer
+ Keep the MSET9 window open
1. Reinsert your SD card into your console **without pressing any buttons or touching the screen**
1. If the exploit was successful, you will have booted into SafeB9SInstaller
+ If you get a red screen, follow the [troubleshooting guide](troubleshooting#installing-boot9strap-mset9)
#### Section III - Installing boot9strap
{% include_relative include/install-boot9strap-safeb9sinstaller.txt %}
{%- include_relative include/configure-luma3ds.txt %}
{% include_relative include/luma3ds-installed-note.txt %}
#### Section IV - Uninstalling MSET9
Do NOT skip this section. If you do, applications may crash unexpectedly!
{: .notice--danger}
1. Power off your console
1. Insert your SD card into your computer
1. In the MSET9 window, type `4`, then press Enter to remove MSET9
+ You should see "Removing... done"
1. Close the MSET9 window; you will not need it for any of the upcoming steps
___
### Continue to [Finalizing Setup](finalizing-setup)
{: .notice--primary}

View file

@ -18,6 +18,7 @@ Guide pages:
* [Installing boot9strap (Soundhax)](#installing-boot9strap-soundhax) * [Installing boot9strap (Soundhax)](#installing-boot9strap-soundhax)
* [Installing boot9strap (SSLoth-Browser)](#installing-boot9strap-ssloth-browser) * [Installing boot9strap (SSLoth-Browser)](#installing-boot9strap-ssloth-browser)
* [Installing boot9strap (super-skaterhax)](#installing-boot9strap-super-skaterhax) * [Installing boot9strap (super-skaterhax)](#installing-boot9strap-super-skaterhax)
* [Installing boot9strap (MSET9)](#installing-boot9strap-mset9)
* [Finalizing Setup](#finalizing-setup) * [Finalizing Setup](#finalizing-setup)
@ -435,6 +436,111 @@ This likely indicates that you already have custom firmware. You should [check f
{% endcapture %} {% endcapture %}
<details>{{ compat | markdownify }}</details> <details>{{ compat | markdownify }}</details>
## Installing boot9strap (MSET9)
{% capture compat %}
<summary><u>(title/import).db does not exist, create them now?" / invalid database</u></summary>
Full error messages:
* "Nintendo 3DS/\<ID0>/\<ID1>/dbs/\<import.db and/or title.db> does not exist on SD card! Create them now? (type yes/no)"
* "Invalid database"
This happens when no valid title database is present, usually because you never installed any titles from eShop on this SD card.
1. Type "yes", then press Enter
1. Insert the SD card into your console
1. Power on your console
1. Navigate to System Settings -> Data Management -> Nintendo 3DS -> Software -> Reset ([visual instructions](/images/screenshots/database-reset.jpg))
1. Power off your console
1. Insert the SD card into your computer
1. Return to [Section I Step 7](installing-boot9strap-(mset9)#section-i---prep-work)
{% endcapture %}
<details>{{ compat | markdownify }}</details>
{% capture compat %}
<summary><u>[WinError 5] Access is denied</u></summary>
The SD card may be write-locked. If you are using a full-size SD card, ensure that the lock is flipped in the [upright position](/images/sdlock.png). Otherwise, try ejecting and reinserting your SD card.
{% endcapture %}
<details>{{ compat | markdownify }}</details>
{% capture compat %}
<summary><u>UnboundLocalError: cannot access local variable 'haxid1_path'</u></summary>
This can happen when Option 1 stopped because of an error and there is an incomplete installation.
1. Close the script window
1. Execute the `mset9.py` script on the root of the SD card
+ **Windows**: Double-click `mset9.bat`
+If this doesn't work: hold SHIFT and right-click anywhere in the SD card window, then click the option that opens Terminal, PowerShell, or Command Prompt, then type `py -3 mset9.py` and press Enter
+ **Linux**: open a Terminal window, `cd` to the root of your SD card, then type `python3 mset9.py` and press Enter
+ You should see a window that says "MSET9 ... SETUP by zoogie"
1. Type `4`, then press Enter to remove MSET9
1. Return to the [beginning of Section I](installing-boot9strap-(mset9)#section-i---prep-work)
{% endcapture %}
<details>{{ compat | markdownify }}</details>
{% capture compat %}
<summary><u>Red screen after reinserting SD card (Section II Step 11)</u></summary>
You may be missing `SafeB9S.bin` from the root of your SD card, or the file may be corrupted. Copy it from the `SDMC` folder in the MSET9 `.zip` replacing any existing files.
Alternatively, your SD card may be improperly formatted or partitioned. Try reformatting your SD card: [Windows](formatting-sd-(windows)), [Linux](formatting-sd-(linux)) *(this will wipe your SD card data)*
{% endcapture %}
<details>{{ compat | markdownify }}</details>
{% capture compat %}
<summary><u>assert(id0_count == 1) AssertionError</u></summary>
You have multiple ID0 folders. To determine the correct folder, follow these instructions:
1. Rename the `Nintendo 3DS` folder to `BACKUP_Nintendo 3DS`
1. Reinsert your SD card into your console
1. Power on your console
1. Wait for the console to generate the SD card data
+ Your applications will have disappeared. This is normal and will be resolved shortly
1. Power off your console
1. Insert your SD card into your computer
1. Navigate to the `Nintendo 3DS` folder on your SD card
1. Write down the first few characters of the folder you see
+ This is your true ID0, which we will keep in the real Nintendo 3DS folder
1. Delete the ID0 from the current `Nintendo 3DS` folder
1. Move the true ID0 folder from the `BACKUP_Nintendo 3DS` folder to the `Nintendo 3DS` folder
1. If it exists, move the `Private` folder from the `BACKUP_Nintendo 3DS` folder to the `Nintendo 3DS` folder
Once you've done this, re-run mset9.py and continue from [Section I Step 7](installing-boot9strap-(mset9)#section-i---prep-work).
{% endcapture %}
<details>{{ compat | markdownify }}</details>
{% capture compat %}
<summary><u>assert(mii_ok==1) AssertionError</u></summary>
Your SD card does not have Mii Maker Data, which is necessary for this exploit to run.
1. Close the script window
1. Execute the `mset9.py` script on the root of the SD card
+ **Windows**: Double-click `mset9.bat`
+ If this doesn't work: hold SHIFT and right-click anywhere in the SD card window, then click the option that opens Terminal, PowerShell, or Command Prompt, then type `py -3 mset9.py` and press Enter
+ **Linux**: open a Terminal window, `cd` to the root of your SD card, then type `python3 mset9.py` and press Enter
+ You should see a window that says "MSET9 ... SETUP by zoogie"
1. Type `4`, then press Enter to remove MSET9
1. Insert the SD card into your console
1. Power on your console
1. Launch Mii Maker
1. Wait for your console to reach the "Welcome to Mii Maker" screen, then exit Mii Maker
1. Power off your console
1. Insert the SD card into your computer
1. Return to [Section I Step 7](installing-boot9strap-(mset9)#section-i---prep-work)
{% endcapture %}
<details>{{ compat | markdownify }}</details>
## Finalizing Setup ## Finalizing Setup
{% capture compat %} {% capture compat %}

View file

@ -233,7 +233,8 @@ $(document).ready(function() {
"installing-boot9strap-(fredtool-inject)": "29", "installing-boot9strap-(fredtool-inject)": "29",
"installing-boot9strap-(kartminer7)": "30", "installing-boot9strap-(kartminer7)": "30",
"installing-boot9strap-(petit-compwner)": "31", "installing-boot9strap-(petit-compwner)": "31",
"installing-boot9strap-(smilehax-iie-jpn)": "32" "installing-boot9strap-(smilehax-iie-jpn)": "32",
"installing-boot9strap-(mset9)": "33"
}; };
for(var device in devices){ for(var device in devices){
@ -297,7 +298,8 @@ $(document).ready(function() {
"29": ["alternate-exploits", "seedminer-(alternate)", "dumping-eshop-dsiware", "installing-boot9strap-(fredtool-inject)", "finalizing-setup"], "29": ["alternate-exploits", "seedminer-(alternate)", "dumping-eshop-dsiware", "installing-boot9strap-(fredtool-inject)", "finalizing-setup"],
"30": ["alternate-exploits", "seedminer-(alternate)", "installing-boot9strap-(kartminer7)", "finalizing-setup"], "30": ["alternate-exploits", "seedminer-(alternate)", "installing-boot9strap-(kartminer7)", "finalizing-setup"],
"31": ["alternate-exploits", "installing-boot9strap-(petit-compwner)", "finalizing-setup"], "31": ["alternate-exploits", "installing-boot9strap-(petit-compwner)", "finalizing-setup"],
"32": ["alternate-exploits", "installing-boot9strap-(smilehax-iie-jpn)", "finalizing-setup"] "32": ["alternate-exploits", "installing-boot9strap-(smilehax-iie-jpn)", "finalizing-setup"],
"33": ["installing-boot9strap-(mset9)", "finalizing-setup"]
} }
// Can add custom routing if necessary but currently both routes are identical // Can add custom routing if necessary but currently both routes are identical
var device_old = Object.assign({}, device_common,{ var device_old = Object.assign({}, device_common,{

File diff suppressed because one or more lines are too long

View file

@ -213,6 +213,7 @@ function can_seedminer(major, minor, native, region, model) {
return false; return false;
} }
// Huzzah, MSET9 for O3DS!
function is_o3ds_1117(major, minor, native, region, model) { function is_o3ds_1117(major, minor, native, region, model) {
let do_redirect = false; let do_redirect = false;
if (model == 0) { if (model == 0) {
@ -222,7 +223,7 @@ function is_o3ds_1117(major, minor, native, region, model) {
} }
} }
if (do_redirect) { if (do_redirect) {
window.location.href = "alternate-exploits" window.location.href = "installing-boot9strap-(mset9)"
return true; return true;
} }
return false; return false;
@ -251,7 +252,7 @@ function is_o3ds_1117(major, minor, native, region, model) {
- N3DS & 11.17 (EUR / JPN / USA): - N3DS & 11.17 (EUR / JPN / USA):
- super-skaterhax - super-skaterhax
- O3DS & 11.17: - O3DS & 11.17:
- Use alternate exploits; can't hack without any extra stuff - MSET9
*/ */
function redirect() { function redirect() {
const major = document.getElementById("major").value; const major = document.getElementById("major").value;

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB