スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SH-12C 新・root取得方法

はじめに

以前、SH-12Cのroot取得方法をまとめたのだが、
準備編実行編
最近はSHbreakのおかげでnandunlockまで出来ちゃうし、MiyabiLSMの解除もカスタムROMを焼くことにより出来てしまうので、過去の記事はそんなに見る必要も無くなってきたと思う・・・w

しかも、452さんが作ってくれたROMには、詳しい説明が書かれているreadmeファイルも付いているので、知識のない自分がわざわざ恥を晒す事もないのだが、なにせやることが無いので・・・www
最近のroot取得からrom焼きまでサラっと手順を踏んで書いてみたいと思う。

追記履歴:
※コメントによりご指摘頂き、何箇所か修正しました。ありがとうございました。
※最後の方、boot領域にカスタムROMを焼く所の、/dataパーティションの指定を、/mnt/dataに修正。ごめんなさい^^;
※自分でboot_rescue0910を/data/local/にコピーしておきながら、焼く時はSDから焼くって・・・www修正^^;
※コメントもらって気付いたけど、最初のrecoveryにflash_imageの所は、
 ./flash_imageじゃないとダメな気がしたので、修正w
※Superuserのインストールを書き忘れてたので追加w
※boot.imgとrecovery.imgのバックアップにて、正しくバックアップ出来ているか検証する方法を追加。
※recovery領域に通常のrecovery.imgを焼き直した時に、正常に焼き治ってるかどうかを確認する方法を追加。
※USBデバッグにチェックするのを書いてなかったので追加。コメント頂いて気づきましたwありがとうございます。


前準備

1.adb環境を整える
とりあえず、絶対必要ってわけではないのだけれど、あったほうが絶対便利なので、
PCには、adb接続環境を整えておく事をお勧めする。
方法は、
WindowsにUbuntuでadb環境
とかを参照にして導入してみる・・・
「Ubuntuとか知らないし、Windowsにadb環境入れれば良いじゃん!」って人が大多数だとおもうので、
そう思う人は、Windowsにadb環境導入とかでググッテクダサイw
下記コマンドも、全てWindowsユーザー向けに、コマンドプロンプトによりadb接続を行なう例を書いているのだけど、自分はWindows自体使ってないので許してくださいw
Windowsで検証してないので、おかしかったら、これまたごめんなさいwww

2.SHbreak4をインストール
これがないと始まらないので、とりあえず最初に入れておく。
でも、まだ起動はしないほうがいい。 携帯端末の動作がおかしくなってしまう可能性もあるから、まだ起動は我慢。

3.カスタムROMを入手or作成
これに関しては、自分の好きな方法で良いと思うけど、
ここでは452さんが作ってくれたROMを使うことにする。
何故かというと、バックアップが簡単だし、レスキューモードが優れているから。
sh12c_boot_rescue0910.zip (直リンクごめんなさい・・・)

4.必要ファイルを携帯端末に移動(コピー)
ここで実行予定の、sh12c_boot_rescue0910の必要ファイルを端末にコピーしていく。
ここからadb接続をしてコマンドを打っていくのだけど、USBデバッグってのを有効にしないといけない
SH-12Cの設定>アプリケーション設定>開発と開いていき、”USBデバッグ”って所にチェックを入れる。
そうするとadb接続により、コマンド操作でSH-12Cをいじれるようになる。
PCにadb環境が整っているなら
PCのC:\Android\sh12c_boot_rescue0910と言うディレクトリに解凍されているとして、ターミナルorコマンドプロンプトにて

cd C:\Android\sh12c_boot_rescue0910
adb push boot_rescue0910.img /data/local
cd 初回導入用
adb shell mkdir /data/local/bin/
adb push flash_image /data/local/bin/
adb shell chmod 755 /data/local/bin/flash_image
adb push Superuser2.3.6.3¥su /data/local/bin/

こんなところかな・・・。

それから、suをどこに置きたいかによって変わるんだけど、
suを /sbinに置きたいって人は

adb push autoexec.sh /data/local/bin/

も上に追加して打ち込む必要がある。(autoexec.shもコピーするって事)
suを/system/binに入れたい人は(自分はこっちの方がおすすめ)、root取ってから入れるのでautoexec.shのコピーは省いて良い、と言うか、入れないほうがいいかもw


準備はここまでやればOK。


実行

