・2012/04/14
au IS01を修理に出したらファームウェアが BB16になって帰ってきた
(ファーム BB16にアップデートした IS01を root化する。)
Tags: [au by KDDI], [Androidスマホ], [シャープ], [Android改造], [Root化]
●IS01を修理に出したらファームウェアが BB16になって帰ってきました。
内部データも全て初期化されてクリーンな状態でしたので IS01(BB16)の root化に挑戦してみます。
ファームウェアのベースバンド バージョン 01.00.16(通称BB16)でも root化の手順をネットで探す事ができます。
検索で幾つかのサイトが出てきますが、下記のページが良くまとまっていました。
Developer'sCafe IS01 OSアップデート顛末記 - BB16でroot奪取!(BB16)
ここを参考にして私も手順をまとめてみました。(手順番号は上記サイトと合わせてあります)
下記手順で必要になるので Android Terminal Emulator Jack Palevich jackpal.androidterm
をインストールしておきます。
また、Superuser.apkも必要なのでインストールします。インストールは古いバージョンが良いとの事で今回は 2.3.6.3を使用しました。
su-2.3.6.3-cd-signed.zip
を解凍すると Superuser.apkが出てきます。
Superuser.apk 196,640 bytes 2011/06/17 21:36:28
MD5: 1ECD5A590FE54D5F1F6AE4F19F171A99
SHA1: D26FBF9895F3A12C59F8BF7051C94642379F1FEB
C:\> adb install -r Superuser.apk
1229 KB/s (196640 bytes in 0.156s)
pkg: /data/local/tmp/Superuser.apk
Success
一連の作業中は「電波OFFモード」にしておくと良いと思います。
●1. AndroidSDKをインストールしPCとIS01を接続可能にする。
~~ 省略 ~~
●2. bb12_s、bb13 をダウンロードし、解凍する。
庵怒露慰怒(あんどろいど)のサイト
から
bb12_s.7z
bb13.7z
をダウンロードして、解凍する。
●3. bb12_sフォルダ内の autoexec.shを編集する。
4行目の
setprop rild.libpath `getprop rild.libpath2`
を削除
25行目の
mount -o remount,rw~
の下に、下記を追加
mount -o remount,rw,suid,dev /dev/block/mmcblk0p2 /sbin
編集済みのファイル
を置いておきます。
※ 編集して保存する時は改行コードを LFで保存する事。
●4. bb13フォルダ内に、adbdファイルを作成する。
#!/system/bin/sh
/data/root/autoexec.sh
exec /sbin/adbd_
作成済みのファイル
を置いておきます。
※ 作成して保存する時は改行コードを LFで保存する事。
●5. bb13フォルダ内に、mount.shファイルを作成する。
#!/system/bin/sh
mount -o remount,rw /dev/block/mmcblk0p2 /data/ro
cat /data/root/adbd > /data/ro/adbd
chmod 0755 /data/ro/adbd
cat /sbin/adbd > /data/ro/adbd_
chmod 0755 /data/ro/adbd_
cat /data/root/autoexec.sh > /data/ro/autoexec.sh
chmod 0755 /data/ro/autoexec.sh
umount /data/ro
/data/root/busybox rm -rf /data/ro
ln -s /sbin /data/ro
/data/root/recache.sh
作成済みのファイル
を置いておきます。
※ 作成して保存する時は改行コードを LFで保存する事。
●6. bb12_sと bb13のフォルダを、(Android開発環境の) platform-toolsへコピーする。
●6. bb12_sフォルダのコマンドラインで install.cmdを実行する。
まず、IS01を USBケーブルで PCに繋げ、adb devicesで adb接続を確認します。
C:\Android\android-sdk\platform-tools\bb12_s> adb devices
List of devices attached
SSHAB001234 device ← 接続を認識している
接続を認識している確認が取れたら install.cmdを実行します。
suコマンドの種類は 0を選択します。
"Press any key to reboot"で Ctrl+Cで中断します。(続行しちゃ駄目)
C:\Android\android-sdk\platform-tools\bb12_s> install.cmd
[0] : SuperUser
[1] : 無条件
[2] : suhax
suコマンドの種類を選択 > 0 ← 0を選択する
161 KB/s (2589 bytes in 0.015s)
594 KB/s (9516 bytes in 0.015s)
1883 KB/s (1596892 bytes in 0.828s)
16 KB/s (267 bytes in 0.015s)
1884 KB/s (2170459 bytes in 1.125s)
0 KB/s (97 bytes in 1.000s)
1497 KB/s (71900 bytes in 0.046s)
7 KB/s (126 bytes in 0.015s)
0 KB/s (312 bytes in 1.000s)
1639 KB/s (26228 bytes in 0.015s)
0 KB/s (68 bytes in 1.000s)
"Press any key to reboot"
続行するには何かキーを押してください . . . ← Ctrl+Cで中断する
バッチ ジョブを終了しますか (Y/N)? y ← yで中断する
●7. bb13フォルダのコマンドラインで下記コマンドを実行する。
C:\Android\android-sdk\platform-tools\bb12_s> cd ..\bb13
C:\Android\android-sdk\platform-tools\bb13>
C:\Android\android-sdk\platform-tools\bb13> adb push adbd /data/root
0 KB/s (57 bytes in 1.000s)
C:\Android\android-sdk\platform-tools\bb13> adb push mount.sh /data/root
0 KB/s (362 bytes in 1.000s)
C:\Android\android-sdk\platform-tools\bb13> cmd.cmd
事前にオールリセットを行う事をお勧めします。
メーカ保証外の行為です。
このスクリプトが原因で文鎮化する可能性があります。
メモリのアドレスによりできない場合があります。
全て自己責任の元に行ってください。
超能力はないのでできないだけ言われても何も言えません。
できない場合は素直に諦めてください。
それでも行いますか?(y/N) > y ← yで続行する
ファイルの転送が終了しました。
log.txtを確認し、転送失敗している場合は一度閉じて再度やり直してください。
次にsystem権限を奪取するためにディレクトリを操作します。
一部のディレクトリで権限不足のためエラーになりますが無視してください。
元に戻す場合はfinish.cmdを実行する必要があります。
BB12の場合はここでコマンドプロンプトを閉じてください。
続行するには何かキーを押してください . . . ← 何かキーを押して続行する
system権限奪取のための下準備が終わりました。
再起動後にTerminal Emulatorがインストールされます。
何かキーを押すとIS01が再起動します。
続行するには何かキーを押してください . . . ← 何かキーを押して続行する
IS01が再起動して通常通りの画面になる。
●8. IS01の IDを確認する。
IS01側で Terminal Emulatorを起動して idを実行して下記と同じ表示を確認する。
$ id
uid=1000(system) gid=1000(system)
そして、下記コマンドを実行する。
$ /data/root/chcache.sh
・rm failed for recovery.~は実害は無いので無視しても大丈夫。
●9. IS01をリブートする。
PC側のコマンドラインで adb rebootを実行する。
C:\> adb reboot
IS01が再起動する。
●10. rootを取得します。
IS01側で Terminal Emulatorを起動して 下記コマンドを実行する。
$ /data/root/getroot.sh
実行後に何かキーを押して Terminal Emulatorを閉じる。
●11. rootを取得するためのコマンドを入力します。
まず IDを確認します。
IS01側で Terminal Emulatorを起動して 下記コマンドを実行する。
# id
uid=0(root) gid=1000(system)
・プロンプトの#と uid=0でrootを確認します。
IS01側で 下記コマンドを実行します。
# chmod 777 /data/root/mount.sh
# /data/root/mount.sh
●12. 終了処理を実行します。
PC側のコマンドラインで finish.cmdを実行します。
"Press any key to reboot recovery"で Ctrl+Cで中断します。(続行しちゃ駄目)
C:\Android\android-sdk\platform-tools\bb13>finish.cmd
"Press any key to reboot recovery"
続行するには何かキーを押してください . . . ← Ctrl+Cで中断する
バッチ ジョブを終了しますか (Y/N)? y ← yで中断する
PC側のコマンドラインで adb rebootを実行する。
C:\> adb reboot
IS01が再起動する。
●13. root化確認
上記実行後に、IS01は再起動しますが、
[IS series]ロゴ
ロゴ一瞬消える
[IS series]ロゴ
ロゴ消える
{ここで "Push power button to skip root."と出る}→ とりあえず成功
[android]アニメーション ロゴ
[auICカードを確認~]
IS01側で Terminal Emulatorを起動して auを実行して スーパーユーザー権限になる事を確認する。
$ au ← 実行すると Superuserリクエストのダイアログが出るので「許可」する。
# ← プロンプトが#に変わって root権限になった事がわかる。
※ Superuser.apkをインストールしていないと auコマンド実行で Permission Deniedが出る。
●adb shellでも root権限になれます。
C:\> adb shell
$ au
au
Permission denied
$ au
au
#
●これは何で?
●IS01の元々の ROMイメージをバックアップする。
C:\> adb shell
$ cat /proc/mtd
dev: size erasesize name
mtd0: 00b00000 00020000 "boot"
mtd1: 00500000 00020000 "cache"
mtd2: 00b00000 00020000 "recovery"
mtd3: 00180000 00020000 "splash"
mtd4: 00b40000 00020000 "ipl"
mtd5: 10000000 00020000 "system"
mtd6: 00300000 00020000 "log"
mtd7: 06420000 00020000 "userdata"
au
mkdir /sdcard/image
dd if=/dev/mtd/mtd0 of=/sdcard/image/boot.img
dd if=/dev/mtd/mtd2 of=/sdcard/image/recovery.img
dd if=/dev/mtd/mtd3 of=/sdcard/image/splash.img
dd if=/dev/mtd/mtd4 of=/sdcard/image/ipl.img
dd if=/dev/mtd/mtd5 of=/sdcard/image/system.img
# mkdir /sdcard/image
mkdir /sdcard/image
# dd if=/dev/mtd/mtd0 of=/sdcard/image/boot.img
dd if=/dev/mtd/mtd0 of=/sdcard/image/boot.img
22528+0 records in
22528+0 records out
11534336 bytes (11.0MB) copied, 8.123413 seconds, 1.4MB/s
# dd if=/dev/mtd/mtd2 of=/sdcard/image/recovery.img
dd if=/dev/mtd/mtd2 of=/sdcard/image/recovery.img
22528+0 records in
22528+0 records out
11534336 bytes (11.0MB) copied, 7.998154 seconds, 1.4MB/s
# dd if=/dev/mtd/mtd3 of=/sdcard/image/splash.img
dd if=/dev/mtd/mtd3 of=/sdcard/image/splash.img
3072+0 records in
3072+0 records out
1572864 bytes (1.5MB) copied, 2.254853 seconds, 681.2KB/s
# dd if=/dev/mtd/mtd4 of=/sdcard/image/ipl.img
dd if=/dev/mtd/mtd4 of=/sdcard/image/ipl.img
23040+0 records in
23040+0 records out
11796480 bytes (11.3MB) copied, 8.540887 seconds, 1.3MB/s
# dd if=/dev/mtd/mtd5 of=/sdcard/image/system.img
dd if=/dev/mtd/mtd5 of=/sdcard/image/system.img
524288+0 records in
524288+0 records out
268435456 bytes (256.0MB) copied, 187.591560 seconds, 1.4MB/s
# ls -l /sdcard/image
ls -l /sdcard/image
----rwxr-x 1 system sdcard_rw 11534336 Apr 14 07:03 boot.img
----rwxr-x 1 system sdcard_rw 11796480 Apr 14 07:04 ipl.img
----rwxr-x 1 system sdcard_rw 11534336 Apr 14 07:04 recovery.img
----rwxr-x 1 system sdcard_rw 1572864 Apr 14 07:04 splash.img
----rwxr-x 1 system sdcard_rw 268435456 Apr 14 07:07 system.img
#
●ダウンロードした ISTweakが変?
●修正前
ISTweak.apk (140,270 バイト)
MD5: 34200FE2216562ACDE27B9F665846EB3
SHA1: 4CF3A56BAC3760C095546EE3C1E601BC303A2D06
●修正後
ISTweak.apk (140,128 バイト)
MD5: 128B92A65B6DC3FC8F6622CCF52A0796
SHA1: 551AF51314B1C7926401459473B9DF3A1E426424
バイナリエディタで下記の先頭部分を削除する。
●au Marketの最新版
http://marketappdl.kddi.com/auonemarket/AuOneMarket.apk
Tags: [au by KDDI], [Androidスマホ], [シャープ], [Android改造], [Root化]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
au IS01に ICSをインストールする
au IS01で ICS(Ice Cleam Sandwitch)が動きます。
au IS01(SHARP)アンドロイド端末 au IS01 rooterを使って rootを奪取する
Android端末 IS01のファーム(カーネル)を書き換え改造する。
au IS01(SHARP)アンドロイド端末 au IS01で Wi-Fi Ad Hocモードで通信できるようにする
IS01を Wi-Fi接続を アドホック モード対応に改造する、RTL8192CU USB WIFI
au IS01(SHARP)アンドロイド端末で開発
SHARPの Android端末 IS01で開発
au IS01端末でパケット通信を無効にする方法(IS NETと au.NETに対応)
IS01でパケット通信(インターネット接続)を無効にする設定方法を説明する。
Google Android開発環境の構築のつもり
Eclipse重い重い! Javaって相変わらずクソ重いね!
FON FONERA インターネット接続を無線LANで共有するシステム
IS01を購入したのをきっかけに始めました。
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2012 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/android/is01_root_bb16/