Android: カスタムAndroid4.0をNexus Sにインストール

10月19日に発表され、11月15日にソースが公開されたAndroid4.0を搭載した最初のモデルGallaxy Nexusが11月17日に英国で発売になったようです。日本でもNTTドコモから来月12月2日に発売されるようです。
Nexus S用のものはバイナリもソースもまだ公開されていませんが、kwibooという人がカスタムAndroid4.0をネットに公開したのを知り、インストールしてみました。
 → http://forum.xda-developers.com/showthread.php?t=1354263

( 以下、言語もタイムゾーンもインストール時のまま )

1) 起動後の画面 2) ホーム画面 3) アプリケーション画面
4) アプリケーション画面(続き) 5) ウィジェット画面 6) WiFiに接続
7) ブラウザでHTML5のウェブにアクセス 8) バージョン情報の表示

インストールした手順は以下の通りです。

1. Nexus S(crespo)用のrecovery-clockworkをダウンロードし、"recovery"パーティションに書き込む

ダウンロードURL: http://download.clockworkmod.com/recoveries/
ファイル: recovery-clockwork-3.0.0.0-crespo.img

(fastboot modeにする)
$ <ソースのルート>/out/host/linux-x86/bin/fastboot flash recovery recovery-clockwork-3.0.0.0-crespo.img
sending 'recovery' (3980 KB)...
OKAY [  0.556s]
writing 'recovery'...
OKAY [  0.580s]
finished. total time: 1.136s

[参考1]
fastboot mode にするには、
・ http://source.android.com/source/building-devices.html
Booting into fastboot mode
During a cold boot, the following key combinations can be used to boot into fastboot mode, which is a mode in the bootloader
that can be used to flash the devices:
  crespo → Press and hold Volume Up, then press and hold Power
または、
・ $ adb reboot bootloader

[参考2]
$ adb shell
shell@android:/ $ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00200000 00040000 "bootloader"  ← ブートローダ
mtd1: 00140000 00040000 "misc"
mtd2: 00800000 00040000 "boot"     ← "ブート" パーティション
mtd3: 00800000 00040000 "recovery"   ← "リカバリ" パーティション
mtd4: 1d580000 00040000 "cache"
mtd5: 00d80000 00040000 "radio"
mtd6: 006c0000 00040000 "efs"

[参考3]
clockworkのトップページと、開発者のKoushik Duttaさんのページ
http://www.clockworkmod.com/
https://plus.google.com/u/0/103583939320326217147/posts

2. カスタムAndroid4.0をダウンロードし、sdcardにコピーし、boot.imgを"boot"パーティションに書き込む

ダウンロードURL: http://forum.xda-developers.com/showthread.php?t=1354263
ファイル: ics-crespo-aosp-4.0.1-v2-unsigned.zip

$ mkdir tmp
$ cd tmp
$ unzip ../ics-crespo-aosp-4.0.1-v2-unsigned.zip
$ ls
META-INF  boot.img  system
$ <ソースのルート>/out/host/linux-x86/bin/adb push ics-crespo-aosp-4.0.1-v2-unsigned.zip /mnt/sdcard
(fastboot modeにする)
$ <ソースのルート>/out/host/linux-x86/bin/fastboot flash boot boot.img
sending 'boot' (2996 KB)...
OKAY [  0.401s]
writing 'boot'...
OKAY [  0.434s]
finished. total time: 0.835s

3. recovery-clockworkを使ってインストール

ブートローダのfastbootモードで、recoveryメニューを選択して"recovery"パーティションに書き込んだrecovery-clockworkを起動する。
以下の順にrecovery-clockworkのメニューを選択していく。

  install zip from sdcard
     ↓
  choose zip from sdcard
     ↓
  ics-crespo-aosp-4.0.1-v2-unsigned.zip
     ↓
  - Yes - Install ics-crespo-aosp-4.0.1-v2-unsigned.zip

この後、以下のメッセージが表示されて"system"への書き込みが開始される。

  Installing system files...

"system"への書き込みが終わった後、次のエラーメッセージが表示された。

  assert failed: write_raw_image("/tmp/boot.img", "boot")

エラーメッセージを見ると、fastbootでboot.imgを書き込むのではなく、/tmpにコピーしておいても良いのかも知れない。
以下の順でメニューを選択し、再起動する。

  - ++++Go Back++++
     ↓
    reboot

立ち上げ時に次の画面になり、アップグレードが終わると立ち上がります。




立ち上がった後、"adb shell"を実行してみました。

$ adb shell
root@android:/ # id    ← rootになっている
uid=0(root) gid=0(root)

root@android:/ # PATH=/data/local/bin:$PATH

root@android:/ # ls -F /data/local/bin   ← /data以下にはインストール前のファイルがそのまま残っている
bash*           busybox-armv6l* grep@           ifconfig@       tail@
busybox@        cp@             head@           ls@             vi@

root@android:/ # df
Filesystem             Size   Used   Free   Blksize
/dev                   172M    32K   172M   4096
/mnt/asec              172M     0K   172M   4096
/mnt/obb               172M     0K   172M   4096
/cache                 469M     2M   467M   4096
/efs                     6M     5M     1M   4096
/system                503M   263M   240M   4096
/data                 1007M   125M   881M   4096
/mnt/sdcard             13G   342M    12G   4096
/mnt/secure/asec        13G   342M    12G   4096

root@android:/ # ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:76 errors:0 dropped:0 overruns:0 frame:0
          TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5252 (5.1 KiB)  TX bytes:5252 (5.1 KiB)

wlan0     Link encap:Ethernet  HWaddr 78:D6:F0:EE:6A:CE  
          inet addr:192.168.1.52  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::7ad6:f0ff:feee:6ace/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:37 errors:0 dropped:0 overruns:0 frame:0
          TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5539 (5.4 KiB)  TX bytes:4289 (4.1 KiB)