1.携帯端末の再起動
これはやっておいたほうがいい。
何故かというと、焼き時にメモリ足りなくなる可能性があるし、SHbreak4の動作の副作用をなるべく起こさないようにしたいから。
あと、再起動後は、端末が完璧に立ち上がるまで放置しておくこと。
これもSHbreak4の副作用を起こさないため。
とにかく、再起動して端末が完璧に立ち上がるまで放置する。
再起動後ホーム画面が出てきても、内部でアプリがいろいろ起動をかけているので、再起動後はホーム画面が見えてから5分くらい放置しておいたほうがいいかな・・・。
そこまでする必要は無いと思うけど、念には念を入れて。。。w

2.SHbreak4の起動・1回目
この起動により、SUIDを壊しroot権限を取得している模様。
プロセスを一度終了させる必要があるため、SHbreak4を終了させる。
端末の戻るボタンでも大丈夫だった。
ここで、終了してから30秒ほど待つ。ちゃんと待つ。
プロセスをちゃんと終了させるためなのかな?。。。w
3.SHbreak4の起動・2回目
この起動はnandunlockするための起動。
チェックボックスが2個チェック済みで見えると思うけど、そのままでOK。
その状態で”break”ボタンを押す。
これでnandlockも解除されているはず。
logがズラッと出てきて、最後にsucceeded(?)みたいに出てくれば成功している。

サービス等を止めたりしたいだけの人は、ここでチャチャッと作業を終わらせ、チャチャッと再起動をかけた方が良い。
今回のSHbreak4の一時rootedは、そのまま使用はしちゃダメ。危険。
まあ、前バージョンもダメなのはダメだったけど。。。ね

4.boot/recoveryイメージのバックアップ
説明の必要は無いと思うけど、バックアップは確実に取っておくこと。
adb shellに入り、バックアップを取っていく。

au
mkdir -p /mnt/sdcard/mtdbackup/
cat /dev/mtd/mtd0ro > /mnt/sdcard/mtdbackup/boot.img
cat /dev/mtd/mtd3ro > /mnt/sdcard/mtdbackup/recovery.img
# 念の為、別の方法でもバックアップ
dd if=/dev/mtd/mtd0ro of=/mnt/sdcard/mtdbackup/boot_dd.bin
dd if=/dev/mtd/mtd3ro of=/mnt/sdcard/mtdbackup/recovery_dd.bin
# 序に他の非yaffs2パーティションもバックアップ
cat /dev/mtd/mtd2 > /mnt/sdcard/mtdbackup/mtd2.img
cat /dev/mtd/mtd4 > /mnt/sdcard/mtdbackup/mtd4.img
cat /dev/mtd/mtd7 > /mnt/sdcard/mtdbackup/mtd7.img
exit
exit

452さんのreadmeからコピペです。ごめんなさいm(_ _)m

これでSDcard内にバックアップは取れた。

バックアップしたboot.imgとrecovery.imgが正常かどうかを検証する。

mkdir C:\Android\backup
cd C:\Android\backup
adb pull /mnt/sdcard/mtdbackup/boot.img
adb pull /mnt/sdcard/mtdbackup/recovery.img
adb pull /mnt/sdcard/mtdbackup/boot_dd.bin
adb pull /mnt/sdcard/mtdbackup/recovery_dd.bin
fc /b boot.img boot_dd.bin
fc /b recovery.img recovery_dd.bin

この最後のfcと言うコマンドで相違点を確認する。
もし、相違点があると判断されてしまったら、バックアップが失敗しているので、相違点が無くなるまでバックアップ・検証を続ける。
まあ、バックアップ失敗なんて無いと思うけど、boot.imgとrecovery.imgは確実に正常なバックアップをしたいからね・・・
他のバックアップファイルをPCに移動はまた後で・・・。(各自好きな時に^^;)


5.いよいよROM焼き
boot領域に焼くか、recovery領域に焼くかは自由だけど、まずはrecovery領域に焼き、動作テストをしてからboot領域に焼くってのがおすすめ。
そのROMが既に動作検証済みで、動作に問題がないとわかっているなら、最初からboot領域に焼いちゃったほうが手間が少なくていいと思う。
なんで、boot領域に焼くのがおすすめかと言うと、
文鎮からの復帰
あたりを参考にしてください。

とりあえず、recovery領域に焼く方法を書く。
それで、後からboot領域に焼く方法を書こうと思う。
adb shellに再び入り、

su
cd /data/local/bin/
./flash_image recovery /data/local/boot_rescue0910.img

このコマンドを打って、out of memoryとかエラーが出なければ正常に焼けている。
もしなにかエラーら出てたら、もう一度flash_imageしなおしてみる。
out of memoryのエラーが出ずに、なにも無かったように再び#が出てきたら成功。
exitを2回とかでadb shellを抜けておく。


6.recovery領域からの起動
recovery領域に目的のbootイメージを焼いたわけだから、recovery領域から起動をかける。

adb reboot recovery



