https://fail0verflow.com/blog/2018/shofel2/
https://github.com/fail0verflow/shofel2
https://github.com/fail0verflow/switch-arm-trusted-firmware
https://github.com/fail0verflow/switch-coreboot
https://github.com/fail0verflow/switch-u-boot
https://github.com/fail0verflow/switch-linux
ShofEL2はSwitchに搭載されるTegra X1(T210)のブートROMに存在するバグ由来のexploitで、これまでcoldboot exploitと
呼ばれていたexploitです。使用しているバグはKate Temkin氏が発見してNVIDIAに報告したFusée Geléeの物と同じだそうです。
Kate Temkin氏はFusée Geléeの脆弱性によって既存のTegra搭載機に危険が及ぶと考えNVIDIAに報告されました。
対してfail0verflowチームはTegraがAndroid端末に使用されている事からGoogleに報告したようで、90日間は公開しないという
契約があったらしく、それが4月25日で切れるため25日に公開しようとしていた所に先日の匿名の存在によるブートROMの流出騒ぎ。
これによってほんの少しだけ公開を早め、本日24日に公開する事にしたようです。
fail0verflowチームが今回リリースしたのはSwitchでLinuxを起動させるための一連のソフトウェアです。
ShofEL2 → corebootローダー → coreboot → ARM trusted firmware → coreboot → u-boot → Linux
この流れでLinuxが起動するとされています。
Switchで任意のコードを実行するためにはSwitchをTegraのリカバリーモード(RCMモード)で起動し、ホストとなるPCとUSBケーブルで接続して
exploitを実行するようです。Kate Temkin氏もFusée Geléeのレポートに同じような事を書かれていましたね。
USB接続が必要な事から、fail0verflowチームはiOSの脱獄である "tethered jailbreak" というワードを挙げられています。
私はiOSユーザーではないのでそのワードは初耳でしたが、iOSの脱獄ユーザーには馴染みのあるワードなのでしょう。
SwitchをRCMモードで起動する方法は以下の3つがあるとされています。
・システムで事前にカーネルコードを実行する。例えばWebkit exploitとカーネルexploitをエントリーポイントとして。
・eMMCボードを取り外すとTegraは起動時にRCMモードに入る
・Switchの音量アップボタン, ホームボタン, 電源ボタン を同時押し
2つ目はNVIDIAのエンジニア向けとしてKate Temkin氏がレポートに書かれていた方法です。
3つ目の方法のホームボタンというのはJoyConに存在するホームボタンではなく、Tegraがホームボタンとして扱う隠されたボタンのようです。
fail0verflowチームはこの3つ目の方法でRCMモードに入るための詳細を書かれています。
Switchの本体右側のJoyConを外し、本体側のレールの下部を確認してみてください。見えにくいかもしれませんが、10本のピンが見えるはずです。
その10番ピン(右端)が隠されたホームボタンに繋がっているようで、10番と7番、或いは10番と1番をショートさせるとホームボタンになるようです。
10番と9番では機能しないようです。fail0verflowチームがTwitterで公開していたのはこのショートを簡単に行うためのパーツの画像です。
Introducing our new, revolutionary technology for Nintendo Switch modification. Welcome to SwitchX PRO. Coming soon. pic.twitter.com/d3xGawrW1u
— fail0verflow (@fail0verflow) 2018年4月23日
And for those who don't want to wait or want a more cost-effective solution, we're also introducing a lite version of SwitchX. Available at your local hardware store TODAY. pic.twitter.com/BlPMmqLGlw
— fail0verflow (@fail0verflow) 2018年4月23日
SwitchXの"Available at your local hardware store TODAY." というのは冗談というかなんというか…
多分、自分で最寄りのお店でワイヤー買ってショートさせようね!って事でしょう。
SwitchX PROの方は冗談ではなく真剣に考えられたパーツのようで、3Dプリント可能なデータとしてGitHubで公開されています。
https://github.com/fail0verflow/shofel2/tree/master/rcm-jig
こういうのが公開されるとなると、需要がありそうならAliとかに出てくるのではないでしょうか。
今日どこで見たのか忘れましたが既にシーンの開発者の中には今回リリースされた物でLinuxを起動させている人がいて、確かその人は
クリップを使ってたような…私の記憶違いなら申し訳ない話ですが、クリップならどのご家庭にもありそうですし使えると嬉しいですね。
fail0verflowチームはTwitterでこんな画像を公開しています。
In utterly, completely unrelated news, here's a sneak peak at a totally brand new Zelda game coming soon to Nintendo Switch. pic.twitter.com/5FwyBX7L1y
— fail0verflow (@fail0verflow) 2018年4月23日
リプライ見たら分かりますが、これはSwitchのFW上ではなくLinux向けとして移植されたDolphinを使って動作していますのでご注意ください。
つまりSwitchでLinuxを起動させてそこでDolphinを起動して風のタクトやってるってわけです。
また、こんな画像も。
ShofEL2 also supports running Switch homebrew. Technically. pic.twitter.com/pIcxvmsgPj
— fail0verflow (@fail0verflow) 2018年4月23日
これは本当によく見た方が良いです。これはSwitchのエミュレータとして開発が進められているyuzuの上でHomebrewが動作している画像です。
fail0verflowチームのブログの記事の最後にはexploitの詳細やLinuxの移植に関する話なんかが近日公開予定と書かれています。
ShofEL2やLinuxの起動に興味がある方はそれを待つと良いかもしれませんね。
Switchで起動するLinuxの挙動はこんな感じです。
これはfail0verflowチームがTwitterで2月に公開した動画で、今回のリリースに際してYouTubeにアップされたようです。
SwitchをまるでタブレットPCの如く使用されている感動的な動画です。
ちなみに、当たり前かもしれませんがLinuxはmicroSDカードに入れます。SwitchのストレージであるeMMCの内容に改変を加える事はせず
現在のハードウェアリビジョンでは修正出来ないバグ由来のexploitを利用しているため、fail0verflowチーム曰く永遠にデュアルブート可能だそうです。
microSDカードのパーティションを切って片方にLinux入れたり、Linux用のmicroSDカードを用意するなどのシチュエーションを挙げられています。
