スポンサーサイト

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

SH-12C rootのとり方2 実行編

前回は準備を進めてきたわけだけど、今回は実際にSH-12Cのroot権を奪取していく。

追記:まず、文鎮のリスク回避等の説明を読んでください。

前回も書いたことだけど、
root奪取するとメーカーサポートを一切受けられなくなるので、全ては自己責任で。
起動時に必要なファイル等をいじるので、失敗すると起動しなくなる可能性もあり。
もし起動しなくなったら、書き初めの時に文鎮として使用することは可能!

手順等間違っている可能性もあるので、そこも自己責任で。


一時的rootを取って、不要アプリ等を凍結するだけにするって手もあるけど、それでは効果は薄いし、自分の場合はやりたいことのほとんどが出来なかったら、常時rootの方法が確立されたときはすごく嬉しかった。
まあ、一時root取得方法が確立された時も、ついに来たか!と喜んだんだけどねw
なので、一時rootを取って、不要アプリの凍結とかの説明はしない。
不安定だし。

さて、本題。
※以下の説明で、C:\って書かれてるけど、\は、¥(円マーク)ね。なんかブログで表示すると、バックスラッシュになっちゃう。直し方調べるのも面倒だし、そのままでw

順序
1,PCとSH-12Cを繋ぎbootイメージのバックアップ。
2,SH-12Cに必要ファイル群をコピー。
3,コピーしたファイルを使用できるようにする。
4,いよいよbootイメージを上書き
5,再起動し、rootが取れているか確認。

大雑把にこんな感じ。
2,3は、間違ったところで起動できなくなる等の不具合は出ないと思う。
1もそんなに慎重になる必要はない。。。かな?w
4はドキドキしながら作業することになるはずw
まあ、何度も焼き直しとかしてるとどうでも良くなってくるんだけどね。
5は、運命の分かれ道w 起動しなかったらご愁傷さま。。。w

では、詳しく。

1,SH-12Cのbootイメージをバックアップ

(1)SH-12CでSHbreakを起動>break1ボタン押下>SHbreakが消える>SHbreak起動>Copy auボタン押下
(2)SH-12CでISTweakを起動>suコマンドを有効にするボタンを押下
(3)PCとSH-12CをUSBケーブルでつなぐ
(4)PCでコマンドプロンプト起動>adb shell と打ちエンター
(5)コマンドプロンプトに $ マーク出現
(6)コマンドプロンプトに su と打ちエンター
(7)コマンドプロンプトに # マーク出現

ここまでやってみて、#マークが出てこない場合は(ないと思うけど)、念の為SH-12C再起動してから、(1)からやり直してみる。
そもそも、adb接続ができていない場合は、”adb shell”と打っても、$マークは出てこない。
PCの準備から見なおしてみる。
以下 # マークが出てきている前提で説明。
コマンドプロンプトにて順番に打ち込みエンターで進んでいく。

 cat /dev/mtd/mtd3ro > /data/local/recovery.img
 cat /dev/mtd/mtd0ro > /data/local/boot.img


これで、SH-12Cのbootイメージと、recoveryイメージのバックアップが一応取れた。

このファイルをPCに移動していく。
コマンドプロンプトにて、adb shellを抜けるために”Ctrl+C”ボタンを2回押す。
1回押すと # から $ に変わる。
2回目押すと、$から、C:\ とかに変わり、adb shellを抜けだしたことになる。
Windowsにて、C:\Android\backup フォルダを作成しておく。
以下コマンドプロンプトにて順番に打ち込みエンター。

 cd C:\Android\backup
 adb pull /data/local/recovery.img recovery.img
 adb pull /data/local/boot.img boot.img


これで、PCのCドライブのAndroidフォルダの中のbackupフォルダの中に、イメージがコピーされているはず。
バックアップが取れたので、次の手順へ。
※この保存したバックアップイメージは、バイナリエディタ等で編集する用、もしくは、何かの理由で、SH-12Cの/data/local/にあるイメージが消えてしまった時に使用する。
とりあえず、ずっと大事に保存しておくことをお勧めする。