7.rescueモードに入る
上のコマンドにより、再起動がかかりdocomoのロゴが出てくる。
recovery領域にちゃんと焼けていれば、ちょっとしたら、menu、home、backボタンが薄く点滅を始める。
点滅を始めたら、homeボタンを押す。
すると、点滅が早くなり、それがレスキューモードに入ったという合図。


8.バックアップを取っていないパーティションのバックアップ
上でバックアップ取れる部分は取ったけど、yaffs2パーティション部分のバックアップはまるで取っていないので、ここでバックアップを取っておく。
レスキューモードに入れていたら、adb接続が可能になっているので、adb shellに入り、

su
mount_sd
mkdir -p /mnt/sdcard/mtdbackup
dump_image_oob persist /mnt/sdcard/mtdbackup/mtd1_persist_oob010106.img
dump_image_oob system /mnt/sdcard/mtdbackup/mtd5_system_oob010106.img
dump_image_oob cache /mnt/sdcard/mtdbackup/mtd6_cache_oob010106.img
dump_image_oob battlog /mnt/sdcard/mtdbackup/mtd8_battlog_oob010106.img
dump_image_oob calllog /mnt/sdcard/mtdbackup/mtd9_calllog_oob010106.img
dump_image_oob ldb /mnt/sdcard/mtdbackup/mtd10_ldb_oob010106.img
dump_image_oob userdata /mnt/sdcard/mtdbackup/mtd11_data_oob010106.img

これで一応oobを含めたバックアップがSDに取れているのだけど、心配なら続けてtar.gz(linuxOSではtar.gzでのバックアップが主流(?のはずw))でバックアップを取っておくといいと思う。。。けど、
ここでは面倒なので割愛w
どうしても取りたい場合は、sh12c_rescue_0910にあるreadmeに詳しく載ってるので、そちらを参考にしてください。
Androidでのバックアップの取り方
も少しは手助けになると思うので参考にどうぞ。

一応SDをumountしておく。

umount /mnt/sdcard



9.suの設置(/system/bin/に置きたい人用)
/sbinにsuを置きたい人は既に前準備にてsuを置く準備は整っているので、この項目は省略する。
/systemをmountしてから、rmでremountして、/system/binにsuを置く。
先に、/data/local/binにsuをコピーしたので、/dataもmountしてそこからコピー。
権限等の変更もする。
そしてこの項目が終わったら、今の所レスキューモードに用はなくなるので、抜けてAndroid起動。
最初にごちゃごちゃ説明しちゃったけど、次のコマンドを打っていけばよしw
最初のsuは、上のバックアップの項目に続けて打つなら、すでにsuなので打つ必要はなし。

su
mount_system
mount -o remount,rw /mnt/system/
mount_data
cp /mnt/data/local/bin/su /mnt/system/bin/su
chown 0.0 /mnt/system/bin/su
chmod 6755 /mnt/system/bin/su
cd /
umount /mnt/system/
umount /mnt/data/
rm /rescue

ここまで打つと、レスキューモードを抜けてAndroidが起動する。


10.バックアップファイルをPC等に移動する
上の作業を全てこなしてきた人は、/mnt/sdcard/mtdbackup/って言うフォルダに、
(SDカード内の、mtdbackupって言うフォルダね。)
必要なバックアップは全て取ってあるはずだから、好きな方法によりそれらを保存しておく。 方法は割愛w
adbでpullするとか、PCにSDカード挿してコピーしておくとか、何でも良いと思う。

11.アプリSuperuserをインストール、起動する
アプリのSuperuserをインストールするのを忘れてた・・・w
インストールはコマンドプロンプトにより、次の手順で。

cd C:\Android\sh12c_boot_rescue0910\Superuser2.3.6.3
adb install Superuser.apk

これでSH-12CにSuperuserがインストールされているはず。

adb でインストールじゃなくても、

cd C:\Android\sh12c_boot_rescue0910\Superuser2.3.6.3
adb push Superuser.apk /mnt/sdcard/

とかしておいて(別にSDカードに移動する方法はどうでもよい)、そのapkをタップしてインストールしても良い。

初回は起動しないといけなかったような・・・気が・・・するから一応起動してみるw

12.作業は終了
recovery領域に焼き、そこから起動したことで、普通にroot権限が必要なアプリ等は使えるようになっているはず。
なので、recovery領域でいいやって人は、動作確認をひと通りしたら、ここで作業終了。
でも、recovery領域にカスタムカーネルブートイメージを焼いても意味がないってことを覚えておいてください
文鎮からの復帰を参照。

なので、これから、boot領域にsh12c_boot_rescue0910を焼いてrecovery領域にバックアップしてあるrecovery.imgを焼き直す作業をする。

