Nintendo Switchハックまとめ

はじめに

このまとめ記事は、Nintendo Switchでカスタムファームウェア起動等、通常はできないことになっている使い方をするためのチュートリアルです。

実行する場合は完全に自己責任となります。万が一故障しても修理できませんので、壊しても構わないという覚悟がある場合に限って試してみてください。

Switchハック用語解説

Nintendo Switchのハックに関わる有志によるコミュニティ(Switchシーンと呼ばれます)で使われている専門用語について説明します。

ColdBootハックとWarmBootハック

Nintendo Switchの場合はファームウェアを読み込む前の時点でハックする方法(電源投入直後にハックするためColdBoot(コールドブート)ハックと呼ばれます)が一般的です。

通常デバイスはブートローダーと呼ばれるプログラムが電源投入直後に起動・実行され、そのブートローダーがOS(Switchの場合は内部コードに記載があることからOSのことをHorizon OSと呼んでいます)を起動します。

コールドブートハックはデバイスが最初に起動するブートローダーの代わりに別のプログラムを起動させてしまう方法です。システム自体が起動(コールド状態)する前にハックすることからコールドブートハックと呼びます。

ハックするタイミングがOS起動の前の段階ですので、システムのファームウェアは常に最新にしてしまっても基本的には大きな問題にはなりません。

逆にシステムが起動した後にゲームの改造セーブデータを読み込むなど何らかのシステムの脆弱性を利用する方法はWarmBoot(ウォームブート)ハックと呼ばれます。SwitchにもWarmBootハックはありますが、一般的にWarmBootハックはファームウェアアップデートで簡単に脆弱性は潰されて使えなくなります。そのためハックすることを目的とする場合は古いファームウェアを維持し続けるか、新しいファームウェアで別の脆弱性が見つかるまで待つかの選択肢しかありません。

いずれにせよWarmBootハックは何らかのデータだけで実現できるソフトウェアハックであり便利な一面はありますが、対策されて使えなくなる可能性が濃厚なため使用する分には不便を必ず強いられます。

Switchを含め最近のゲーム機はインターネット接続環境の存在が前提となっており、さらにゲーム起動のためにはファームウェアアップデートを要求されるような設計になっているため、古いファームウェアを維持するとデバイスがゲーム機としての役割を果たせないことが多くなってきています。

ColdBootハックの場合はソフトウェアアップデートでの対策が困難であるためハックするという観点からは理想の状態ですが、そのために利用する脆弱性が見つかることはかなり希です。改造セーブデータによるバッファーオーバーフローで任意のコードを実行するようなWarmBootハックの方が一般的です。

Nintendo Switchの脆弱性

Nintendo SwitchのSoC(System-on-a-Chip: 1個のチップ上にプロセッサコアをはじめ一般的なマイクロコントローラが持つような機能や応用目的の機能などを集積し、連携してシステムとして機能するよう設計されている集積回路)であるNvidia Tegraには起動時に任意のコードを実行できてしまう脆弱性が存在していることが発見されました。その脆弱性を利用したハックはFusée Geléeと名付けられ発表されました。

脆弱性が存在する部分はソフトウェアアップデート等の対応では書き換えができない部分のため、ハードウェア自体を生産段階から対策したSoCに変更した製品を作らない限り対策できないというものでした。

脆弱性が存在するモデルと対策モデル

2019年から販売されている「バッテリー持続時間が長くなった新モデル」であるNintendo Switchと、携帯モード専用のNintendo Siwtch LiteはSoCは同じですが初期モデルに存在したFusée Geléeの脆弱性を対策した製品ですが、2018年の夏くらいから販売されている初期型モデルもFusée Gelée対策がされているモデルとなっています。

Switchが2017年3月に販売開始され品薄がようやく解消されたおよそ1年以上経過後にFusée Geléeが公開されているという時系列からFusée Geléeが有効な、いわゆる「初期型Switch」はかなりの数販売され市場に出回っています。中古であれば比較的入手するのは難しくはないでしょう。

Fusée Geléeとは

具体的にFusée Geléeの動作について概要を説明します。

