仙石浩明の日記

2011年5月18日

nook color を買って CyanogenMod 7 をインストールしてみた 〜 レンガ化リスクが無い PC のようなタブレット端末 tweets

ハワイ滞在中、 泊ったホテルのすぐ近くに米国最大の書店チェーン Barnes & Noble があった。 当然しばしば立ち寄ったが、 電子ブックリーダ nook のデモ機を店内の一番目立つ場所 (入口を入ってすぐのところ) に並べて説明員が張り付いていて、 いつ訪れても、 来店する人々に nook を勧めたり説明したりしていた。 昨年 (2010年4月) 訪れたときもこういう状態だったので、 もうかれこれ一年以上やっているのだと思うが、 今回は昨年と違って、 nook color がラインアップに加わっている。

電子ブックリーダというと、 初代 nook や Kindle や BORDERS (米国二番手の書店チェーン, 経営再建中) の kobo eReader など、 電子インク (E Ink) をディスプレイに用いた機種が思い浮かぶが、 nook color は普通の液晶ディスプレイ。 電子書籍を読むなら圧倒的に電子インクの方が適していると思うが、 あいにく日本では電子書籍の普及は今一つだし、 近い将来普及が進むかというとなかなか難しそう (そもそも普及に懸ける書店の意気込みがぜんぜん違う)。 だから (英語がニガテな私は) 電子インクなブックリーダにはあまり興味がなかった (自炊は大変そう)。 でも、 nook color は液晶ディスプレイなので Android タブレットとして使えそう。

店頭デモ機をいじってみると、 そのままでも WWW ブラウザで日本語表示できるし、 ちょっと検索してみるとハックもいろいろ進んでいる (Android 3.0 honeycomb も動く) ようだ。 しかも $249 と Android タブレットとしてみると格安。 同じく 7インチ液晶の Galaxy Tab (382g) よりは重いが、 9.7インチ液晶の iPad2 (601g, ずっしり重くて私には無理) よりは軽い 450g.

というわけでハワイ滞在最終日に衝動買い (^^;)。 ちょうど円高が進んでいる昨今でもあるし〜 (言い訳)。 説明員のお姉さんに、 コレちょうだいと言うと、 すぐカウンターの下から (そんなところに在庫を入れていたのか) 取り出してレジへ。 ハワイ州の Sales Tax 4.710% が加算されて $260.73 (約 21000円)。 そのままスーツケースに放り込んで帰国。

で、 まず root 化。 Auto-Nooter 3.0.0 を使うと、 root 権限の取得から各種ソフトウェアのインストールまで、 全自動でやってくれるらしい。 Auto-Nooter をダウンロードして、 micro SD カードに書込み、 nook color に挿入して USB ケーブルで PC とつなぐと、 勝手にブートして勝手に全部やってくれる。 なんて簡単な...

ところが!

簡単すぎる操作手順には落とし穴が付き物。 USB ケーブルをつないでも、 電源がオンになった気配が全く無かった (画面は消えたままだし、 LED 等の表示装置は元々無いし、 ハードディスク等の可動部分もないので何の音もしない) ので、 これはきっと USB ケーブルをつないだだけでは電源がオンにならなかったのだろうと、 思わず電源スイッチを長押ししてしまった。 ところが、 実はこのときすでに root 化 & インストールが進行中だった。 つまり、 電源スイッチを長押ししたことによって強制電源断となる。

システム書き換え中に電源断すれば何が起きるかなんて火を見るより明らかなわけで、 (micro SD カードを抜いても) 立ち上がらなくなってしまった orz。 これはもしかしてレンガ状態? 電源を入れると、 「Touch the Future of Reading」 が表示された後、 中央に nook の 「n」 のロゴと、 下部に 「Contains Reader® Mobile technology by Adobe Systems Incorporated.」 と表示された画面のまま止ってしまう。 これは Android の起動アニメーションが表示される前の画面なので、 /init の実行前 (あるいはカーネルの起動前?) に問題が起きたのだと思われる。

後日、 Auto-Nooter の中身を調べてみると、 micro SD カードから /system と /data と /tmp へ、 各種ファイル (/system/app/Superuser.apk や /data/app/SoftKeys_3.06.apk など) をコピーした後、 /tmp へコピーしたスクリプト /tmp/scripts/Nooter を実行している。 このスクリプト Nooter は 「chmod 4775 su」 などを行なった後、 uRamdisk (initramfs) をいったん展開して default.prop などを書き換えた後、 uRamdisk を作り直す。
おそらく、 強制電源断を行なったとき Nooter が uRamdisk の再作成中だったのではないか。 uRamdisk の内容が壊れれば /init を起動できなくなる。 また、 再度 Auto-Nooter を micro SD カードから起動しても、 Nooter は uRamdisk を新たに作ってくれるわけではないので、 uRamdisk は壊れたままとなる。
とはいえ、 Auto-Nooter 自体は正常に起動している (ウンともスンとも言わないので、 とても 「正常」 には見えないが) ので、 「レンガ状態」 と呼ぶのは不適切かも。

