menu
書いてる野郎
orebike@gmail.com
つまりISW12HTのroot化である。
HTCの端末には全体的root奪取の穴がある(たぶんわざと残してある)っぽいので こいつを使ってrootを奪取する。
このやり方では実用的にはshellからの操作のみroot化される。 通常の操作はシステム全体が不安定になって使うことができない。
自分は特に恒久的にrootになる必要性は感じていなく、設定ファイルを書き換えるとかができればいい派なのでこのバグを突く方法はシステムに手を入れないので非常に都合がよい
といくことでやってみる。
これであの水色のGのマークのゴミゲーム会社のアップデート通知ともおさらばできる
今回はPC側をMacBookでやっているが、特に環境に依存するところは無いだろう
まずroot化用スクリプトを手に入れる。 このroot化用のスクリプトはtacorootと呼ばれているらしく、HTCの端末全般的に使えるっぽい
CunningLogic/TacoRoot · GitHub
ここからスクリプトがダウンロードできる。
読んだところなんのプログラミングも無い、単にバグを突く手順がズラズラと書いてあるだけだ。 多分手で全部やってもできるが今回はtacorootを使ってみる。
見たところ
/data/data/recovery/log
というファイルを削除して、シンボリックリンクを貼り直して再起動
ln -s /data/local.prop /data/data/recovery/log
バグるので強制再起動して、
/data/local.prop
に
ro.kernel.qemu=1
の一行を書き込んで再起動するらしい。
うん。なんだこれ?よくわからんがこれでroot化するらしい
ダウンロードしたスクリプトをEVO本体に送り込む
MacにEVOをUSBで接続してADBコマンドでファイルを送り込むことにする。
Macのターミナルからダウンロードして解凍した中にあったtacoroot.shを指定して送り込む。 送り込む場所はどこでもいいっぽいがなんか参考にしたサイトが
/data/local/
あたりに置いてたので、それに倣うことにする。
adb push tacoroot.sh /data/local/
パーミッションを変更して実行権限をつける
adb shell chmod 777 /data/local/tacoroot.sh
root化した後の状態ではシステムが不安定で、特に通知領域の更新をすることに対する動作が悪影響を与えるようなので、その影響を排除するために 通信状態が変更されないようにまずEVOを飛行機内モードに変更する。
コマンドのoptionはコードに全部書いてあるのでこいつを見ながらやる
echo "--recovery : For this exploit to work, you must have booted recovery at least once after your last factory reset." echo "--setup : Setup the phone for root, must be done before --root." echo "--root : Root the phone." echo "--undo : Remove TacoRoot."
Mac側からAndroid側のコマンドを叩く
adb shell /data/local/tacoroot.sh --setup
画面が通常起動ではなくいつもと違う画面になり赤い三角形のアラートが出る。
ここで「電源キー」と「volumeの+-」を同時に押してevoを再起動する。volumeの+-はシーソーのようなキーになっているが、実は同時押しができる。
次は通常起動になる。たぶん(!)なマークが通知領域に表示されるが気にしない
再びshellからコマンドをぶち込む
adb shell /data/local/tacoroot.sh --root
自動的にEVOが再起動する。
shellに接続してみる
adb shell
#
プロンプトがシャープに変わっていたら成功!
この状態はいろいろ非常に不安定になっているのでEVO本体はいじらないほうがいい。
つまりこれでshellから普段触れない設定ファイルとかを書き換えることができるようになったということだ。
tacorootのやり方ではroot状態が不安定なので設定が終わったら元に戻す必要がある
なんということはない、バグを突くために作った設定ファイルとシンボリックリンクを削除するだけだ
adb shell /data/local/tacoroot.sh --undo
再起動するので、安定して動作することと変更が反映されていることを確認する。
接続するとドルに戻って。rootじゃなくなったことがわかる。
adb shell $
undoの内容を見るとsetupとrootでやったファイルを消しているだけなので もう一度setupとrootをやれば再びrootを取ることが出来る。
2012-05-05 新規作成