Fusée GeléeはSwitchにもともと用意されていたリカバリーモード(RCMモード)に存在する脆弱性を利用してUSB経由でペイロードと呼ばれる非署名プログラムを読み込ませて実行させることができます。Switchへペイロードを送り込むには、USBを持つデバイス上で動作するプログラムが必須となるためSwitch本体単独では利用できません。理論上はUSB端子があるデバイスならプログラムさえ作れば利用することは可能です。一般的にはPC(Windows/macOS)かAndroidを使います。

現在はペイロードとしてブートローダーが開発されており、そのブートローダーからカスタムファームウェアを起動することができるようになっています。

RCMモードとは

Switchに用意されているRCMモード(リカバリーモード)はSwitchのプロセッサであるNVIDIA Tegra X1に用意されているリカバリーモードです。TegraシリーズはAndroidタブレットデバイスに使用されたりしています。Tegra X1のリカバリーモードはAndroidデバイスと機能的には同じで、起動時に電源ボタンや音量ボタンの同時押しなどの操作で本体の再起動や端末初期化を実行できるリカバリーモードとなっています。しかしその存在は公にはされていませんでした。また、公式の使い方が存在するわけではありません。

Android等のリカバリーモードではSDカードに配置したバイナリーファイル(拡張子は.bin)をユーザーが選択し読み込んでメモリに書き込みますが、Switchではユーザーが非書名コード(任天堂の署名が付加されていない任意のコード)を流し込むことはできません。SwitchのNVIDIA Tegra X1の場合はUSB接続した際に脆弱性が存在し、それを利用することで署名のない任意のバイナリーファイルを読み込ませることができます。このバイナリーファイルをSwitchシーンでは「ペイロード」と呼んでいます。

Switchで使われているファイルフォーマット

Switchで使われているファイルフォーマットについてそれぞれ説明します。

NSP: eショップタイトルに使われているファイルで、ゲームROMやアイコン、アップデータなどが含まれているパッケージファイルです。

XCI: Switchのカートリッジダンプデータです。ゲームROM本体やアイコン、メタデータが含まれています。

NRO: XCIを復号化したファイルです。Homebrewのフォーマットとして使われています。暗号化されていないのでローダーがないと起動できません。

NCA: Nintendo Content Archiveというファイルフォーマットで、ゲームカードからダンプして得られます。ファームウェアやゲームROMなど複数のコンテンツが含まれています。SwitchのカートリッジイメージであるXCIをHacToolなどで展開することで入手できます。PCでいうところのZIPファイルのようなものと考えて下さい。

NCZ: NCAの圧縮フォーマットです。

NSZ: NSPファイルと基本的には同じでパッケージファイルです。NCAファイルとNCZファイルは同じコンテナに入れておくことができますが、通常のNSPとは異なり中にNCZファイルが含まれていることを示すためにNSZと呼んでいます。

XCZ: XCIファイルと基本的には同じダンプデータです。NCAファイルとNCZファイルは同じコンテナに入れておくことができますが、通常のXCIとは異なり中にNCZファイルが含まれていることを表すためにXCZと呼んでいます。

SwitchのeFuseとは

eFuse(eヒューズ)とは、電子的にプログラム可能なヒューズのことで、ソフトウェアによって切断することができるようになっています。eFuseは2004年にIBMが発表した、チップを自律動作させる技術で、各チップに多数の微細な電気ヒューズを追加した、特殊なソフトウェアと組み合わせて使うことでチップが内部回路を自分で変更し、問題を回避できるようになったり処理効率を上げられるようになるというものです。
ただし、このヒューズは一度切れると元には戻りません。

Nintendo Switchではファームウェアをアップデートする度にeFuseを焼き切る仕様になっています。従って、ファームウェアのアップデート毎に切れているeFuseの数が決まっています。

これはSwitchに実装された「アンチダウングレード(ダウングレードブロック対策)」で用意されたもので、Tegra X1プロセッサの内部レジストリであるFUSE_RESERVED_ODM7をブートローダーがチェックする仕組みです。

焼いたヒューズの数が多い(eFuseの切れた数よりファームウェアのバージョンが低い=ダウングレードしている)とブートローダーはパニックを起こします。逆に数が少ない場合(何らかの理由でeFuseが切れずにファームウェアがアップデートされた)場合は予測される数だけヒューズを切ってしまいます。

理論上eFuseは32個あるため32回のファームウェアアップデート分まで用意されていることになります。1回のアップデートで必ずeFuseを一つ焼き切る訳ではなく、焼き切らないように設定されたアップデートも存在するため、例えば9.1.0の場合焼き切れたeFuseは12個となっています。