2,SH-12Cに必要ファイル群をコピー
前回のPC準備編で、C:\Android以下に必要ファイル群が展開されていること前提に話を進める。
全てのファイルをC:\Android以下に展開したと言う条件で話を進めるので、違うディレクトリ構造にした場合は、その部分を自分のディレクトリ構造と置き換えて操作すること。
ファイル名とか見ればわかるよね。

以下コマンドプロンプトにて順番に打ち込みエンター。

 cd C:\Android
 adb push nandunlockshspamp /data/local/nandunlockshspamp
 adb push _su /data/local/_su
 adb push su /data/local/su
 adb push busybox /data/local/busybox
 adb push flash_image /data/local/flash_image
 adb push sh12c_recovery.img /data/local/boot2.img
 adb push autoexec.sh /data/local/bin/autoexec.sh


最後の /data/local/bin/ ディレクトリが無いみたいなこと言われたら下のコマンドを打つ(このディレクトリがデフォルトで有るか無いかが覚えていないw作った覚えもないから、有るのかもしれないけど)

 adb shell
 su
 cd /data/local
 mkdir bin



としてから、Ctrl+C を2回押し、

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


とすればコピー出来るはず。

これで全てのファイルが、SH-12Cの、/data/local/以下にコピーされたはず。
確認の仕方は、コマンドプロンプトにて、

 adb shell
 su
 ls


上の7個のファイル名が見れたらOK。(autoexec.shはbinフォルダに入っている)

3,コピーしたファイルを使用できるようにする
AndroidはLinuxから作られており、ファイルとかが権限によって守られている。
パーミッションと言われるもので、上でコピーしたファイルたちにも権限を与えてやらないと実行出来なかったりする。
なので、必要なファイルのパーミッションを変更していく必要がある。

以下、Windowsのコマンドプロンプトにて順番に打ち込みエンター。

 adb shell
 cd /data/local
 chmod 755 nandunlockshspamp
 chmod 755 flash_image
 cd /data/local/bin
 chmod 755 autoexec.sh


※flsh_imageになってましたね…。ご指摘ありがとうございます^^

ここいら辺は戸惑っている所では無いので、以上。

4,bootイメージの上書き
さあ、いよいよbootイメージを上書きする(焼く)工程。
焼く領域は、boot領域か、recovery領域のどちらかになる。
Androidは普通の起動だと、boot領域から起動する。
だから、イメージの編集(ビルドとか)が成功しているかどうかを、まずはrecovery領域に焼いて動作確認等をやった上で、イメージが正常だったらbootに焼くって作業をする。
recovery領域から起動して正常に起動しなかったら、バッテリーを引っこ抜いて再度電源を入れなおせばboot領域からの起動になって、またやり直せる。
まあ、そのままrecovery領域で毎回起動するって言う手もあるけど、再起動とかの際に面倒だし、その後文鎮になるリスクも高いって事で、recovery領域で正常に起動することが確認できたら、boot領域に焼いて、recovery領域には、バックアップしてあるrecoveryのイメージを焼き直したほうがいいと思う。

まあ、グダグダ言ってても進まないので、焼いていくことにするw

上の手順1の(1)(2)をやって、一時rootを取っておく。
(再起動とかしてなければ一時root状態なはずなので、やる必要はない)
全てはコマンドプロンプトにて進めるので、順番に打っていきエンターで進んでいく。

(1)NANDロックを解除する

 abd shell
 su
 cd data/local
 ./nandunlockshspamp 0xc08a9648
 #ここで、本当に正しいの?と聞かれるので、
 y



(2)recovery領域に焼く

 ./flash_image recovery ./boot2.img




これでなんのエラーも出なかったら手順5へ。

