起動の高速化 Atmosphère 0.20.0

SciresM氏が、Fusée Gelée(NVIDIA Tegraプロセッサの脆弱性を利用し起動時に任意のコードを実行するcoldboot exploit)を利用して起動することができるNintendo Switchのカスタムファームウェア Atmosphère 0.20.0のリリースを準備しています。

Atmosphere_banner

今までの最新版がAtmosphere 0.19.5 でしたので、0.20.0はAtmosphereとしてはメジャー級のアップデートになります。8月21日朝の段階でAtmosphere自体のリリース準備はできていましたが、ブートローダーであるHekateの対応を待ってAtmosphere 0.20.0のリリースを行う方針とのことでした。

ところが日本時間で日付が変わってもHekateのアップデートがないため、Atmosphere 0.20.0のリリースが待ち状態になっています。こういう横の連携は良いと思いますが、実は詰め合わせセットが先行してAtmosphere 0.20.0を同梱して配布する事態が起こっています。

まずTHZoria氏がNintendo SwitchのカスタムファームウェアAtmosphereを中心に、勝手なブートロゴなどを付けないようにしたカスタムファームウェアオールインワン詰め合わせセットPack Atmosphere Vanilla(AtmoPack-Vanilla) 2.0.0をリリースしていました。ベータ版としてのプレリリースで、先行してAtmosphere 0.20.0に
・hekate v5.5.8 & Nyx v1.0.5(今までのままの使い回し)
・Sigpatch(ベースのファームウェアは12.1.0から変わってないのでそのまま使い回し)
を加えています。

同じくcarcaschoi氏がNintendo SwitchのカスタムファームウェアAtmosphereを中心に必要なものをすべてSDカード内に用意することで機能的に内包するような形にしたカスタムファームウェアオールインワン詰め合わせセットShallowSea v2.1.6 beta(Atmosphere 0.20.0のプレコンパイル版)およびfusee-primaryのバグを修正したShallowSea v2.1.7 betaをリリースしていました。

Changelogのドキュメントだけは先に公開されていますので、実は私もAtmosphere 0.20.0の記事のベースを8月21日午前中に仕上げていました。詰め合わせセットが先行してリリースされてしまっている現状を考えると、書いた記事を寝かせて置くよりはもう公開しちゃえ、ということで、そのドキュメントから先行して変更点だけ紹介します。

ということでAtmosphere 0.20.0の変更点は以下です。

  • メモリトレーニング(DRAM側でのデータ入出力のタイミングがバス内で一致するように、メモリコントローラ側でタイミングを調整する作業)を実装しRAMを204MHzから1600MHzに増速。Marikoでの起動速度が改善し従来の半分に。ノーマルモデルでは最大35秒が18秒、Liteモデルでは最大65秒が30秒に。
  • ファームウェアを起動するために必要なキーを取り出していたSeptのリプレイスによりリポジトリから削除。Eristaモデルではキーの取り出しにカスタムTSEC(Tegra Security Co-processor)ファームウェアを使用。これによりキー取り出しロジックがシンプルになり、ソースコードの容量としては最も大きかったため起動失敗の要因にもなっていたSeptを廃止でき安定性が向上。起動速度改善にも寄与。
  • チートエンジンの改良
  • Daybreak(Atmosphere 0.14.0で実装されたアップデートやダウングレードの仕組み)でAtmosphereがサポートしていることを把握しているファームウェアよりも新しいバージョンをインストールしようときた時にワーニングメッセージを表示
  • その他、不具合修正と安定性向上

特徴的なのは、起動の高速化です。安心してDaybreakを使える環境が用意されたこともユーザーにとってはありがたいと思います。

Atmosphere 0.20.0が実際公開されたらここに追記する形でお伝えする予定です。

[追記]2021.8.29
Atmosphere 0.20.0がようやくリリースされました。変更履歴としては8月22日の状態のまま変わっていないようです。Hekateの対応リリース待ちでしたが、HekateがリリースされたためにようやくAtmosphereも正式リリースされました。いつもよりかなり時間がかかりました。

ついでにAtmosphereに合わせてリリースされたものをご紹介します。CTCaer氏がNintendo Switch向け多機能ブートローダーとなるbootloader/package1のリプレイスペイロードhekate v5.6.0とNyx v1.0.6をリリースしていました。サポートファームウェアは12.1.0のまま変わりません。
Hekateの変更点はSwitch OLED (Aula)のサポート(基本的にはディスプレイ、ハードウェア/ヒューズ、DRAM、ブートに対応し、まだリリースされていない13.0.0が必要だとなっています)し、Atmosphere同様Septサポートの廃止によりErista 7.0.0以降での起動プロセスの見直し、リサイズされたemuMMCで低速になってしまう不具合の修正などです。NyxはHekateの内容に加え、サイズの小さなeMMC/emuMMCを容量が大きいパーティションにリストアした場合にパー-センテージがおかしかった不具合の修正や、SDカードで誤った製造IDだったものをフェイクとして扱うようにしたことなどが追加で行われています。

署名パッチについては
・TeJayH氏がpatches(sigpatch) 12.1.0-0.20.0をリリース
・THZoria氏がpatches 1.1.1(Sigpatch 0.20.0 FW 12.1.0)をリリース
しています。