eFuseの仕組みはダウングレード等の改造を施した痕跡がなく正常なファームウェアの状態かどうかをソフトウェア的にチェックが可能であることを意味しています。

RCMモードの入り方

SwitchのRCMモードは、起動時にボリューム+ボタンと電源ボタンとHOMEボタンの同時押しでRCMモード(リカバリーモード)として起動できます。電源ボタンとボリュームボタンはSwitchではディスプレイのある本体上部に並んで付いていますが、HOMEボタンは右側Joy-conに付いています。RCMモードはプロセッサのある基板側でのみ有効なため、Joy-conのHOMEボタンは実はRCMモードのボタンとしては機能しません。

Joy-conと本体は10pinのコネクターで接続されており、HOMEボタンを押すことでJoy-conと本体コネクターの10pinのうちどれかに信号が渡ります。
この10pinコネクターが「隠しHOMEボタン」として利用できます。

隠しHOMEボタンは写真のJoy-con取り付け部の下側奥にあります。ディスプレイ側から1番ピンで全部で10本あり、このうち10番ピン(一番背面側に近いピン)をGNDに落とせばいいらしく、10番と7番(または1番)の短絡でも問題ありません。

Switch_HOME_Button_pin

最も簡単なのは、両端同士の10番pinと1番pinの短絡(ショートさせること)です。針金のようなものを使って自作ツール(ジグと呼びます)でも可能ですが、確度が低くもの凄く疲れます。
Handmade-Short_pin

専用のRCMジグが通販で入手できますので、こういったものを購入した方が明らかに簡単です。
RCM_Jig

1000円もしない価格でAmazon等で購入できます。

Switchハックに必要なもの

Switchをハックするには、以下のものが必要です。大前提として、現時点ではRCMモードが存在する初期型Nintendo Switchが必須です。(MODチップであるTeam-XecuterのMODチップであるSX Core/ SX Liteがあれば対策済みSwitchやSwitch Liteでも可能です)

・ハックのために必要なオールインワンパッケージツールKosmos

※Kosmosは必要なものをすべて集めたWindows向けツール集ですが、Windows以外のOSで利用する際や今後Kosmosがアップデートされなくなった時に備えて最低限必要なものを以下に列記しておきます。
1) Switchで起動させるプログラムペイロード
多機能ブートローダーペイロードHekate – CTCaer Mod
2) ペイロードランチャーアプリケーション
■Windows: TegraRcmGUI
■macOS: fusee-launcher for macOS (要Python 3.6+)
■Linux: fusee-launcher (要Python 3.6+)
■Android: Rekado
■iOS: NXBoot

・USBケーブル [USB Type C – Type A] または[USB Type C – Type C]または[USB Type C – microUSB]
※接続するデバイスによる(Switch側はUSB Type C)

・microSDカード(microSDXCの2TBが認識できる最大容量です。32GBまでのmicroSDHCであればファームウェアのバージョンに関係なく使えますが、64GB以上のmicroSDXCの場合はファームウェアのアップデート:正確にはexFAT対応アップデートが必要になります。)

・RCMジグ

microSDカードのセットアップ

microSDカードへコピーするべき必要なファイルを用意します。
最初はよく分からないと思いますので、海外の有志がPCのブラウザで一括ダウンロードするサイトを作成してくれていますのでそちらを使用するのが簡単でお勧めです。

1) PCのブラウザでhttps://www.sdsetup.comへアクセスします
sdsetup.com_1

2) Select a Consoleと書かれたところにあるNintendo Switchのアイコンをクリックします

3) 必要なツールのチェックボックスを選んで一括ダウンロードします。Pre-configured bundlesのところでとりあえずKosmos Defaultsを選んでおけば、必要なファイルが自動的に選択されます。

sdsetup.com_2

Minimalを選ぶと、SwitchのCFWであるAtmosphereを使うための最低限のものが自動的に選択されます。まずはMinimalを選択してそれ以外のツール等はSwitchハックに慣れてきたら必要に応じてダウンロードする形を取っても良いでしょう。今回はKosmos Defaultsを選んだ前提で進めます。

なお、PegaScapeというのは4.1.0以下のみに対応したWarmBootハックですのでとりあえず無視して構いません。