何かエラーが出てたら(1)へ戻る(手順4の(1)ね)。

なんでだかは知らないけど、毎回1回目はエラーが出る。。。
2回目はなんのエラーも出ないで進むんだけど。。。
まあ、何のエラーも出なかったら正常に焼けているはずなので次。

5,recovery領域から起動(再起動)

上の手順に続けて、下のコマンドを打ちエンター

 reboot recovery


このコマンドでリカバリー領域からの再起動が出来る。
docomoのロゴの画面から、AQUOSのロゴに変わったらとりあえず起動はできている。
逆に、docomoのロゴの画面から、ドロイド君が出てきたり、docomoのロゴからず~っと変わらなかったら失敗しているので、バッテリーを引っこ抜き再度バッテリーを入れなおし、起動して手順4から(もしくは手順1から)やり直し。
まあ、この段階で失敗したことは1度も無いから多分大丈夫だと思うけど。

正常に起動したら、

IS03rootswを起動>ボタンを押す
Superuserが勝手に立ち上がって、IS03rootswを許可しますか?とか聞いてくるので許可。

ここまで来たら、正常にrootが取れている。

IS03rootswを起動した時に、”root権を取得できません”みたいなのが出てきたら、失敗しているので手順1からやり直し。
自分で編集したイメージじゃないし、ここで失敗している可能性は低いけどね。
recoveryから起動して、ちゃんと起動してrootがとれていないのは、手順2のファイル設置がうまくいっていないのだと思う。
ファイルの位置を確認して、再設置して、reboot recovery でもいいかな。

ちなみに、root取得がうまくいっていて、また再起動したい場合は、
アプリ一覧から、”端末エミュレータ”ってのを開いて、

 su
 reboot recovery


リカバリーモードで再起動できる。訂正:リカバリー領域から再起動出来る。
端末エミュレータとは、準備の時にインストールしておいたAndroid Terminal Emulator。


あとは、IS03rootswで必要なときにrootをONにしていじくりまくるのみ。

ここで注意。
recovery領域にroot奪取用イメージを焼いている場合、絶対に”オールリセット”はしないこと。
オールリセットって、SH-12Cの設定>プライバシー>オールリセット のことね。
100%文鎮化するから。
これだけを気をつけていれば、システムを変にいじったりしない限り文鎮化はしないはず。

でも、再起動したい時にいちいち端末エミュレータ開いて、su>reboot recovery しないといけないのは面倒だし、リスクは一つでも減らしたいから、recovery領域でうまく行ったら、boot領域に焼き直し、recovery領域には、バックアップ取ってあるrecovery.imgを焼き直したほうがいい気がする。
その場合は、
IS03rootswでルート取得>PCとつなぐ>PCでコマンドプロンプト開く>下記コマンドを打つ

 adb shell
 su
 cd data/local
 ./nandunlockshspamp 0xc08a9648
 y
 ./flash_image recovery ./recovery.img
 ./flash_image boot ./boot2.img

 #何のエラーも出なかったら、

 reboot


何かエラーが出てたら、

 ./nandunlockshspamp 0xc08a9648
 y
 ./flash_image recovery ./recovery.img
 ./flash_image boot ./boot2.img


とやり直す。

ちなみに、このbootイメージは、SystemがこわれてもADB接続できるようになっている。
だから、「うを~!起動しなくなっちた~!」ってときも、ADB接続して修復可能ってこと。
詳しくは、必要ファイル群に入っているredme.txtを読むこと。
sh-12c_recovery.zipに入っていたredme.txtね。


以上。




書き始めたときは、もっと詳しく書いていこうと思ってたけど、無理だったwww
時間かかりすぎるし、いくら詳しく書いても、説明が下手すぎて意味がないと途中から思っちゃった。
でも、一応これでヨシとするw

