いまさらながら、Nexus7(2012) 3GモデルにAndroid 6.0(MarshMallow)をインストールしてみました。
1.準備
環境は例によって Linux Mint 18 (64bit)です。 android-tools-adb とか、android-tools-fastboot などのandroid関連のパッケージは apt でインストール済みです。
ダウンロードしておくものは以下のとおりです。Nexus7(2012) 3Gモデルは開発コードが tilapia というらしく、この tilapia 向けのものを用意しておく必要があります。
- TWRP
Term Win Recovery ProjectというソフトウェアでAndroidに内蔵されているリカバリプログラムを置き換えるものです。ROMイメージはTWRP用の物が多いので、TWRPがないと書き込めません。自分は twrp-3.0.2-0-tilapia.img をダウンロードしてきました。 - ROMイメージ
tilapia用のイメージを探します。だいたい xda-developper にたどり着くようですが、1つは pure AOSP というものですが、6.0.1 の r46 ベースのようです。もう1つは OmniROM というもので、 6.0.1 の r68 ベースのもののようです。(自信なしw)
これらの記事からリンクされているROMイメージをダウンロードしておきます。 - Gapps
Google Playを始めとするデフォルトインストールアプリの詰め合わせのようです。Openソース版(かな?)がOpenGAPPSからダウンロードできます。PlatfomはARM、Androidのバージョンは6.0、VariantについてはNexus7(2012)はシステムパーティション(=リカバリ領域?)が650MBしかないので、最小限のnanoかpicoを選んでダウンロードします。
2.TWRPのインストール手順
音量ダウンボタンを押しながら電源ONしてブートローダを起動します。倒れたドロイドくんが出てくる画面(ブートローダ)になったら、PCと
$ fastboot flash recovery twrp-3.0.2-0-tilapia.img sending 'recovery' (9514 KB)... OKAY [ 1.182s] writing 'recovery'... OKAY [ 0.386s] finished. total time: 1.568s
としてTWRPを書き込みます。書き込んだら、ブートローダを以下の手順で再起動します。
(ここで通常のシステム起動を行うと、リカバリが書き戻されるので、再度最初からやりなおし)
$ fastboot reboot-bootloader rebooting into bootloader... OKAY [ 0.015s] finished. total time: 0.166s
ブートローダが起動したら、音量ボタンでリカバリモードを選択して電源ボタンで選択するとTWRPが起動します。
起動すると、画面上部に「Unmodified System Partition」と表示されて、システムパーティションの内容がTWRPが起動できるようになっていないことが表示されます。下の方の「Swipe to Allow Modification」のところをスワイプして、次へ進みます。(おそらく、この操作で常にTWRPが起動するようにシステムパーティションが修正されます)
次回以降、リカバリを起動すると上記の青字の部分は聞いてきません。(システムパーティションを書きなおしたりすると、デフォルトのリカバリに戻ったりするので、再度インストールする必要がある場合があるようです)
3.ROMイメージの書き込み
今回は、PCからROMイメージを書き込みます。
ブートローダ経由でTWRPを起動します。(ちなみに、充電ケーブルが挿さっていると、ブートローダで音量上下ボタンが効かないようです)
「Advanced」⇒「ADB Sideload」を選択します。ROMイメージを書き込みする場合は「Wipe Dalvik Cache」と「Wipe Cache」にチェックを入れて、「Swipe to Start Sideload」をスワイプすると、ダウンロード待ちになるのでPC側から
$ adb sideload omni-6.0.1-20160930-tilapia-HOMEMADE.zip
として、ROMイメージファイルを書き込みます。(zipファイルがROMイメージファイルのファイル名です。)
完了したら、Android側で「Back」を押して、もう一度「ADB Sideload」を選択します。今度は「Wipe Dalvik Cache」と「Wipe Cache」のチェックは外して、再度「Swipe to Start Sideload」をスワイプします。
$ adb sideload open_gapps-arm-6.0-pico-20170217.zip
として、Gapps を書き込みます。(zipファイルがGappsファイルのファイル名です。)
完了したら、「Reboot System」でNexus7を再起動します。