HOME/Articles/

How to fix bricked System settings app and keyboard ?

Article Outline

How to fix bricked System settings app and keyboard ?

カスタムキーボードをインストールした状態でCFWをアンインストールすると、キーボードが使えなくなり、本体設定が起動できなくなります。この記事では、この状態から再度CFWを導入し、復旧する方法を解説します。

本体設定が使えないということ

本体設定が起動できなくなる上で障壁となるのは、大きく2つです。

インターネット接続の設定が出来ない

まず、この記事の内容を編纂するにあたって、私もカスタムキーボードを導入した状態でCFWのアンインストールを実施しました。すると、正常に繋がっていたインターネットへの接続が失われてしまいました。仮にインターネットへ接続できていたとしても、設定内容が変更できないのは痛手となり得ます。

セーフモードが使えない

セーフモードは、3DSを復旧するための標準機能で、電源を投入する際、+A+L+Rをホールドし続けることで起動できる、本体を更新するためのウィザードです。現在最も主流なCFWのインストール方法では、このセーフモードのexploitを利用するため、必然的に別の方法を選ばざるを得なくなります。

用意するもの

まず、本記事内容を実施するに当たり必要なものを紹介します。

  • 対象の3DS
  • 上記とは別の 3DS(CFW導入済み) 1台
  • 『マリオカート7』1本
    • ダウンロードソフトの場合、CFW導入済みの本体で動作している必要があります
  • GPUを搭載しているPC 1台
  • Python3
    • PCにインストールしておきます
    • Windowsの場合、以下のPowerShellコマンドでインストールできます
      iwr get.scoop.sh | iex ; scoop update ; scoop install python3

手順

以下のように進めます。

  1. kartdlphax
  2. seedminer
  3. frogtool

kartdlphax

kartdlphaxは、CTGP-7 Projectで知られるPabloMK7氏によるセミプライマリ1Exploitです。『マリオカート7』の『みんなで(ローカル通信プレイ)』を利用してコードを送信します。

  1. plugin.3gxをダウンロードし、CFW機のSDカード SD:/luma/titles/0004000000030600/ に配置する。

    Note

    0004000000030600 は、JPN版マリオカート7のTitleIDです。他リージョンのタイトルを利用する場合、そちらに合わせます。

  2. 3GXに対応しているboot.firmのビルドをダウンロードし、CFW機のSDカード SD:/ に配置する。

  3. boot.3dsxをダウンロードし、故障機のSDカード SD:/ に配置する。

  4. menuhax67をダウンロードしたのち展開し、故障機の3DSのファミリとリージョンに応じたLauncher.batを、故障機のSDカード SD:/ に配置する。

  5. CFW機でRosalina menuを開き、Plugin Loader:の項目でAボタンを押下し Enabledの状態にする。この状態でマリオカート7を起動する。正常に3gxを用意できれば、起動時に一瞬スクリーンの色が変化する。

  6. 「みんなで」を選択すると、kartdlphaxのメニューが開く。この画面で「Change Settings」を選択する。

  • 画面の指示に従って対象の3DSファミリを選択する。
  • 3DS ROP xPloit Injectorを選択する。
  • 上画面で設定内容を確認し直し、Use settingsを選択する。
  1. 通常のプレイと同様にプレイヤーを募集し、50ccのキノコカップを選択する。この際、プレイヤーとカートは問わない。レースを開始すると、haxの送信が開始される。完了すると、CFW機は自動でHOMEメニューに戻り、故障機は3DS ROP xPloit Injectorが起動する。

  2. 故障機で、Y: menuhax67を実行する。成功すると、下画面がグリーンバックになりHOMEメニューに回帰した後、電源が切断される。

  3. 再度電源を投入し、下画面左上のHOMEメニューの設定ボタンを押下し、HBLが起動することを確認する。

以降は、全て故障機における作業を記します。

Seedminer

Nintendo3DSには、全てのユーザセーブデータに影響を及ぼす128bitの暗号化キーmovable.sedが存在します。セーブデータにインジェクトを実施する場合、この鍵を使ってデータを復号し、また暗号化する必要があります。Seedminerは、その暗号化キーを、総当たりによって算出するための仕組みです。より詳しい情報を得るには、ここを訪れると良いでしょう。

  1. Seedminerをダウンロードしたのち展開する。これはPC上で動かすためのソフトウェアである。

  2. Seedstarterをダウンロードしたのち展開する。これはSeedminerが必要とするファイルをダンプするhomebrewである。取り出したseedstarter.3dsxをSDカードの任意の場所に保存する。

  3. HBLを開き、seedstarterを起動する。A dump LFCS from GetConfigInboBlk2 を実施する。完了したら、終了し、3DSからSDカードを取り外す。SD:/seedstarter/movable_part1.sedをPC上のSeedminerディレクトリ(Windows/Linux/Mac)にコピーする。

  4. コピーしたディレクトリでShellを開き、以下のコマンドを実行する。

    python3 ./seedminer_launcher3.py gpu

成功すると、以下のような出力とともに、movable.sedが生成される。

GPU selected
Old3DS msed - this can happen on a New3DS
LFCS      : 0x2d9a0ca
msed3 est : 0x91e028
Error est : 3277
ID0 hash 0: b385a906c822c3d993618c9d0123abcd
Hash total: 1
movable_part2.sed generation success
bfcl msky caa0d902000000000000000028e09100 b385a906c822c3d993618c9d0123abcd 00000000 00400000
selected device NVIDIA GeForce RTX 3060 on platform NVIDIA CUDA
0.012 seconds for OpenCL compiling
local work size: 256
got a hit: abcdef01234567890123456789e09100 at offset: 1
movable.sed dumped to file!
msed_data will also be written to
msed_data_000033BE.bin
just keep it handy if you don't know what to do with it!

done.
1.66 seconds, 2741.32 M/s

frogtool

frogtoolは、「うごくメモ帳」にハック用のデータをパッチしたり、またパッチ後のアプリを起動するためのユーティリティです。B9sInstallerをパッチして起動することで、故障機に再度CFWを構築し直すことが可能です。

  1. Seedminerで算出したmovable.sedSD:/に配置する。
  2. frogcert.bin(magnet) をダウンロードし、SD:/ に配置する。
  3. frogtoolをダウンロードしたのち展開する。frogtool.3dsxをSDカードの任意の場所に保存する。
  4. b9sToolをダウンロードしたのち展開する。boot.ndsSD:/ に配置する。
  5. Luma3DSをダウンロードしたのち展開する。boot.firmSD:/ に配置する。
  6. HBLを開き、frogtoolを起動する。INJECTを選択し、完了したら同様にBOOTを選択する。
  7. 「うごくメモ帳」が起動する。初回の案内を飛ばし、メインメニューまで遷移させる。
  8. 「メモを見る」「SDカード」「(顔文字のメモ)」「書く」の順に選択する。
  9. 方向キー上またはXでエディタ画面を開き、「終了」ボタン隣のフィルムアイコンをクリックする。
  10. 3枚目のコマを1枚目のコマへコピーする。b9sToolが起動する。画面の指示に従って、インストールを完了する。
  11. ソフトを終了すると、Luma3DSの設定画面が起動する。

最後に

カスタムキーボードを削除、またはNANDイメージをリストアして、CFWインストール操作を完了する。

脚注

  1. ^ プライマリExploitは、他にHomebrewを実行する手段がない中でHomebrewを実行可能にするExploitを指します。例えば、SoundHaxはプライマリです。一方、手順の簡略化を目的とするなど、既にHomebrewを実行できる環境でのみ導入可能なものをセカンダリExploitと呼び、BaseHaxxなどがこれにあたります。