次にSH-12Cネタを書くときには、IS03rootswを使わないでも普通に常にroot状態でいるようにする方法でも書こうかな。
SH-12Cでは、常にroot状態でも不具合でなそうだし、実際出てないっぽいし。
あ、あと、この方法でroot取っても、システムアプリを削除することとかはできない
プリインストールアプリをアンインストールとかしたい時は、MIYABIロックと言うのを外さないといけないんだけど、それはやってないので、それも後々書いていこうかなと思う。
MIYABIロックは、イメージを編集しないといけないからね。
最初から思い出せばよかったwww

追記:
リカバリーモードって書いちゃってるところがあった。。。
訂正します。すみませんでした。。。
リカバリーモード、リカバリー領域、間違えると全然違う意味になっちゃうからねm(_ _)m
スポンサーサイト

コメントの投稿

非公開コメント

ありがとうございます

手取り足取り書いていただき、ありがとうございます。
とても参考になりました。
おかげでMIYABI解除まで無事できました。

(しかし、settings.dbに所望のエントリが無く、
odexの解体に取りかかろうとしていますが、
エラーでこけてますorz)

さて、とても、しょーもない話ですが、
一応、誤記を
3,コピーしたファイルを使用できるようにする

chmod 755 flsh_image
aが抜けてますよね?

修正しておきます

MVNOテザ志向さん、ご指摘ありがとうございます。
確かに抜けてますね^^;
後で訂正しておきます。

こんな分かり難いブログを見てくれてありがとうございます。
settings.dbは、さわろうとしたこともないのでわかりません(笑)
お力になれずすいません。

文鎮化?

藁をもすがる思いで書き込みます。
勝手なコメントお許しください。

別記事で、紹介されていたMIYABI解除までできるカーネルをリカバリ領域に、
焼いてる状態で(boot領域はデフォのまま)、
/system/framework/services.odexが無い状態でrebootしてしまい、
docomoロゴで止まる様になってしまったんですが、
これ、文鎮確定ですかね?

(PCと接続した状態で、起動したら、adb shellはできるのですが、suはできません。)

これまた別記事でgoroh_kunカーネルの記事を今更見てかなり後悔しているところですorz

Re: 文鎮化?

>>MVNOテザ志向さん
お返事遅くなりましてすみません。

recovery領域に焼いていたということは、残念ですが文鎮化してしまったかと思われます。
自分も起動をrecovery領域から行う方法(ボタン同時押しで起動とか)を以前調べたことがあるのですが、
SH-12Cではボタン操作でrecovery領域からの起動は出来ないようです。

リカバリモード(最近で言うレスキューモード)が可能なブートイメージの起動では、ramdisk内にsuが含まれており、adb可能にする時に改造initでsuも権限設定などをちゃんとしているのでsuが使えるのですが、デフォルトのブートイメージはsuなんてramdiskに含まれているはずもなく、、、てな具合です。
なので、 デフォルトのbootイメージがboot領域に焼かれている場合にdocomoロゴから進まない場合は、suすることが出来ず、文鎮化してしまうと言うことなのです。

何の力にもなれず申し訳ないです。。。

No title

管理人様

素早いレス、しかも丁寧な解説付きでありがとうございました。

潔く、白ロム注文することにしますw
今度はgoroh_kunカーネルを焼くことにします。

これからも秀逸な記事期待しております。

Re: No title

>>MVNOテザ志向さん

http://anago.2ch.net/test/read.cgi/smartphone/1324271169/
このスレッドの、682で、最新のカスタムカーネルブートイメージがUPされているので、
これを使用するといいと思います。
リカバリモード(レスキューモード)が格段に使いやすくなっており、
SDもマウントできるし、バックアップ・リストアも完璧に出来ます。
詳しくはそれのreadme.txtを読むと参考になると思います。

recovery領域に焼いてみて、テストしてみたら、
boot領域に焼くのがやっぱりお勧めです。

しかし、再びSH-12Cを購入されるとは!
潔い心意気ですね!^^
プロフィール

tozionsdoor

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

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