GitHubで、SciresM氏がFusée Gelée(NVIDIA Tegraプロセッサの脆弱性を利用し起動時に任意のコードを実行するcoldboot exploit)を利用して起動することができるNintendo SwitchのカスタムファームウェアAtmosphère 0.9.4をリリースしていました。
今回は先日リリースされたNintendo Switch システムバージョン 9.0.0に対応したというのが最も大きなトピックですが、今回は対応するに当たって条件が付いています。というのも9.0.0でHIDプロファイル(Bluetooth接続によるキーボードやマウスといった入力デバイスを使用するためのプロファイル)が変更になり、SwitchでHomebrewを開発するためのライブラリlibnxがボタン入力を検出できなくなっています。
Atmosphere 0.9.4ではHIDプロファイルに対応したデバイスをサポートするためのシステムモジュールhid-mitmを暫定的にAtmosphereで供給することによりHomebrewでボタン入力ができるよう暫定措置が施されました。そして根本的な解決策として、libnxがボタン入力を検知できない不具合を修正したところでHomebrew開発者に新しい修正版libnxでHomebrewを再コンパイルしてもらうことが提案されています。再コンパイルされたどこかの段階で暫定導入したhid-mitmは取り除かれますので、その後になればユーザーが好みのモジュールを使えるようになります。
9.0.0ではその他にSDカード起動とUSBシステムモジュールに依存関係が設けられました。SDカードの初期化より前にUSBシステムモジュールが起動してしまうため、USBシステムモジュールにIPSパッチが適用できなくなりました。これについては今後解決策を探っていくようです。
また、9.0.0でゲームカードのコントローラー(“lotus”)ファームウェアが更新され、このlotusのヒューズを焼かないように9.0.0で起動する時に標準設定ではnogcパッチするようになりました。
9.0.0でゲームカードを使いたい場合にはBCT.ini
でnogc = 0
と記述すればnogcパッチが適用されなくなり9.0.0でゲームカードが使えるようになります。ただしこれをすることで逆にゲームカードを使うには9.0.0以降のファームウェアでないといけなくなり、例えば8.1.0ではゲームカードが使えなくなってしまいます。
その他、BISキー生成の不具合を始めとしたバグ修正や安定性向上などが行われました。
Homebrewの再コンパイルが必要というのが少し面倒です。libnx側に問題があったことが要再コンパイルの原因のようですのでアップデートの度に毎回このような対応が必要になるということはないと思われます。