sdsetup.com_3

Kosmos Defaultsを選ぶとSDSetupというzipファイルがダウンロードされます。ダウンロードは画面一番下にあります。解凍すると以下のフォルダが出てきます。それぞれ簡単に説明します。

sdフォルダ:
microSDカードのルート(microSDカードの一番上のディレクトリ)にコピーすべきファイルが入っています。すべてのコンテンツをmicroSDカードのルートにコピーして下さい。

payloadsフォルダ:
Fusée Geléeで使うペイロードが入っています。TegraRcmGUIやRekado、fusee-launcherなどのペイロードランチャーアプリケーションで使用します。

pcフォルダ:
https://sdsetup.com/のSelect your Extrasで選択したOSで使うツールが入っています。Kosmos Defaultsを選んでダウンロードしているとWindowsのツールになっています。ペイロードランチャーアプリケーションもWindows用のTegraRcmGUI(インストール不要のポータブル版)が入っています。

androidフォルダ:
Androidのツールを選んだ場合にはここに入ります。

licensesフォルダ:
ダウンロードしたツール類のライセンスが入っています。オープンソースツールのお約束のような存在なので特に気にしなくても良いでしょう。削除してしまっても動作には一切問題ありません。

readmesフォルダ: ダウンロードしたアプリケーションの説明が書かれたReadMeファイルです。使い方などが書かれたただの英文のテキストデータですので削除してしまっても動作には一切問題ありません。

sdsetup

大切なことは、sdフォルダのコンテンツをmicroSDにコピーすること、使用するペイロードランチャーアプリケーションのペイロードを正しく配置することの2点です。

microSDのフォーマットはFAT32とexFATが使えますが、1ファイルのサイズが最大4GBに制限されるFAT32よりもファイル容量制限のないexFATが一見便利そうに見えます。

使うmicroSDにもよるかもしれませんが、途中で動かなくなるなどexFATには結構悩まされました。FAT32の場合にはそういうことがほとんどなかったので、確実性を重視するのであればFAT32を推奨します。

ペイロードランチャーアプリケーションの準備

ペイロードランチャーアプリケーションには主に以下の4種類があります。

■Windows: TegraRcmGUIhttps://www.sdsetup.comでダウンロード可

■macOS:
fusee-launcher for macOS
(要Python 3.6+)

■Linux: fusee-launcher (要Python 3.6+)←https://www.sdsetup.comでダウンロード可

■Android: Rekadohttps://www.sdsetup.comでダウンロード可

■iOS: NXBoot

macOSでfusee-launcher for macOSをペイロードランチャーアプリケーションとして使う

fusee-launcher for macOSはPythonスクリプトです。事前にPython 3をMacにインストールしておく必要があります。Macのターミナルからコマンドを入力して実行する形になります。

Pythonのインストールから説明します。既にインストールされている場合は以下の3)から始めて下さい。

必要なものは以下です。
・Python 3
・libusb
・pyusb

1) macOS 用パッケージマネージャーHomebrewをhttps://brew.shからダウンロードします。

2) Python Releases for Mac OS XからPython 3をダウンロードしてインストールします。Macにデフォルトで入っているのがPython 2の場合も新たにインストールが必要です。

3) libusbをインストールします。ターミナルで以下のコマンドを入力してください。
brew install python libusb
4) pyusbをインストールします。ターミナルで以下のコマンドを入力してください。
python3 -mpip install pyusb

5) https://github.com/SuperOkazaki/fusee-launcherにMacのブラウザでアクセスします。

6). “Clone or download”と表示されている緑色のボタンをクリックします。

7). “Open in Desktop”と”Download ZIP”が表示されるので”Download ZIP”をクリックします。

8). fusee-launcher-master.zipをダウンロードして保存し、解凍します。

9). 解凍してできたフォルダ内にpayloadsフォルダを新規に作成し、https://sdsetup.com/でダウンロードしたpayloadsフォルダ内のペイロードをコピーします。

fusee-launcher_folder

10) SwitchのJoy-Con(右)を取り外し、RCMジグを挿入してボリューム+ボタンと電源ボタンを押してRCMモードで起動します。起動しても画面は真っ暗で見た目の変化はありません。RCMモードに入ったかどうかはUSBで繋いでペイロードかきちんと起動したかどうかでしか分かりません。Switchが通常起動してしまうのは失敗です。

