sh-01dのroot取得までの手順 メモ版 2012/2/5 goroh.kun@gmail.com ■必要なもの (1)shdisphook http://goo.gl/Bs6Iq (2)breaksuidshdisp http://goo.gl/r87zt (3)adb接続環境 (4)ターミナルエミュレータ。 私はandroidマーケットからjackpalのターミナルエミュレータをインストールしています。 ■概要 system権限取得後、以下のことを行ってください。 主に3段階のことをやります。 (1)shdisphookによるsystem権限の取得、/cache/recoveryのリンク作成 (2)/dev/shdispのパーミッションを666にする (3)breaksuidshdispによるsuid関数の破壊。 ■手順 あらかじめ、breaksuidshdispを/data/local/に入れておいてください。 adb push breaksuidshdisp /data/local/ adb shell chmod 755 /data/local/breaksuidshdisp ここから、adb shellで実行。shdisphookでsystem権限取得状態に なってください。 $ echo 'chmod 777 /cache' > /data/local/oncmd.sh $ echo 'chmod 666 /cache/recovery' >> /data/local/oncmd.sh $ chmod 755 /data/local/oncmd.sh ここで、microSDのマウント解除ダイアログを表示させると /cacheディレクトリのパーミッションが777になっているはず つづいて $ rm -r /cache/recovery $ ln -s /dev/shdisp /cache/recovery ここで、再起動。もう一度shdisphookを実行する。 microSDのマウント解除ダイアログを表示させる すると、/dev/shdispが以下の権限になるはず。 $ adb shell ls -l /dev/shdisp crw-rw-rw- system cache 232, 0 1980-01-08 10:07 shdisp ここで、breaksuidshdispを実行 $/data/local/breaksuidshdisp afd0a680 : 90 00 2d e9 d5 70 a0 e3 00 00 00 ef 90 00 bd e8 afd0a690 : 00 00 b0 e1 1e ff 2f 51 ec b2 00 ea 00 f0 20 e3 p2 = AFD50000 - B0010000 event_type = 268435456 p3 = 007E15E0 p4 = 0091D8BC p3 = AFD0A680 p4 = AFE4695C afd0a680 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 afd0a690 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 これで、suid関数が破壊されますので、ターミナルエミュレータを起動させると #が表示されていると思います。