Nintendo SwitchのHomebrew開発がスタートへ

Team ReSwitchedが、3.0.0以下のNintendo SwitchでHomebrewを開発するためのツールを公開していました。今頃この話?と思う方多数だと思います。1週間前にコメント欄でも情報をお寄せいただいておりますが、時間がないくせにエポックメーキングな出来事だからと独立記事を書こうと欲をかいたのが原因で、結果として相当記事にするのが遅れました。本来なら先週書くべき記事でしたが、半分くらい書きかけでしばらく放置していました。せっかく途中まで書いていたこともありますので記事として仕上げて公表します。(poppoさん、通りすがりさん情報ありがとね)


Team ReSwitchedは3.0.0までのSwitchにはsm:h/smhaxという、システムモジュールにビルトインされているサービスマネージャー(“sm”)がユーザーに対してフルパーミッションを与えてしまう脆弱性が存在することからSwitchをアップデートしないよう警告していましたが、その概要がようやく明らかになりました。

概要、と書いたのはユーザーが直接使える何らかのものが公開された訳ではなく、開発者向けの開発環境が公開された段階だからです。

開発者向けとして今まで秘密裏に開発されていた開発環境が公開されたので、今後Switchシーンの盛り上がりは期待できます。と言っても最新ファームウェアSwitchをお持ちのスプラトゥーンフリークには今のところ無用の長物に等しいのが残念です。

今回発表されたのは以下のツールです。

PegaSwitch 3.0
Switch OS 2.0.0-3.0.0に対応したWebkit exploitのツールキットで、IPC(プロセッサ間通信)のサポートやAPI(ソフトウェアのやりとりに使われるインターフェイス)などをSwitchプラットフォームに実装できます。
https://github.com/reswitched/Pegaswitch

libtransistor
SwitchのオープンソースSDKのHomebrew開発プラットフォームです。
https://github.com/reswitched/libtransistor

Mephisto
ゲーム以外のSwitchバイナリ向けエミュレータで、GDBデバッガとしても使用可能。IDAを使ったシステムモジュールのソースレベルのデバッグも可能です。ただしゲームの開発用途には使用できません。。
https://github.com/reswitched/Mephisto

SwIPC
IPCメッセージの標準的な仕様を定義するためのプロジェクトです。
https://github.com/reswitched/SwIPC

これらのツールはプライベートツールとして一部のメンバーだけで開発・教養されていましたが、今回一般公開するにあたり今後は主に開発者を含むコミュニティに対してSwithシーンへの貢献が期待されています。

ただしこれらツールの活用には重要な条件があります。それは「ROhan」と呼ばれるwitch OS 3.0.0以下で任意のコードを実行できるというexploitで、3.0.1アップデートで対策されたため3.0.0以下のSwitchである必要があります。

まだHomebrewゲームの開発には対応していないようですが、グラフィック関連の環境環境の開発がまだこれからだからだと思われます。

一旦環境が揃えば、今後はexploitさえ新たに見つかればHomebrew環境が継続できる可能性が高いです。まだ品薄状態が続いている発売直後に近いSwitchですが、今回は進展が早いですね。

『Nintendo SwitchのHomebrew開発がスタートへ』へのコメント