XDA-developersで、SwitchrootチームのByLaws氏がAndroid 10ベースのカスタムROM LineageOS 17.1のNintendo Switch版switchroot Android 10をリリースしていました。
Switchに限らずゲーム機でLinuxを起動させるというのはゲーム機ハックの目的の王道ですが、普段Linuxを使っていないと「使い道が…」と感じてしまう方が多いと思います。
ところがもしLinuxの代わりにAndroidが起動するとなると話が変わってきます。Androidはシェアが圧倒的に大きいスマートフォンのOSであるため「あれがSwitchで使えるのか!」と身を乗り出す方が増えます。実はLinuxだろうがAndroidだろうがどっちも変わらないのですが。
ということで、GameGaz Daily 2021.2.7で概要だけお伝えしましたが、興味ある方がいると思うのでXDA-developersで紹介されていたインストール方法をお伝えします。Android 10なので最新ではありませんが(最新はAndroid 11)、まだスマホ買い換えてから時間が経っていない方はAndroid 8 OreoやAndroid 9 Pieの人も多いと思います。それよりは新しいAndroid OSになります。
対象のSwitchはFusée Geléeに対応した初期モデルです。RCMモードからHekate CTCaer modを起動するまではNintendo Switchハックまとめ(情報が一部古いので本当は書き直さなきゃいけないですごめんなさい…)をご参照下さい。ここでは割愛します。
用意するもの
・Hekate CTCaer mod: zipファイルを解凍してSDカードのルートにコピーする
・switchrootから以下のどちらかのROM.zipファイルを解凍してSDカードのルートにコピーする。解凍する際はWindowsにビルトインされているものではない7-zipを使用すること。
- 1. タブレット版-携帯モードに最適化され、Androiアプリに完全対応: icosa-tablet-20210205-rel.zip
2. Android TV版-携帯モードとTVモードに対応するが一部のアプリが動作しない: icosa-atv-20210205-rel.zip
その他、必要に応じて以下の焼き込みzipを用意する。zipは解凍せずTWRP(カスタムリカバリー)からzipを選んで直接インストールを行う。
- ・Gapps: Tablet版にはARM64 Android 10 picoを、Android TV版にはARM64 Android 10 tvminiを用意する。
switchroot/android-10/extras/にある
・Alarm Disable Zip: スリーブ時にアラームや通知を無効化する。無効化しないとSwitchでのスリーブ動作に支障が出る。
・joycon-xbox.zip: A/BボタンとX/Yボタンを入れ替えることでXboxコントローラーと動作を同じにする
インストール方法
1. SDカードに古いAndroid OSをインストールしている場合はワイプされ消去されますので必要であればバックアップをとっておく等の対応をしてください。
2. もし既にAndroid Q(Android 10)がインストールされている場合は、それがhekate v5.5.3以降で作成されたものでないとOTAアップデート(Wi-Fi経由などでアップデータをダウンロードして行うアップデート)ができない可能性があります。
3. SDカードはFAT32フォーマットが必須です。exFATのSDカードだと今回の方法ではインストールできません。
4. Tablet版またはAndroid TV版のROM.zipファイルとHekate CTCaer modのzipファイルを7-zipで解凍してSDカードにコピーします。合わせてGappsなどのzipファイルも(これらは解凍せずzipのまま)コピーしておきます。
5. SDカードにコピーする際、既存の同一ファイルがある場合は上書きします。
6. Joy-Conをペアリングするために、Joy-Conを取り付けたSwitchをドックに収納した状態でノーマル起動します。
7. 次にRCMモードからHekateを起動します。起動したらJoy-ConをSwitch本体に取り付けNyx Options→右上のDump Joy-Con BTを選択します。
8. 以下のようにSDカードへのダンプ成功メッセージが出ることを確認して下さい。ダンプできない場合は6.のJoy-Conペアリングからやり直して下さい。
9. Hekateのメインメニューへ戻り、Tools→右上のPartition SD Cardを選択します。
10. スライダーをドラッグしてAndroidに確保したいパーティション容量を決めます。HOS(Horizon OS:SwitchのOS)スライダーはノーマルSwitchのOSが使用可能なパーティション容量を示しています。
11. その後は画面の指示に従って下さい。必要であればバックアップを取るなどをします。
12. Flash Androidを選択し、リカバリーで再起動(reboot to recovery)を行います。
13. リカバリーでの再起動はMore Configs→switchroot Android 10をボリューム上ボタンを押しながら選択することでも可能です。ボリューム上ボタンはTWRPのロゴが表示されるまで押し続けます。
14. TWRPが起動したら、モディファイを許可するためにバーをスワイプしてInstallを押します。
15. 画面右下にある Select Storageを押し、Micro SD Cardを選択します。
16. 最初にLineage zipをインストールします。エラーが出ますが、必ず出るので無視して下さい。.
17. 次に他のGapps等のzipファイルをインストールします。Android Oreo用のzipは動作しないのでインストールしないでください。
18. zipのインストールが終了したらTWRPでreboot to systemを選んで再起動します。
19. インストール完了です。Androidを起動する場合はHekateでMore Configs→switchroot Android 10を選択します。
20. Android最初の設定の音声認識が上手くいかない場合はWi-Fi設定まで戻り、後で設定を選んでとりあえずスキップして下さい。
アップデート方法
アップデートはOTA(Over The Air: 無線ネットワークを利用して直接端末にソフトウェアアップデートをダウンロードする)アップデートが提供されます。アップデートがあると通知が表示され、そこでダウンロード、アップデートを行えます。
Tips
・パフォーマンスモードを有効にして解像度を変更するにはSettings → Scroll Down → System → Scroll Down → Display and Performance configurationで行えます。
・通知やアラームが不要な場合はAlarm Disable ZipをTWRP(カスタムリカバリー)でインストールします。通知やアラームを設定するとスリープ時間が大幅に増加します。
・Nvidia Shield TVアプリはTVモードでのみ使用可能です。キーボードやマウスが利用できます。
・パスワードを設定していなければSwitchはドック挿入時に自動でロック解除されます。
・Joy-Conのキャプチャボタンはメディアの再生/ポーズに割り当てされています。
・Developer OptionsでForce Desktop Modeを有効にして再起動すると、TVモードで使いやすくできるデスクトップモードにすることができます。
・Android TV版でバッテリーの残量パーセンテージ表示をしたい場合はSnowballとHeads-up Notificationsを開発者オプション(Developer options)を有効にしてPCと接続しADBで
adb shell cmd notification allow_listener com.snowball.app/com.snowball.app.nsprocess
adb shell cmd notification allow_listener codes.simen.l50notifications/codes.simen.l50notifications.NotificationListenerService
を実行、再起動後設定でアプリごとの権限設定(SnowballはNotification Accessを有効に、SnowballとHeads Up NotificationsはDisplay Over Other Appsを有効に)を行います。
・Tablet版でコントローラーを使って文字入力したい場合はandroid_device_lineage_atvのキーボードをインストールしてください。
・タブレットアプリをAndroid TV版で使う場合はSideload Channel / Application Launcherを使って下さい。
・ルート化を行う場合は最新版のMagiskをTWRPでインストールしてください。
・Androidへのファイル転送はUSB経由でMTPが使えます。
※基本的にXDA-developersフォーラムの翻訳です。Androidのroot化には疎いので(守備範囲外)Magiskの使い方などは質問されても私はお答えできません。知っている人がいたら誰かが答えてくれるかもしれません。