BB10向けページ

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

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コマンドを実行可能にしてくれる。
  • 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 領域へのカーネル書き込みを行う方法ログ

こちらを参照→http://codepad.org/op4mI1mv
ただし、現在IS01 Super Tunerの配布が終了されているため、バックアップは手動で行ってください。
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。