2013年2月22日金曜日

早速Ubuntu 12.10 Touch Previewをインストールする

CanonicalからUbuntu Touchのプレビュー版(MWC2013でのデモ用イメージ)が公開されました。対象は、Nexusブランドの4機種、Galaxy Nexus, Nexus 4, Nexus 7, Nexux 10です。

このあたりも見越してGalaxy Nexusの中古を入手してあったので、早速入れよう... としたのですが、説明はあくあまでUbuntuを使っての作業が書かれているのみ。

しかし、カスタムROMやらGalaxy NexusならGoogle公式最新版イメージに置き換えたことのある人ならご存知の通り、adbとfastbootさえあれば、bootrom unlockしたNexus端末にどんなROMを入れることもできることはご承知の通り。

そんなわけで、Mac OS X(たぶんWindowsでも同じ)から、Ubuntu Touchをインストールする手順を以下に。

1. イメージ等、必要なファイルの入手

今回公開されたイメージファイルは、ここにあるものがすべてです。それぞれ、機種に対応するコードネームがついたものがあります。それぞれ、
  • Galaxy Nexus - maguro
  • Nexus 4 - mako
  • Nexus 7 - grouper
  • Nexus 10 - manta
です。今回はGalaxy Nexusなので、ファイル名にmaguroが入っているものすべてを適当な場所にまとめてダウンロードしておきます。慎重な人は、md5ファイルもとって、md5コマンドで正常にダウンロードできたかどうかをチェックしてもいいでしょう。今回は、以下の4つ

  • quantal-preinstalled-armel+maguro.zip
  • quantal-preinstalled-boot-armel+maguro.img
  • quantal-preinstalled-recovery-armel+maguro.img
  • quantal-preinstalled-system-armel+maguro.img
です。

2. adbとfastbootの準備

これは、Android SDKのなかに入っています。Mac版は、platform-toolsの下に入っているので、適当にイメージと同じ場所に移動してしまっていいでしょう。

3. bootrom unlock

すでにやってある人は気にしなくていいのですが、初めての人は、以下の作業をしてください。
  1. いったん電源をオフにします
  2. 電源ボタンと音量ボタン上下の3つのボタンを同時に押して起動します
  3. 端末とMacやPCをUSB接続します
  4. ./fastboot oem unlock  のコマンドをPC側から実行します

4. 稼働中のAndroidのバックアップ

もう戻らないよ、という人や、まっさらからAndroidイメージを書き戻しても惜しくない人はこれをやらなくてもかまわないですけれど、Androidに戻したくなったときのために、現状のすべてをバックアップしておきます。ただ、なにやらGoogle Playに怪しげなバックアップツールがいろいろありますが、どれもsecroid.comで調べてみると、「危険度HIGH」で、広告屋やらPayPalなどへ情報を送信しています。使わないのが無難ではないでしょうか。

ICS以後はadbコマンドでフルバックアップがとれるので、以下の通り、簡単に済ませましょう。

その前に、「USBデバッグ」を有効にしなくてはいけません。これは、設定アプリで情報を開いて、ビルド番号のところを7回連打すると隠されていた「開発者向けツール」の項目が現れ、そこのなかに設定があります。「USBデバッグを有効にする」にチェックを入れておきます。そして、そのあと、MacやPCにUSB接続をすると、Android画面に(4.2以後なら)USBデバッグの許可をするかの確認が出ます。コンピュータのハッシュも出ますが、まぁそういうことで、「許可」します。そのあとで、adbで以下のおまじないをしておくといいかもしれません。
$ ./adb kill-server; ./adb start-server
そのあとおもむろに、
$ ./adb backup -f android422.ab -apk -shared -all -system
とやって、android422.abなど、適当なファイル名でバックアップを取得します。これは、あとでリストアするときに使えます。

5. 各種ファイルの書き込み

まず、Androidが普通に起動している状態にしておきます。USBデバッグは有効にしておいてください。そこで、adbコマンドでzipファイルを/sdcardに書き込みます(内部のフラッシュメモリですが、データ保存場所としてそういう名前のフォルダがあると考えてください)。
./adb push quantal-preinstalled-armel+maguro.zip /sdcard/autodeploy.zip
後ろのファイル名は固定です。この名前でなければだめです。

そのあと、端末を再起動してイメージを一気に書き込み、最後に再起動する作業をします。
./adb reboot bootloader
./fastboot flash system quantal-preinstalled-system-armel+maguro.img
./fastboot flash boot quantal-preinstalled-boot-armel+maguro.img
./fastboot flash recovery quantal-preinstalled-recovery-armel+maguro.img
./fastboot reboot
これで、Googleロゴが出たまま固まっていると思います。失敗したかと焦ると思いますが、なにやらイメージのリサイズとやらで、10分以上待たされるのだそうです。Galaxy Nexusだと、もしかすると30分とか平気でかかるかと思います(と書いているのは、まだ起動待ち状態だから)。

 というわけで、こちらはまだGoogleロゴの画面のままなので、なにがどうなっているかさっぱりわかりません。当面寝かせておいて、起動したらまた追記します。

おまけ:Androidの復元

4.2.2のイメージは、Googleの開発者向けサイトに置かれています。Galaxy Nexsusなら、maguroの項目を見て、4.2.2の「Link」をクリックすればイメージをzipにしたものが落ちてきます。あとは、これを展開したなかにある./flash-all.sh を実行してやれば、イメージの書き込みが終わり、まっさらな状態で再起動します。その後、最初の言語の選択とGoogleアカウントでのログインを終えたあと、クラウドからの復元のチェックを外しておいて先に進んで、ホーム画面にたどり着いたら、再びUSBデバッグを有効にしたあと
./adb restore android422.ab
のようにファイル名を指定してバックアップから戻せば元通りです。

おまけその2:石化してしまった場合の対処

1日置いたけど先に進まない、もうだめ、というときには、落ち着いて裏蓋を外し、電池を抜きます。深呼吸しながら10数えて再び電池を入れ直し、裏蓋をします。その後、おもむろに電源ボタン+ボリューム上下ボタンで起動してやれば、リカバリモードに入ることができます。ここで心配ならば、上のAndroidの復元をすれば元通りになります。