11) RCMモードに入ったらSwitchをMacのUSBポートに接続します。ハブを使うとうまくいかないことがあるので注意してください。

12) ダウンロードしたfusee-launcher-masterフォルダにあるmacOS launch.commandファイルをダブルクリックして起動(またはターミナルから起動)します。
画面に”Available Payloads:”として有効なペイロードがリスト表示されるので、使うペイロードのファイル名を選択します。
fusee-launcher_1

fusee-launcher_2

複数のペイロードが入っている場合、リストで選択してもリストの一番上に表示されるペイロードが勝手に選択されてしまう場合は使うペイロードを1つだけpayloadsフォルダに入れておくと良いでしょう。

いざというときに備えNAND(eMMC)とBIS keyをバックアップする

Switchの改造には常にリスクが付きまといます。誤った操作により、Switchは簡単にbrick(電源を入れても画面が真っ黒など正常に起動出来なくなる状態)してしまう可能性があります。

公式には認められていない使い方とされて、正規ルートでの修理もできません。そういった万が一のトラブルに備え、システムが健康な状態のデータを保存しておき調子が悪くなったら元のデータに書き戻せるように準備しておく必要があります。それがNAND(eMMCと呼ばれることもあります)とBIS keyをバックアップします。

SwitchのNANDメモリは、本体に内蔵されている保存領域で、BIS keyはSwitchの本体ごとに固有の値として保存されているデータです。NANDメモリはメモリに保存されているデータを丸ごとダンプして保存します。BIS KeyはNANDメモリ内のコンテンツを復号(暗号化を解除すること)するための鍵です。

NANDとBIS keyのバックアップにはhekateとLockpick_RCMのペイロードをそれそれ使います。バックアップしたデータはmicroSDカードに保存されます。

HekateによるNANDバックアップ

RCMモードで起動したSwitchでペイロードランチャーアプリケーションからhekateを起動すると、hekateのGUIであるNYXが表示されます。
ここでToolsをタッチします。

hekate-home

Backup & RestoreのBackup eMMCをタッチし、左側のFull(フルバックアップ)にある

1: Backup eMMC BOOT0/1をタッチしてBOOT0/1をバックアップ(すぐ終わる)

2: Backup eMMC RAW GPPをタッチしてrawnand.binをバックアップ(時間かかる)
します。

hekate-backup-and-restore

hekate-backup

Finished and verified!と表示され完了したらColseをタッチしてhekate(NYX)のHOMEに戻り、右下のPower Offで一旦電源を落としmicroSDカードを抜いてバックアップしたデータを一旦PC等にバックアップします。rawnand.binは32GB近く容量があります。

Lockpick_RCMによるBIS keyのバックアップ

BIS keyのバックアップはLockpick_RCMというペイロードを使います。
Lockpick_RCMはhttps://www.sdsetup.comから入手できますが、個別に入手する場合はGitHubから行えます。

1) RCMモードで起動したSwitchでペイロードランチャーアプリケーションからLockpick_RCMを起動します。HekateでReboot > RCMからLockpick_RCMを選んで起動しても構いません。どちらも同じです。

2) Lockpick_RCMを起動するだけで自動的にkeyをmicroSDカードに保存します。BIS keyは/switch/prod.keysに、titlekeyは/switch/title.keys にそれぞれ保存されます。

ペイロードを起動してemuMMCを作成する

Switchはシステムを本体の基板上にあるNANDメモリ(sysNANDと呼ばれます)から起動します。セーブデータは本体に保存されますが、それはそのsysNANDのメモリに保存されることになります。

SwitchをハックしてNANDメモリの中身を書き換えてしまうと正規の使い方では発生しないような記録を残してしまうので、任天堂のネットワークに繋げなくなるというアクセス拒否(BANされると一般的には言われます)のリスクが増えます。

そのリスクを少しでも回避するために開発されたのが仮想NAND(NANDをエミュレートするという意味でemuNANDやemuMMCと呼ばれます)です。sysNANDとは別にmicroSDカードにemuNANDを作り、そのemuNANDをsysNANDとして振る舞うようにしてしまおうというのがemuNAND(emuMMC)の仕組みです。

