BB10に関する資料
現在(2011/03/02時点)では、NV氏のIS01 Super Tunerの公開が終了されているため、それを使わない方法を羅列しました。
元は自分が躓いた所のメモ書きなので、不親切だったり間違ってたりするかもしれません。その辺は修正して欲しいです。
チュートリアルじゃなく、内容を理解して動かせる事を想定してます。
最低限の環境
Terminal Emuratorのインストールや、PC上からadb使って接続できるようになってるよな!
あと最低限のコマンドや権限についても知っているようならば、先に進むんだ!
逆に言うとそれが分からないとここのページの内容はちょっと厳しいかも。
基礎知識
先人様方への感謝
言わずもがな。提供された方法を利用させてもらってます。感謝の気持ちを忘れずに用いましょう。
出来る事
安全な物順。
- rootの取得
- is01ではセキュリティが厳しく、rootを取っただけで全ての事ができるわけではない。
内部のファイルを操作するとか、カーネルを焼きなおす以外の事が可能。
具体的には、テザリング、フルバックアップ等が可能になる。
- insmod解禁
- カーネルモジュールの読み込みが可能になる。msm_nand_ex.koを読む(=/system書き換えや、カーネル書き換えの)ために必要。
- /systemの書き換え
- アドホック、CPUクロックダウン、解像度変更、プリインストールされたソフトの削除、シャッター音削除等が可能になる。
- カーネルの書き換え
- 目玉としてはswapやcompcacheが可能、等。カーネルごとに出来る事はちょっと違う。
分かりにくそうな箇所?
- 文鎮化:起動しない、または起動しても何もできなくなり、ただの置物=文鎮と化す事。こうなったらどうしようもない。絶対避ける事。
- boot領域:is01が起動する際、一番最初に読み込みに行く場所。ここからis01は起動するので、ここが壊れると電源が入らない→文鎮化します^q^
- recovery領域:is01が、設定メニューからオールリセットをする時に使用するらしい場所。
絶対必要というわけでもないので、ここにカーネルを焼いておいて、rebootコマンド等で起動する方法が取られる。
であるため、ここを書き換えちゃった場合はオールリセットはするなよ!絶対するなよ!
- オールリセット(工場出荷状態に戻す):設定から実行できるオールリセットは、/system以下は戻してはくれない。カーネルを変更した場合も同様。
開発としては、そもそも変更できないように設計した部分なので、わざわざ「元に戻す」という処理を入れなかった、という所か。
各有志様のツールについて
- is01rooter:is01でrootを取るための作業を行ってくれるツール。BB09版と違い、rootを取ってくれる所まで。
- prepareとmodules_enabler_plus:中身の詳細は不明、insmodコマンドを実行可能にしてくれる。
- 入手先:NV氏のブログから。下のmodules_enabler+から。
- msm_nand_ex.ko:カーネルモジュール。insmodから読み込んで使う。読み込むと、各領域を書き換えるためのboot_wr、recovery_wr、system_wrを提供してくれる。cat /proc/mtdで確認可能。
- 入手先:単品での提供元無し?とりあえず、mobilehackerz氏のページから、IS01 rooter ソースコード (IS01root_002proj.zip)の中にあるmsm_nand_ex.koを取り出す感じで。
- recovery_kit:boot領域に仕込むためのカーネル。電源ボタンとホームボタンを押すと、recovery用メニューが動くようになる。何もしなければ、recovery領域のカーネルを起動してくれる。boot領域にこれだけ書き込んで再起動とかするなよ!絶対するなよ!
- 各カーネル:基本的にはrecovery領域に書き込む。理由は、例え失敗しても普通に立ち上げればbootから起動するので、文鎮化のリスクが少ないから。recovery_kitをbootにインストールすればさらに便利に。別にそのままbootに書き込んでもいいけど、下手なモノ読み込むと一撃で文鎮化しちゃうぞ☆
やった方が良い事
linuxの知識を得る
がんばれ。
各領域のバックアップ
やる事、やりたい事にも寄るけどきちんと取ってね!
818 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2011/01/15(土) 22:52:00 ID:7d5GvF85 [2/3]
815
神様じゃないけどrootとってbusybox入ってる状態で以下の作業しておけばいいんじゃないかな
bootのイメージ
# dd if=/dev/mtd/mtd0 of=/sdcard/mtd0.bin
recoveryのイメージ
# dd if=/dev/mtd/mtd2 of=/sdcard/mtd2.bin
systemの中身
# tar cvzf /sdcard/system.tgz /system
dataの中身
# tar cvzf /sdcard/data.tgz /data
ちなみに、出来たバックアップファイルを使う方法。
- boot、recoveryはddで出来たファイルをそのままflash_imageで当該領域に焼きこめばOK。
- tarのほうはそのまま置きなおせばOK?
具体的な方法:基礎
root化
マーケット等で
Superuserをインストール。
(rootを用いるアプリを管理してくれるソフト)
こちらの一番下、testというリンクから、IS01root_simple.apkを入手。
is01にインストールして、実行。step1→強制終了→再度実行しstep2→再起動を促す表示が出るが、気にせず再度実行→step3
これでrootを取る準備が出来てるはず。後は、rootが要求された際に、Superuserが教えてくれる。
再起動の度にリセットされるので、必要であれば再度Step1,2,3が必要。
BB10ではStep3は不要という説も有り。詳細不明。
確認:Terminal Emuratorで、suのコマンドを叩いて反応があればOK。
insmod解禁
root化した状態で、prepareと、modules_enabler_plusを実行する。
こちらも通常ならば再起動毎にリセット?
(busyboxが使えるようになっている事を前提とした)例:
/sdcardにprepareとmodules_enabler_plusを配置した場合
$ su
# cd /sdcard
# ./prepare
# ./modules_enabler_plus
Start.
Finish. Enjoy!
#
確認:
prepareは動作時なんのログも表示されず。
modules_enabler_plusはStart.Finish.Enjoy!と表示される。(うろ覚えなので微妙に間違ってるかも)
失敗する場合はrootを取っているか、実行方法は正しいか(カレントディレクトリからだと./prepare、./modules_enabler_plusって打つ必要がある)、
権限が付与されてるかをチェック。
/systemの書き換え
root化と、insmodを可能にした状態でmsm_nand_ex.koをinsmodで読み込む。
すると/proc/mtd/mtd10に、(system_wrという名前の)変更可能な場所が出来るので、
適当なディレクトリを作って、mountすればOK。この辺の作業の詳細はよくわからん。
(busyboxが使えるようになっている事を前提とした)例:
/sdcardにmsm_nand_ex.koを配置した場合
# insmod /sdcard/msm_nand_ex.ko
# mkdir /system.rw
# mount -o rw -t yaffs2 /dev/block/mtdblock10 /system.rw
#
後は、mount先(上の例のままだと/system.rw)にあるファイルを操作。
# cd /system.rw/app
# mkdir escaped_apps
# mv Launcher.apk ./escaped_apps
#
その後、再起動すれば元の/systemの方に反映されるみたい。
カーネルの書き換え
文鎮化のリスク高。バックアップはきちんと取ること!
root化と、insmodを可能にした状態で、msn_nand_ex.koをinsmodで読み込む。
/proc/mtd/mtd8にboot_wr、/proc/mtd/mtd9にrecovery_wrという名前で変更可能な場所ができる。
その後は書き換えたい方に対して、flash_imageを使ってファイルを焼きこめばOK。
flash_image [領域名] [焼きこみたいファイル]
(busyboxが使えるようになっている事を前提とした)例:
/sdcardに焼きたいファイルを配置した場合
# flash_image boot_wr /sdcard/[なにか].img
# flash_image recovery_wr /sdcard/[なにか].img
#
↑凄く乱暴な例なのでこのまま試さないように。動く確認を取らないと危険。
img以外のファイルも焼き込める。ので、ファイルを間違えないように。
確認:
とりあえずrecovery領域に焼いて、reboot recoveryからテストしてみるのが吉?
reboot recoveryはTerminal Emurator上からじゃ動かないので、
PC上からadbで接続した後、suしてreboot recoveryを行ったり、
AnReboot、Quick Boot (Reboot)をインストールして使う必要がある。
また、カーネルによっては、内部的にBB9に戻る事がある?
書き換え後はBB9用のis01rooterが動作したという話も。
具体的な方法:目的別
殆どは必要な操作を行った上で、こちらを参照する事でほぼ解決。→
root化で可能なこと
注意点としては、直接/systemやboot領域、recovery領域を弄る事は出来ないという事。上の「/systemの書き換え」参照。
テザリング
root化した状態でBarnacle Wifi Tetherを用いる。
解像度変更、またはCPUクロックダウン
msm_nand_ex.koをinsmodして、書き換え可能な領域をマウント、例えば/system.rwにマウントしている場合、
/system.rw/build.propをテキストエディタなどで開いて編集した後、再起動。
または専用ツールを使う。
プリインストールされたソフト削除、シャッター音削除等
msm_nand_ex.koをinsmodして、書き換え可能な領域をマウント、例えば/system.rwにマウントしている場合、
/system.rw/app内にあるソフトを削除したり退避したりする。
シャッター音等は/system.rw/media/audio/にあるので好きなように削除なり退避。
その後再起動。
swapやcompcacheを使う
msm_nand_ex.koをinsmodする。
bootを書き換えたい場合はboot_wrに、
recoveryを書き換えたい場合はrecovery_wrに対して、
swapやcompcacheが有効になっているカーネルイメージを焼きこむ。
その後再起動。
設定方法は割愛。各カーネルの作者さんのページなど参照。
IS01 BB1.0.10 でrecovery 領域へのカーネル書き込みを行う方法ログ
最終更新:2011年03月05日 16:24