Nexus SにAndroid 6.0を入れてみる

Nexus SにAndroid 6.0のカスタムROMがあると知ったので試してみた。Android M on Nexus Sはドミトリー・グリンバーグ氏が2015年11月に公開していたもので、詳細なビルド方法が記されており、ビルドに必要なソースや、fastbootコマンドで焼けるFASTBOOT IMAGES、TWRPから焼けるTWRP flashable zipがダウンロード出来る。
ただ、Nexus SはROMが16GBもあるにもかかわらず、大部分がSDカード相当の領域に割かれて、内蔵ストレージは1GBしか無く、システム領域も小さいのをどうしているのかと思ったら、内蔵ストレージは使わずに無視して、SDカード相当の領域をext4フォーマットして、システム領域と内蔵ストレージ領域として使っていた。素晴らしい。
今回はFASTBOOT IMAGESのcrespo-fastbootable.zipをダウンロードして展開。Nexus S(グローバルモデルで液晶パネルのGT-I9023と、韓国モデルで有機ELパネルのSEC-SHWM200Sを持っているが今回は前者を使用)の音量(大)を押しながら電源を入れてブートローダーモードで起動。PCとUSB接続してブートローダーモードのドライバが当たってることを確認。
あとはAndroid SDK等に含まれるfastbootコマンドで以下のようにブート領域を消去、ブート領域を焼く、リカバリー領域を消去、リカバリー領域を焼く、システム領域とユーザー領域を消去、システム領域を焼く、再起動と行うだけ。

fastboot erase boot
fastboot flash boot boot.img
fastboot erase recovery
fastboot flash recovery recovery.img
fastboot erase system -w
fastboot flash system system.img
fastboot reboot

しばらくしたらandroidロゴのアニメーションが始まるので起動するまで待つ。初回はEncryption unsuccessfulと表示されるのでRESET PHONEをタップすると、再起動され、ドロイド君が表示されて初期化が始まる。その後、しばらくしてandroidロゴのアニメーションが始まるので起動するまでかなり長い間待つ。
起動が終わると、GApps等は入っていないので初期設定ウィザードではなく、いきなりホーム画面になる。ホームアプリはAOSP標準のランチャー。アプリ一覧からSettings→Language & input→Language→日本語で日本語表示になり、現在のキーボード→キーボードの選択→Japanese IMEをONにして、現在のキーボード→日本語 Japanese IMEを選択すると日本語入力が可能になる。
キーボードは英語がAndroidキーボード (AOSP)、日本語がOpenWnn、アプリはカメラ、カレンダー、ギャラリー、ダウンロード、ブラウザ、メール、メッセージ、音楽、検索、時計、設定、電卓、電話、連絡先とAOSP標準のものばかり。
カメラは動作すると書いてあったが少なくともこの状態では何故かカメラに接続できないと表示されたり、固まったりと上手く動作しない。Wi-FiBluetoothNFC、ライト、回転センサー等は問題なく動作する。尚、USB接続時のMTPモードも動作するがUSBデバッグがデフォルトで有効になっているので無効にしないと上手く認識しないことがある模様。
動作は公式ROMのAndroid 4.1と比べると確かに遅いが、全く使えないというほどでも無いといった印象。判った上で操作すれば何とかなるレベル。シャットダウン状態からの起動も1分程度しかかからない。
ただ、面倒なことにGApps等を入れようとするとパーティション構成やディレクトリ構成が一般的なものと違う影響からか、そのままではインストール出来ないっぽい。GAppsのパッケージをバラして自前でapkとかシステムにコピーする方が手っ取り早いかも知れない。