開封して数時間でいきなりレンガ化か〜 (奇しくも Adobe の文字が画面に ;_;) と愕然としながらも、 Flash back to clean stock ROM と書いてあるページを見つけたので試してみることにした。

曰く、 「リブートカウンタ /rom/devconf/BootCnt が 8 に到達すると、 工場出荷時状態へのリセットが行なわれる」。 つまり、 なんらかの方法で BootCnt を 8 にして起動すれば、 フラッシュメモリの内容が工場出荷時状態に書き戻されるらしい。

BootCnt は正常起動できなかった回数を数えるカウンタで、 電源オン時にブートローダ u-boot.bin によってカウントアップされる。 正常起動できたときは /init.rc から呼び出される /system/bin/clrbootcount.sh によって BootCnt はゼロクリアされる。 正常起動できなかったときは、 ゼロクリアされないので、 カウントアップされたままになる。

つまり連続して起動に失敗した回数が BootCnt に保存される。 電源オン時に BootCnt が 8 ということは、 過去 8回連続で起動に失敗したことを意味するわけで、 nook color は自身が再起不能状態になったと自己診断して、 フラッシュメモリ (/system パーティション) の再インストールを行なうというわけ。 nook color re-flash its /system partition

起動途中で電源ボタンを押し続けて強制電源断を行なうと、 ゼロクリアされる前に電源オフになるので、 これを 8回繰り返せば BootCnt の値を 8 にできる。 強制電源断を 8回も行なうなんて、 ずいぶん乱暴な方法だなと思いつつ、

電源ボタンを押して電源投入
  ↓
「Welcome to the future of reading」 が表示されたらすぐに電源ボタンを長押し
  ↓
「Touch the Future of Reading」 が消えた後、電源がオフになる

以上の操作を 8回繰り返した。 すると、 唐突に再インストールの画面が現れた! →

再インストールが終わるまで待つこと数分、 無事起動するようになった。 念のため、 「Erase & Deregister Device」 を行なってユーザ領域も初期化。 これで完全に工場出荷時状態 (バージョン 1.1.0) に戻った。

レンガ状態から復旧させることができた安堵感から BootCnt++ と思ったのだが、 冷静になってから考えて直してみると、 NookColor は micro SD カードからブートできるわけで、 クリーンインストールを行なえるような micro SD カードを用意しておけば、 BootCnt などに頼らなくても同じことが可能。 レンガ化リスクが全く無い安全な端末と言える。

というわけで、 開封時の振出しに戻ったので root 化に再度挑戦。 こんどは慎重に Auto-Nooter の動作を見守る (見ていただけ)。 ウンともスンとも言わない状態を見守り続けるのは、 「いらち」な私には少々つらいが、 待つこと数分、 無事 root 化された nook color が立ち上がった。 後は Auto-Nooter 3.0.0 の説明に書いてある通り、 YouTube アプリを使って Gmail アカウントにログインし、 続いて Gmail アプリで同期を行なうと、 Android マーケットが利用できるようになる。

多くの Android 端末にとって 「root 化」 が Android OS の脆弱性を突いた root 権限 「奪取」 であるのに対し、 nook color の場合は micro SD カードからブートしてシステムを書き換える、 いわば無理のない 「自然な」 方法。 「root 化」 と呼ぶのは適切ではないかも。

root 化されたといっても外見は元の nook color のままなので、 電子書籍を買ったり読んだりするための操作体系。 Android タブレットとして使おうとすると少々使いにくい。 致命的なのは日本語を入力できないこと。 「OpenWnn flick 対応版」 をインストールしてみたのだが、 なぜか入力方法を OpenWnn へ切り替えることができない。 Android OS をベースにした電子ブックリーダって、 Home アプリを入れ替えて操作体系を変更しただけのものと思っていたのだが、 Home アプリだけでなく OS の部分にも手を入れてあるようだ。

nook color 本来の操作体系に未練はなかった (純 Android 化しても電子書籍を買ったり読んだりすることはできる) ので、 ひと思いに CyanogenMod をインストールしてしまうことにした。

まず ROM Manager をインストールし、 「ClockworkMod recovery を導入」。 いちおう、 「現在のROMをバックアップ」 してから、 CyanogenMod 7 for Barnes & Noble Nook Color を書込んだ。 起動すると、 全くフツーの Android 2.3 gingerbread タブレットに生まれ変わった。 電子ブックリーダだったころの面影は全く残っていない。 Google アカウントの設定を行なえば、 Android マーケットも利用できるようになる。

他の Android 端末だと ClockworkMod recovery を使ったインストールが一番手軽なので、 つい ClockworkMod recovery を使ってしまったが、 nook color は micro SD カードから任意の OS をブートできるので、 「インストール SD カード」 のようなものを作ってインストールする方が、 より簡単で安全と思われる。 ちょうど PC に OS をインストールするときに、 「インストール CD-ROM」 を使うのが一般的であるように。 この意味で、 nook color は 「より PC に近い」 タブレット端末と言えそう。

Filed under: Android,Hawaii — hiroaki_sengoku @ 07:43

No Comments »

No comments yet.

RSS feed for comments on this post.

Leave a comment