Nintendo 3DSシーンでは仮想NANDをemuNANDと呼んできたことからSX OSを開発したTeam XecuterはemuNANDと呼称していますが、有志によるSwitchシーンではSwitchのメモリ(eMMC)から転じてemuMMCと呼んでいます。呼び方は異なりますがどちらも同じ仮想NANDです。

hekateでemuMMCを作成する

ペイロードランチャーアプリケーションで起動するペイロードにhekate – CTCaer mod(以下、hekateと呼称)を選択し、hekateでemuMMCを作成します。

emuMMCにはSDカード上にファイルとしてemuMMCを作成する方法と、専用のパーティションを作る方法の2種類があります。パーティションを作った方が動作が高速になりますが、emuMMC自体がPCにマウントされないなど少し扱いにくくなることと、microSDのフォーマットがFAT32に固定(=1ファイルのサイズが最大4GBに制限される)されます。ファイル容量制限のないexFATを使う場合はSDカード上にファイルとしてemuMMCを作成する方法をここでは紹介します。

emuMMC作成手順

RCMモードで起動したSwitchでペイロードランチャーアプリケーションからhekateを起動し、HOMEのemuMMCをタッチします。

hekate-home

画面が切り替わります。次にCreate emuMMCをタッチします。

emuMMCをSD FilesにするかSD Partitionにするか聞かれます

SD Filesを選ぶ場合

emuMMCを通常のファイルとして作成します。この場合、microSDカード内にファイルができますので、見た目で分かりやすいのがメリットです。
SD FilesをFATパーティションに作成すると書かれていますが、exFATもFATパーティションに含まれるので気にしなくても良いでしょう。

Finished and verified!と表示され完了したらColseをタッチするとeMMC Manageの画面でChange emuMMCをタッチします。

Change emuMMCではSD File Basedのところに作成したemuMMCがemuMMC/SD00として出てくるので選択します。emuMMC設定がSDカードに保存された旨のメッセージが出るのでOKを押すと、eMMC Info & SelectionがEnabledになります。

右上のColseを押してhekate(NYX)のHOMEに戻りLaunchをタッチしてCFW(emuMMC)を選ぶとemuNANDが起動します。

SD Partitionを選ぶ場合

事前にemuMMC専用のパーティションをmicroSDカードに作成しておく必要があります。TegraExplorerを使ってmicroSDカードをフォーマットする方法が一番簡単です。

SD Partitionを選ぶ場合、emuMMCパーティションはmicroSDをPCにマウントしても見えませんので、分かりにくいところがデメリットですが、ファイルで作成するより動作が高速です。
パーティションが作成してあればFound applicable partition: [Part1]!と表示され、Part0からPart3までの4つのパーティションテーブルがリストアップされます。ContinueをタッチするとemuMMC作成が始まります。

Finished and verified!と表示され完了したらColseをタッチするとeMMC Manageの画面でChange emuMMCをタッチします。

Change emuMMCではSD Raw Partitionsのところに作成したemuMMCがSD RAW1として出てくるので選択します。emuMMC設定がSDカードに保存された旨のメッセージが出るのでOKを押すと、eMMC Info & SelectionがEnabledになります。

※注意事項
microSDカードのフォーマットはexFATの方がうまく動作するのであれば便利なのですが、安定していないようでAtmosphereが起動しませんでした。
MacでmicroSDカードを作成するとパニックが発生することがあり(余計な不可視ファイルを作成するmacOSの仕様のせいですが)、exFATだとAtmosphereの起動最終段階で黒味のまま動かなくなったりしましたので、結局私はexFATを使うのを諦めました。

TegraExplorerを使ってmicroSDカードをフォーマットする

TegraExplorerはペイロードベースのファイルエクスプローラーです。microSDカードにemuMMCのためのパーティションも切ってくれる(microSDのフォーマットはFAT32になる)ので便利です。

TegraExplorerはテキストベースのためタッチパネルは動作しません。ボリューム+-でカーソルを移動させ、電源ボタンが決定の役割をします。
1) TegraExplorerをペイロードランチャーアプリケーションでペイロードとしてSwitchに読み込ませます。

2) Main menuの中に SD Formatがあるので選択します。

3) Format for EmuMMC setup(FAT32/RAW)を選択します。

4) フォーマットすることでmicroSDカードのデータが消去されるので、実行してもいいかと警告文が出ます。10秒のカウントダウンが出て、0になると”Press Power to Continue”(電源ボタンで続ける)が表示されるので、電源ボタンを押します。
ボリューム+または-でキャンセル可能です。

