2011年12月19日月曜日

IS01をfroyo化してみた。



IS01をfroyo化してみました。

以下手順をメモ。何か抜けてるところや間違ってるところがあるかもしれない。
Ubuntu11.04上で行いました。
以下の通りにやって、文鎮化したところで責任は取りませんので、自己責任でお願いします。

まずバックアップを取る。

[shell]# dd if=/dev/mtd/mtd0 of=/sdcard/mtd0.bin // bootのイメージ
# dd if=/dev/mtd/mtd2 of=/sdcard/mtd2.bin // recoveryのイメージ
# tar cvzf /sdcard/system.tgz /system // systemの中身
# tar cvzf /sdcard/data.tgz /data // dataの中身[/shell]


次にえぬえす工房 ≫ IS01関連の自作ファイルのまとめから、recovery_kitをダウンロード。

そして、まずrecovery_kitをrecoveryに焼いてみる。(最終的にはbootに焼くが、最初からbootに焼くと書き込みに失敗したとき、文鎮化する)
[shell]
$ adb push ~/Downloads/recovery_kit.img /sdcard/
$ adb shell
# su
# cat /proc/mtd // パーテションの確認?
# flash_image recovery_wr /sdcard/recovery_kit.img // recovery_wrにreccovery_kitを書き込む
[/shell]
書き込みが終わったら、
[shell]
$ adb reboot recovery
[/shell]
で最起動する。

すると、ISロゴの後に、左右が反転したrecoveryの画像が表示される。
何もしなければ、ずっとそれのループ。
左右が反転したreoveryの画像が表示され、消えたあとALT+Qを三回押し(要らないかもしれない、recoveryメニューに入れなかったら試してみればいい?)、ホームと電源ボタンを同時に押すと、recoveryメニューが表示される。


この時点でうまくいかなかった場合は、mtd2.binをrecoveryに焼く。
すると元に戻る。

ちゃんと焼けていたら、次はいよいよ、recovery_kitをbootに書き込む。そして、recoveryにmtd0.binを書き込む。
[shell]
# su
# cat /proc/mtd // パーテションの確認?
# flash_image boot_wr /sdcard/recovery_kit.img // boot_wrにreccovery_kitを書き込む
# flash_image recovery_wr /sdcard/mtd0.bin // recovery_wrにmtd0.binを書き込む。mtd0.binのままで書き込める?.imgに変えてやった。
[/shell]
そして、
[shell]
$ adb reboot
[/shell]
で再起動。recoveryメニューに入り、Boot recovery partitionを選ぶと、dounutが起動する。

あとはis01rebuild @wiki - バイナリからfroyoのバイナリを、http://www.72k.jp/is01/src/is01_0786.zipからsplit_bootimg.plとunubinize.plをダウンロードして、
[shell]
$ sudo apt-get install mtd-utils
[/shell]
でubinizeをインストールしたら、is01rebuild @wiki - インストールをちゃんと読んで、手順通りに実行する。

上手く行けば、froyoが起動する。

dounutに戻すときは、IS01 rooterのソースコードをau IS01 rooter - MobileHackerzからダウンロードして、解凍し、IS01root/res/raw/msm_nand_ex.koをpushする。
[shell]
$ cd ~/Downloads/is01root/res/raw/
$ adb push msm_nand_ex.ko
$ adb shell insmod /msm_nand_ex.ko // msm_nand_ex.koをinsmodする
$ adb shell /data0/backup0/system/bin/flash_image recovery_wr /data0/backup0/mtd2.bin // recovery_wrにmtd2.binを書き込む
[/shell]
あとは、
[shell]
$ adb reboot recovery
[/shell]
で最起動し、ちゃんと書き込めていれば、dounutが起動する。

Google+ Community