12.boot領域にカスタムROMを焼き、recovery領域は元に戻す
上から順番に作業をしてきた事前提で話を進める。
必要ファイルが入っているディレクトリとかね。
ディレクトリを自分好きに変えている人は読み替えて作業する。

レスキューモードに入る。

adb reboot recovery
#再起動がかかり、docomoロゴが出てきて、menu,home,backキーが点滅を始める。
#homeキーを押す→点滅が早くなる→adb接続OK


レスキューモードに入り、adb shell出来たら、次のコマンドにより焼きやき作業。

su
mount_sd
mount_data
flash_image recovery /mnt/sdcard/mtdbackup/recovery.img
flash_image boot /mnt/data/local/boot_rescue0910.img

flash_imageに何のエラーも出てなかったら、焼き焼き終了。
何らかのエラーが出ちゃったら、エラーが無くなるまでflash_imageしなおす事。
recovery領域にflash_imageでエラーが出てる分には後で修正可能だけど、boot領域にflash_imageでエラーが出たまま再起動をかけると、文鎮確定。。。
なので、エラーが出てないことは重要。

通常起動に戻る。
上のコマンドに続けて、

#adb shellを抜ける
exit
exit
#boot領域から再起動をかける
adb reboot

これで通常起動されて、常用root&レスキュモード可能なSH-12Cの出来上がり。
ちゃんとboot領域にboot_rescue0910.imgが焼かれていないと、トラブルが起きた時にレスキューモードに入れなくなるので、心配な人はもう一度普通に電源ボタン長押しより再起動をかけてみて、docomoロゴでボタンが点滅し、レスキューモードに入れることを確認してみるといいと思う。

ここまでやったら、メーカーアップデートをしたりしない限り、文鎮になることはないはず。

ここでrecovery領域を元に戻せているかどうかの確認方法を・・・。
reboot recoveryしてみて、ドロイド君がビックリマークと共に出てきて、そこから何も起こらなかったら正常に戻せています。
SH-12Cのrecovery.imgはリカバリ時(初期化時)に使用するイメージなだけで、通常起動はしないものなので。
rootスレでも結構びっくりされる方がいましたからね。

つ、疲れた・・・www
他にも色々書こうと思ったけど、疲れたのでこの辺で。。。

他になにか気付いたら、追記で後から書き足そうと思う・・・^^
スポンサーサイト

SH-12C 01.01.06 root取得

ありがとうございます!&01.01.06の皆様おめでとうございます。

SHbreakが最新のver4になり、SH-12Cに対応してくれました><

ほんとに、感謝感謝です;;

ずっとモヤモヤしてたけど、ほんとにスッキリ晴れた気分です。


明日は朝早くから仕事なので、超簡単にと言うか、作者様の説明通りに方法を書きます。

あたり前のことながら、自己責任で。

1.SH-12CにSHbreak4をインストール
2.WiFiがONの場合はOFFにする。
3.SHbreak4を起動し、何もせずに終了ボタンで一度終了する。(端末の戻るボタンでもOK)
4.30秒ほど待つ・・・・・・・。(ここでちゃんと待たないと失敗する恐れが)
5.再びSHbreak4を起動。
6.breakボタンを押す!(チェックはそのままでOK)
7.PCに接続 & adb shellに入り、"au" で # になれる。(suでは無いので注意)
8.おめでとうございます。nandもunlockされているので、焼き放題です。


以上!

一回で簡単にと言うか、失敗なしでroot取得&rom焼きまで出来て、

今までのモヤモヤは何だったのだろうか・・・と言う感想www

ホントに、Marijuanaさんには感謝です。ありがとうございます!


みなさん、快適なroot生活をお送りください^^





追記:
rom焼きに関しては、

SH-12C root取り方2 実行編

SH-12C 新・root取得方法

あたりを参考にしてください。

SHbreakのroot取得方法が変わっただけで、他は同じ方法でいけます。


ただし、SHbreak4はnandunlockまでしてくれているので、上の記事のnandunlockとかはしなくてOKです。




ちょっと記事的に古い気がするので、今度、最新のrom焼き方法とかまとめようかと思うので、

古い記事を読んで自信がない人はちょっと待っててください。

必要ないかも知れないけど、ロックシステムの解除とか、既に必要ないものも多いので、書き直した方がいいかと…(笑)

プロフィール

tozionsdoor

Author:tozionsdoor
ただ書くだけ。スクショとか取るの面倒。貼るのも面倒w

検索フォーム
FC2カウンター
最新記事 5件
最新コメント
月別アーカイブ
カテゴリ
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。