5) Sd mounted!と表示されれば成功です。何かボタンを押せばMain menuに戻ります。

6) この段階で、Unmount SDを選ぶとmicroSDカードを取り外せます。一旦取り外してSDSetupでダウンロードしたsdコンテンツをコピーします。microSDカードはexFATの31.31GBのemuMMC用パーティションとFAT32の普通のmicroSDとしてマウントされている保存エリアができていますので、sdコンテンツ(Nintendoフォルダをバックアップしていた場合はそれもコピーすることを忘れずに)をmicroSDへコピーし、もう一度Switchに戻してTegraExplorerのMain MenuにあるMound SDを選択します。

7) Main menuのExitを選択し、reboot to RCMでRCMモードで再起動します。

これでペイーロードランチャーアプリケーションで別のペイロードで起動できるようになりますが、sdコンテンツをコピーしたmicroSDカードだとHekateやAtmosphereをTegraExplorerから直接選択して起動できます。まずはemuMMCの準備を行うためHekateで起動しましょう。

CFWであるAtmosphereをemuMMCから起動する

sysNANDからも起動はできますが、emuMMCはmicroSDカード上の仮想sysNANDで本体のNANDメモリに影響を与えないため、CFWの起動はemuMMCから行うことを推奨します。セーブデータやダウンロードタイトルのフォーマットであるNSPファイルは本体NANDにしか保存されませんが、emuMMCからCFWを起動していれば本体のsysNANDには手を付けずにemuMMC側へ保存され、安全性(任天堂にBANされるリスク回避のため)が増します。
CFW(emuMMC)

Atmosphereの起動はHekateのLaunchメニューから行います。Launchをタッチすると
CFW(SYSNAND): 本体のsysNANDから起動する
CFW(emuMMC): microSDの仮想NANDであるemuNANDから起動する
Stock (SYSNAND): いわゆる普通のノーマルブート
から起動方法を選択できますのでCFW(emuMMC)をタッチします。

Atmosphereについて

CFWであるAtmosphereは有志によって開発されているオープンソースのSwitch向けCFW(カスタムファームウェア)です。起動すると分かりますが、見た目はノーマルSwitchと変わりません。

HOME画面の設定→本体で現在のシステムバージョンが
9.2.0|AMS 0.10.5|E
というように表示されます。
9.2.0がベースとなるSwitchのファームウェアバージョン
AMS 0.10.5がAtmosphereのバージョン
EがemuMMCから起動していることを示します(sysNANDの場合はSと表記されます)

setting-system-version

BANリスクを回避する

そもそもBANされるというのはどういう意味でしょうか。
アカウントがBANされる、本体がBANされるという表現がよく使われますが、一般的にはアカウントや本体がネットワークサービスの利用ができない状態、「凍結」や「利用停止」される状態をいいます。

BANはカタカナで「バン」とはあまり書かれません。BANと表現することが多いです。

Switchの場合には、ニンテンドーアカウントの凍結によりサービスが利用できなくなる、Switch本体がサービス利用停止となり、どのニンテンドーアカウントでログインしてもサービスが利用できなくなります。
Switch BAN

任天堂がBANするガイドラインを公表しているわけではありませんが、SwitchでCFWをインストールしたりなどの改造した状態でニンテンドーのサービス(eショップにアクセスしたりオンライン対戦をしたり)を利用したりなど「ニンテンドーアカウント利用規約に違反する行為」が確認されると任天堂に判断されると、もれなくBANされます。通常利用停止期間は無期限であるため、もう二度と復活できません。

違法コピーゲームを使っていたり、チートデータでオンライン対戦などを行う行為で違反行為と認定されるのは当然の行為ですが、自作アプリ(Homebrew)の起動でBANされるのはちょっと泣けてきます。

BANされるのは致し方がないかもしれませんが、できるだけそのリスクを低減するためにSwitchをハックするときにはいくつかの措置を施していくことをお勧めします。

最も確実なのは、ハック専用ニンテンドーアカウント(捨てアカウント)を使うことですが、既にニンテンドーアカウントを登録していてポイントもたまっている、そのアカウントでemuMMCを作ってしまったというような場合、ユーザーと連携しているニンテンドーアカウントを解除したり、変更したりできないという仕様になっているため、そこはあきらめてネットに繋げないような工夫を施した方が良いでしょう。

