HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2012/04/14

au IS01を修理に出したらファームウェアが BB16になって帰ってきた 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

ファーム BB16にアップデートした IS01を root化する。


一連の作業中は「電波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.~は実害は無いので無視しても大丈夫。

ファーム BB16にアップデートした IS01を root化する。


●9. IS01をリブートする。
 PC側のコマンドラインで adb rebootを実行する。

C:\> adb reboot


 IS01が再起動する。


●10. rootを取得します。
 IS01側で Terminal Emulatorを起動して 下記コマンドを実行する。

$ /data/root/getroot.sh


 実行後に何かキーを押して Terminal Emulatorを閉じる。

ファーム BB16にアップデートした IS01を root化する。


●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


ファーム BB16にアップデートした IS01を root化する。


●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カードを確認~]

ファーム BB16にアップデートした IS01を root化する。


 IS01側で Terminal Emulatorを起動して auを実行して スーパーユーザー権限になる事を確認する。

$ au ← 実行すると Superuserリクエストのダイアログが出るので「許可」する。
# ← プロンプトが#に変わって root権限になった事がわかる。


ファーム BB16にアップデートした IS01を root化する。
ファーム BB16にアップデートした IS01を root化する。

 ※ Superuser.apkをインストールしていないと auコマンド実行で Permission Deniedが出る。
ファーム BB16にアップデートした IS01を root化する。


●adb shellでも root権限になれます。
C:\> adb shell
$ au
au
Permission denied
$ au
au
#



●これは何で?
ファーム BB16にアップデートした IS01を root化する。


●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

バイナリエディタで下記の先頭部分を削除する。
ファーム BB16にアップデートした IS01を root化する。


●au Marketの最新版
http://marketappdl.kddi.com/auonemarket/AuOneMarket.apk



Tags: [au by KDDI], [Androidスマホ], [シャープ], [Android改造], [Root化]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

au IS01に ICSをインストールする
au IS01に ICSをインストールする

  au IS01で ICS(Ice Cleam Sandwitch)が動きます。

au IS01(SHARP)アンドロイド端末 au IS01 rooterを使って rootを奪取する
au IS01(SHARP)アンドロイド端末 au IS01 rooterを使って rootを奪取する

  Android端末 IS01のファーム(カーネル)を書き換え改造する。

au IS01(SHARP)アンドロイド端末 au IS01で Wi-Fi Ad Hocモードで通信できるようにする
au IS01(SHARP)アンドロイド端末 au IS01で Wi-Fi Ad Hocモードで通信できるようにする

  IS01を Wi-Fi接続を アドホック モード対応に改造する、RTL8192CU USB WIFI

au IS01(SHARP)アンドロイド端末で開発
au IS01(SHARP)アンドロイド端末で開発

  SHARPの Android端末 IS01で開発

au IS01端末でパケット通信を無効にする方法(IS NETと au.NETに対応)
au IS01端末でパケット通信を無効にする方法(IS NETと au.NETに対応)

  IS01でパケット通信(インターネット接続)を無効にする設定方法を説明する。

Google Android開発環境の構築のつもり
Google Android開発環境の構築のつもり

  Eclipse重い重い! Javaって相変わらずクソ重いね!

FON FONERA インターネット接続を無線LANで共有するシステム
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/