• 追加された行はこの色です。
  • 削除された行はこの色です。
&tag(Android);

#contents

*SH-03C の sdboot、root取得方法 [#o46ba6d9]

LYNX 3D SH-03C (Android 2.2 ビルド番号 02.01.01) を sdboot化し、rootを取得する方法の覚え書きです。

&color(RED){※ 以下の作業を行うと、DoCoMoおよびメーカーの保証対象外となります。また、これにより発生するいかなる事態に対しても、筆者はその責任を負いません。ご利用は自己責任にてお願いします。};

**準備 [#y542354a]
+PC に [[Android SDK>http://developer.android.com/sdk/]] をインストール。
+必要なファイルを用意。
--[[こちら>http://ftake.xrsp.net/blog/2012/02/21/482]] から [[how2NANDUNLOCK_sh03c.zip>http://ftake.xrsp.net/blog/wp-content/uploads/how2NANDUNLOCK_sh03c.zip]] をダウンロードし、解凍。
--[[sdboot>http://www1.axfc.net/uploader/Sc/so/302287]] をダウンロード。(上記アーカイブに含まれる sdboot_r2 でも可。ただし、このページに記載の手順とは若干違うので readme に従うこと。)
+SHBreakV2、ISTweak、ae2break、busybox、flash_image、ubi-sh03c-bootkit.img、sdboot.zip(''zipのまま'')を1つのフォルダに集めておく。
--必須ではないが、ファイルを PC から SH-03C に転送するときに楽。
+ダウンロード・解凍したファイルの中から、SHBreakV2、ISTweak、ae2break、busybox、flash_image、ubi-sh03c-bootkit.img、sdboot.zip(''zipのまま'')を1つのフォルダに集めておく。
--ae2break は フォルダ BB_02_01_00 のもの。(ビルド番号 02.01.01の場合)
--ubi-sh03c-bootkit.img は、フォルダ bootkit-sh03c_rev2 または bootkit-sh03c_overclock_rev2 のもの。
--ubi-sh03c-bootkit.img は、フォルダ bootkit-sh03c_rev2 または bootkit-sh03c_overclock_rev2 のどちらでも可。
--この作業は必須ではないが、ファイルを PC から SH-03C に転送するときに楽。
--各ファイルの簡単な説明は[[こちら>#z4823772]]。
+SH-03C を USBデバッグモードにする。~
設定 > アプリケーション > 開発 > "USBでバッグ" を ON。

**一時 root の取得 [#j5b27013]
+WiFi接続を切る((WiFiがONのまま一時rootを取ると、rootを外した時にWiFiが繋がらないなどの不具合が出る可能性がある。))。~
+SH-03C の WiFi接続を切る((WiFiがONのまま一時rootを取ると、rootを外した時にWiFiが繋がらないなどの不具合が出る可能性があるため。))。~
設定 > 無線とネットワーク > "Wi-Fi" を OFF。
+SH-03C と PC を USB で接続。
+コマンドプロンプト(ターミナル)を起動。
+SHBreakV2 と ISTweak をインストール。
+PC のターミナル(コマンドプロンプト)を起動。
+PC から SH-03C に SHBreakV2 と ISTweak をインストール。
 > cd ファイルを保存したディレクトリ
 > adb install SHBreak.apk
 > adb install ISTweak.apk
+以下、SH-03C での操作。
+SH-03C で 一時root を有効化。
++SHBreakV2 を起動し"Break!"をタップ。英語のアラートを"OK"で抜け、"閉じる"。
++ISTweak を起動し"suコマンドを有効にします"をタップ。

以上で、一時的に root 権限を取得出来ます。

**bootkit からの起動準備(リカバリイメージ書き換え) [#j89ec9d0]
(ae2brek_for_sh03c 付属の readme.txt を参照)
+必要なファイルを SH-03C に転送。
 > adb push ae2break /data/local/
 > adb push busybox /data/local/
 > adb push flash_image /data/local/
 > adb push ubi-sh03c-bootkit.img /sdcard/
+ADBで接続し、シェルを準備、root権限を取得。
 > adb shell
 $ au
+転送したファイルに実行権限を与える。
 # chmod 555 /data/local/ae2break
 # chmod 555 /data/local/busybox
 # chmod 555 /data/local/flash_image
+NANDロックを解除する。
 # stop mediayamaha
 # kill -9 `/data/local/busybox pidof mediayamahaserver`
 # /data/local/ae2break
+オリジナルのブートイメージをバックアップ。
 # mkdir /sdcard/NANDUNLOCK
 # cat /dev/mtd/mtd2ro > /sdcard/NANDUNLOCK/recovery_org.img
~必要に応じて、"/sdcard/NANDUNLOCK/recovery_org.img"を PC に転送(( > adb pull /sdcard/NANDUNLOCK/recovery_org.img))して保存しておく。
+リカバリイメージを bootkit に書き換える。
 # /data/local/flash_image recovery /sdcard/ubi-sh03c-bootkit.img
~(エラーが出たら、再度同じコマンドを実行してみる。)

**bootkit で起動 [#r13d3451]
+su権限でリカバリイメージから起動する。
 # reboot recovery
+SH-03Cが再起動し、カウントダウンが始まったら bootkit での起動に成功。

フォーカスキー(カメラアプリのシャッターボタン)を''軽く''((押し込み過ぎるとカメラボタンを押したことになり、通常の起動となってしまうので注意。起動後に、SHBreak で "Break!"、ISTweak で "再起動" → "リブート" で bootkit で起動し直す。))押し、自動起動を停止させる。

**sdboot 化 [#n934e751]
(sdboot 付属の readme.txt を参照)~
sdboot_r2 を使用する場合は、以下 readme.txt に従うこと。
+ADBで接続し、シェルを準備する。
 > adb shell
 $ _su
 # /bin/sh
+SDCARDを準備
 # sd
 # rw /mnt/sdcard
+SDCARDにsystemとdata領域を共に384MB、battlogとcalllog領域を2MBで用意する。~
(データ領域を標準より拡張したい場合は、下記の "count=384" を "count=サイズ(MB)" に変更する。)
 # mkdir /mnt/sdcard/sdboot
 # dd if=/dev/zero of=/mnt/sdcard/sdboot/system.ext2 bs=1M count=384
 # dd if=/dev/zero of=/mnt/sdcard/sdboot/data.ext2 bs=1M count=384
 # dd if=/dev/zero of=/mnt/sdcard/sdboot/battlog.ext2 bs=1M count=2
 # dd if=/dev/zero of=/mnt/sdcard/sdboot/calllog.ext2 bs=1M count=2
+SDCARDに用意した領域をext2でフォーマットする。
 # losetup /dev/block/loop0 /mnt/sdcard/sdboot/system.ext2
 # losetup /dev/block/loop1 /mnt/sdcard/sdboot/data.ext2
 # losetup /dev/block/loop2 /mnt/sdcard/sdboot/battlog.ext2
 # losetup /dev/block/loop3 /mnt/sdcard/sdboot/calllog.ext2
 # mkfs.ext2 /dev/block/loop0
 # mkfs.ext2 /dev/block/loop1
 # mkfs.ext2 /dev/block/loop2
 # mkfs.ext2 /dev/block/loop3
+SDCARDの領域をマウントする。
 # mkdir /system /data /battlog /calllog
 # mount -t ext2 /dev/block/loop0 /system
 # mount -t ext2 /dev/block/loop1 /data
 # mount -t ext2 /dev/block/loop2 /battlog
 # mount -t ext2 /dev/block/loop3 /calllog
+MTDのsystem、dataをSDCARDにコピーする。(sharp_moviesは除外)
 # mkdir /system0 /data0 /battlog0 /calllog0
 # mount -t yaffs2 -o ro /dev/block/mtdblock4 /system0
 # mount -t yaffs2 -o ro /dev/block/mtdblock8 /data0
 # mount -t yaffs2 -o ro /dev/block/mtdblock7 /calllog0
 # mount -t yaffs2 -o ro /dev/block/mtdblock6 /battlog0
 # (cd /system0 && tar cf - --exclude sharp_movies .) | (cd /system && tar xvf -)
 # (cd /data0 && tar cf - .) | (cd /data && tar xvf -)
 # (cd /battlog0 && tar cf - .) | (cd /battlog && tar xvf -)
 # (cd /calllog0 && tar cf - .) | (cd /calllog && tar xvf -)
+ADBで起動スクリプト等を転送する。(ココは、別のターミナルを起動して下記コマンドを実行。または、bootkit 起動前に転送しておく。)
 > adb push sdboot.zip /mnt/sdcard
+SDCARDに起動スクリプト等を展開する。
 # cd /mnt/sdcard
 # unzip sdboot.zip
+アンマウントし、端末をリセット。
 # cd /
 # umount /mnt/sdcard
 # umount /system0 /data0 /battlog0 /calllog0
 # umount /system /data /battlog /calllog
 # reboot recovery

SH-03Cが bootkit で再起動するので、カウントダウンが0になるまで放っておくか、メニューキーを押すと、sdboot となります。

**root 権限の管理 [#ue572dc7]
+[[Superuser>https://play.google.com/store/apps/details?id=com.noshufou.android.su]] をインストール。
+リカバリイメージとしてオーバークロックカーネル(bootkit-sh03c_overclock_rev2)を導入した場合は、以下のコマンドを実行することで Superuser から suバイナリの更新が出来るようになる。
++ADBで接続し、シェルコマンドを実行する。
 > adb shell
 $ /bin/suu
 # rw /system
 # cp /bin/suu /system/bin/su
++SH-03C で Superuser を起動し、info > su binary vx.x.x "tap to check for updates" をタップし、"アップデート"をタップして su バイナリを更新する。

*運用 [#i4b90696]
-通常起動(NANDからの起動): 電源OFFからON。エラーなどで勝手に再起動した時など。
-sdboot (SDからの起動):  > SHBreak で "Break!"、ISTweak で "再起動" → "リブート"。

*補足 [#z4823772]
必要なファイルの個別リンクなど
-一時rootを取得するアプリ
--[[SHBreakV2>http://marijuana.ddo.jp/is01/index.php?moddir=downloads&action=single&cid=1&lid=62]]
-suコマンドの有効化などが出来るアプリ
--[[ISTweak>http://marijuana.ddo.jp/is01/index.php?moddir=downloads&action=single&cid=3&lid=45]]
-NANDロックを解除するツール
--[[ae2break_for_sh03c>http://ftake.xrsp.net/blog/2011/12/14/442]] > [[ダウンロード1(BB 02.01.00向け)>http://ftake.xrsp.net/blog/wp-content/uploads/ae2brek_for_sh03c.zip]]
-sdboot スクリプト
--[[sdboot>http://www1.axfc.net/uploader/Sc/so/302287]]
--[[sdboot_r2>http://www1.axfc.net/uploader/Sc/so/308370]]
-bootkit での起動を可能とするリカバリイメージ
--[[bootkit-sh03c_r2>http://www1.axfc.net/uploader/H/so/150545]]
--[[SH-03C オーバークロックカーネル>http://jis.orz.hm/?p=47]]
-UNIXコマンドを提供する実行ファイル
--busybox
-ROM焼き実行ファイル
--flash_image