日本のネット用語としてBANは確立してしまっていますが、実は一般的な英語です。
Web辞書であるWeblio 辞書にも掲載されています。

主な意味
禁止、禁止令、(世論の)無言の圧迫、反対、破門、追放、公権剥奪

abandon(捨てる、見捨てる)
banish(追放する、追い払う)
という単語の中にもBANは含まれています。

言語は違えどBANは共通のネット上での用語として定着しているのは面白いですね。

emuMMCを利用する

Hekateから起動する際は必ずemuMMCにしましょう。
CFW(emuMMC)
emuMMCはもともとsysNANDのクローンですので見た目がノーマルと同じになりますが、一見してemuMMCのCFWだと分かるよう色を変更するなどして判別できるにした方が良いでしょう。

sysNANDのノーマル起動とemuMMCのCFW起動でmicroSDカードを使い分ける

現時点で必ずしも必須ではありませんが、microSDカードの中のコンテンツをOSにチェックされてしまうとBANされる材料を提供してしまうことになります。
非常に面倒で手間がかかる話ではありますが、ノーマル状態で起動する際には別途専用のmicroSDカードを用意しておいた方が良いでしょう。

エラー情報の送信をOFFに

Switchの設定の中に、エラー情報のログを送信する機能があり、一応ユーザーが了承した場合に限りそのログ(エラー情報)を自動で送信します。
Setting_message

CFWを使っていると、ノーマル状態ではあり得ないログが残るはずですのでそんなものをおいそれと本体から送信するのはよろしくはありません。
したがって、この設定は必ずOFFにしてください。ノーマルで起動することにしているsysNANDもemuMMCも両方ともOFFにします。
Setting

機内モードに設定する

機内モード(すべての無線通信がOFF)に設定することで、誤ってネット接続することがなくなります。少なくとも機内モードにさえしておけば改造しているということ自体任天堂が検出できませんのでBANされるリスクはなくなります。ただしインターネットにすら繋げないので現状維持以外何もできなくなるため、万全の解決策とは言えません。

機内モードの設定方法
・HOMEメニューの「設定」→「機内モード」からON/OFFを切り替え
・Joy-Con(R)のHOMEボタンを長押しし、クイック設定が表示されたら「機内モード」を選択
plane-mode

注意点としては、機内モードがONの時はBluetoothもOFFになるためJoy-Conを本体に取り付けないと使用できなくなります。Joy-Conを使いたい場合は機内モードONでもBluetoothだけONにすることはできます。

90DNSを使用する

90DNSとは、安全にHomebrew起動できるようにすることを目的に任天堂サーバーへのトラフィックだけを遮断するDNSサーバーのサービスです。アプリケーションを使うわけではありません。

Switchの設定でDNSに90DNSのIPアドレスを入力しておくことで、90DNSサーバー側でニンテンドーのサーバーへのアクセスだけをブロックしてくれます。従って通常のインターネット接続は可能です。

では、90DNSを使えばニンテンドーのサーバーを使わないサービス、例えばFortniteのオンラインプレイやHuluなどの動画サービスは使えるのかというと、どうもそううまくはいかないようで、繫がらなくなるという報告が上がっています。

90DNSはGBATempで情報共有されていますので、興味がある方は読んでみて下さい。

90DNSの設定は以下となっています。

1) HOMEメニューから設定を選択します。
2) インターネット → インターネット接続でSSIDが表示されます。
3) 使っているWi-Fiを選択し、設定の変更を選びます。
4) DNS設定が自動になっていたら手動に切り替えます、
5) 有線DNSで 163.172.141.219
 代替DNSで 207.246.121.77
を入力し保存します。
90DNS

6) 正しくDNS設定ができているかを確認するためのHomebrew 90DNS Testerをsd:switchフォルダへコピーしてAtmosphereのアルバムがらHomebrewとして起動します。
hbmenu-90DNS-tester

任天堂のサーバーブロックがすべてOKになっていれば成功です。
90DNS-Tester

90DNSの設定はWi-Fi接続状態でしかできませんので、一旦Wi-Fi接続してください。設定が完了したら機内モードに戻し、必要に応じて機内モードを解除して90DNSが有効な状態でインターネット接続してください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする