Android 2.3 (Gingerbread) for SHARP IS01インストール方法

今さらだけど、まさにメガネケースであったIS01に、命を吹き込むべく、IS01の2.3化にチャレンジしました。
メガネケースから2.3に昇華するか、文鎮に成り下がるか、賭けだ…ッ!

sourceforgeにAndroid 2.3 (Gingerbread) for SHARP IS01というページができたときは、衝撃でした。
2.2かと思ったら2.3かよ! sourceforgeが作られたってことは、ぽっくんが漫画読んでいる間に、サクっと2.3にできちゃうんですよね!
そう思っていましたけど、そんなことは無かった。
sourceforgeのページにインストール方法は書かれておらず、リンク先には文鎮対策ちゃんとしろよ!と書かれているものの、文鎮対策方法はどこに書いてあるのやら…。

迷い子を増やすだけかもしれないけど、僕の作業内容を書いておきましょう。
unixの基礎が分からないと、難しいかもしらん。

root化

何をするにも、まずはroot化が必要です。

準備

au IS01 rooter
au IS01 rooter アプリ本体(IS01root_002.apk)をインストールします。
このアプリはmarketにはありません。
Superuser
ChainsDDさん作。marketにもあるアプリなんですが、最新バージョンはうまく動きませんでした。su-2.3.6.1-cd-signedをインストールします。
adb(unixの)
Android SDKに含まれるツールで、コマンドラインからandroid端末に接続するのに使います。
windowsやcygwinで頑張ろうとしないで、大人しくunix環境でやるのがいいです。VirtualBoxubuntuを使いました。

adbの用意

ちょっと難しかったので、書いておきます。まずはjavaのインストール。

# apt-get install openjdk-6-jdk
# java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.3) (6b18-1.8.3-0ubuntu1~8.04.2)
OpenJDK Client VM (build 16.0-b13, mixed mode, sharing)
# wget http://dl.google.com/android/android-sdk_r15-linux.tgz
# tar xvzf android-sdk_r15-linux.tgz
# cd android-sdk-linux/tools/
# ./android update sdk -u 
(長時間掛かります)

platform-toolsの下にadbが作られます。
パスを通して置くのがいいでしょう。

VirtualBoxからUSBでつないだIS01が見えるようにするには、デバイス>USB>IS01を選択する必要があります。

# adb devices
List of devices attached 
SSHEY013198	device

devicesで認識していることを確認。

root取得

au IS01 rooterを起動し、指示にしたがって進めていきます。
step1ではエラーが出ますが、それで正常だそうです。
指示に従ってstep2, step3を実行。
動作確認。

adb shell
su
#

#はroot(管理者権限、何でもできる)のことですね。
参考:mobilehackerz

文鎮化対策

バックアップの作成とリカバリ領域を作成します。
ちゃんと書こうかと思ったけど、遙かデジタリアへ:IS01のバックアップとrecovery_kit導入を見たほうが、僕が書くよりわかりやすそうだったので割愛。
僕は素に戻せるように、カスタムカーネルではなく、バックアップしたboot.imgをリカバリ領域に作成しました。
文鎮化してもいいって人も、後々recovery_kitは必要になりそうなので、やったほうが無難。

それにしてもrecovery_kitのメニューに行くタイミングがシビアすぎます…

Android2.3化

やっとここまで来ました。あともう少しです。
ここまでの説明がsourceforgeにないからみんな迷うんですよ…w

Android 2.3 (Gingerbread) for SHARP IS01をダウンロードします。
2011/11現在、シェルスクリプトに誤りがある(と思う)ので、注意。
つまづいたらforumを覗いてみるいいです。

権限が飛んだりするのでunix環境(※)でやるのが一番ですが、面倒過ぎる。
僕は、windowsにadbが入っていたので、cygwinでやりました。おすすめはしません。
adb(android SDK)にパスを通して置くこと。
※例えば、virtual boxをにubuntuを入れて、android sdkを入れて、adbにパスを通して…とか。

以下に修正したシェルスクリプト(#kaibaの後が僕の修正)をのせておきます。
権限が飛んでしまったようなので、chmodしています。
シェルスクリプトを叩いてもいいですが、途中でエラーが起きても止まらないので、一つ一つ手で叩くのをおすすめします。

#!/bin/bash
adb kill-server
adb start-server
adb shell mount_data
adb shell mount_system

adb shell busybox rm -rf /data/data_ginger
adb shell busybox rm -rf /data/system_ginger

adb shell busybox rm -rf /data/android/gingerbread

adb shell busybox mkdir -p /data/android/gingerbread/system
adb shell busybox chown 1000.1000 /data/android/
adb shell busybox chown 1000.1000 /data/android/gingerbread
adb shell busybox cp -Rp /system2/lib /data/android/gingerbread/system/lib
adb shell busybox cp -Rp /system2/bin /data/android/gingerbread/system/bin
adb shell busybox cp -Rp /system2/etc /data/android/gingerbread/system/etc
adb shell busybox cp -Rp /system2/usr /data/android/gingerbread/system/usr

adb shell busybox mkdir -p /data/android/gingerbread/data
adb shell busybox cp -Rp /data/misc /data/android/gingerbread/data

#adb push system/ /data/android/gingerbread/system/
#kaiba
adb push system /data/android/gingerbread/system

adb push app/gapps-gb-20110120-signed/system /data/android/gingerbread/system
#adb push app/app/ /data/android/gingerbread/system/app
#kaiba
adb push app/app /data/android/gingerbread/system/app

adb push busybox /data/android/gingerbread/system/bin/busybox
adb shell busybox chmod 777 /data/android/gingerbread/system/bin/busybox

adb shell toolbox setprop persist.sys.timezone Asia/Tokyo

#kaiba
adb shell busybox chmod 755 /data/android/gingerbread/system/bin/*

adb push GBkernel.img /data/recovery/GBkernel.img
adb shell 'flash_image recovery /data/recovery/GBkernel.img'
adb reboot recovery

起動!

IS01 series
↓
recovery_kit
↓
暗転
↓
IS01 series
↓
ANDROID_ (首を左に傾けながら)
↓
ANDROIDロゴ (首を左に傾けながら)
↓
起動 (首を左に傾けながら)

となれば大成功。


やったね〜。

しかし…

(追記:2011/12/10 unix環境でやったらうまくいきました)
いざ、wifiに繋ごうと、アクセスポイントのパスワードを入力してもDHCPからのIPアドレスの取得でループしてしまう…。
wifiに繋げないIS01など、やはりメガネケースだ…。
(cygwin使ったのがよくなかった…?)
今後に淡く期待すると共に、僕も勉強がてら(勉強になるかわからんが…)見てみようかな。

しかしその2

Android1.6ではインストールできなかったあれやこれやをインストールするぞ!と、ストアに駆けこんで見ると…

お使いの端末はこのアイテムに対応していません。
orz
apkを別途持ってきてインストールすると「インストールされていません」とか言われてインストール出来ない!
adb install でも Failure [INSTALL_FAILED_MISSING_FEATURE]。
orz

感想

2.3のIS01を触ってみると、起動直後は縦横逆になっちゃったりするけど、意外とスムーズに動く。
今やAndroid端末は両手足で数えられない位たくさんありますが、IS01みたいにコテコテにカスタマイズしたものよりも、Androidそのまんまでいいから速やかに最新のOSにアップデートできて、最新のアプリをインストールできることの方が重要なんじゃないかな?
でも「アップデートってなんですか?」って人も沢山いるんですよね…。