カンタンに言ってしまおう。
2chの勇者たちがgoroh_kun氏の力をバネにやってくれました。
そんな素晴らしい人柱たちの想いを胸に、私も人柱となり数々の手法を試した。
私なりアレンジをくわえたAndroid2.2.2版SMt-i9100のroot権限取得手順をここに記しておきたい。
ファームウェアアップデートにより一見塞がれた自由への道
持っている人がイマイチ少ないのか、イマイチ盛り上がりにかけるSMT-i9100のroot権限取得。
発売時、Android2.2.1で出荷されていたせいかわからないが、以前はかの有名なsuperoneclickでカンタンにroot権限を取得することができていた。
しかし、auがファームウェアアップデートをOTAで配信し、Android2.2.2になったとたん、root権限取得はできなくなっていた。
難攻不落と思われたが2chの勇者たちはrootへの道を見つけ出したのです。
やるのであれば端末の文鎮化、補償も無くなっても良いというリスクを考えなければならない。よくわからない人は手を出してはいけない。
何か失敗しても自分自身で解決(自己責任)が基本。
そしてroot権限での作業した内容によっては、本当に壊れますので注意。
私なり手順と必要なモノたち
まずは私が利用したモノを紹介しよう。
下記のとおり五つの神器を用意した。
・acrobreak
・psneuter
・busybox
・su
・Superuser.apk
acrobreak以外はsh03c_rootkit.zipに含まれているものを利用させて頂いた。
ダウンロード
・acrobreak
https://docs.google.com/leaf?id=0B8LDObFOpzZqZDExZmQ0YzItZTg5Yi00ZDNkLWIzMzItZmEyZGMxM2NhY2E4&hl=ja
・sh03c_rootkit.zip
https://docs.google.com/leaf?id=0B8LDObFOpzZqMjkyNmEyNDMtYmUzYi00MGEyLTgzM2EtNzlhZDY0ZDRkYjBj&sort=name&layout=list&num=50
sh03c_rootkit.zipの中にpsneuterなどがいっしょに入ってるんだ。
手順目次
主な手順を書き連ねよう・・
ちなみにアルファベットの項目は、root権限取得の目的によっては、やってもやらなくてもいいことだ。
そういえばroot権限取得自体、やってもやらなくてもいいことなんだっ!
以下に説明するコマンドに関しては、やりたい人はわかると思うけどすべてcmd(コマンドプロンプト)で実行するコマンドだ。
1.必要なファイルを送り込む
まずは一連のcmd上で用意したファイルを置いてある場所(フォルダ)に移動。
(私の場合はCドライブの直下に「smt」というフォルダを作りそこに一連のファイルを置いたので「cd c:\smt\」となる)
そして使うファイルなどをSMT-i9100にぶちこむ。
ぶちこむと同時にpsneuterとacrobreakには実行権限なども与えておく。
adb push psneuter /data/local/tmp
adb push acrobreak /data/local/tmp
adb push su /data/local/tmp
adb push busybox /data/local/tmp
adb push Superuser.apk /data/local/tmp
adb shell chmod 755 /data/local/tmp/psneuter
adb shell chmod 755 /data/local/tmp/acrobreak
2.psneuterの実行
ぶちこんだファイルのうちのpsneuterをadb経由で実行する。
一旦USB接続が切断されるので、数秒間待ったのちshellログインできるか確認、できたら「exit」でログアウトする。
exit
3.acrobreakの実行
続けてacrobreakを実行する。
またしてもしばらく待つ。
ズラズラと謎の文言が表示されるが、しばし待つ。
「[!] dance forever my only one」と表示されればroot権限取得の準備完了。
4.shellログインしroot権限で各種作業
シェルログインしroot権限になる。
/data/local/tmp/sh
上記コマンドのあと、「#」が表示されればroot権限になっているということだ。
その後の作業のためにsystem領域を読み書きできる状態でマウントしておく。
5.busyboxを手動でインストール
関わるディレクトリやファイルのアクセス権限を変更し、伝説の武器である「busybox」をSMT-i9100にインストールする。
chmod 777 /system/bin
chmod 777 /system/xbin
/data/local/tmp/busybox cp /data/local/tmp/busybox /system/xbin
chmod 755 /system/xbin/busybox
/system/xbin/busybox --install -s /system/bin
今後はシェルログイン時にcpコマンドなどが自由に使えるはずだ。
Titanium Backupなどbusyboxを使うアプリはこの方法ではbusyboxが無いとみなすこともあるっぽいので、マーケットでBusbox Installerを使ってインストールした方が楽だとは思う。
でも、再起動したら使えてたからそうでもないかも。謎だ・・
まぁ、個人的にはあえて手動でインストールしてみたかったんだぁ・・
6.suの設置
お待ちかねのsuを設置する。
これを設置することでシェルログイン時にroot権限になったり、root権限の必要なアプリを利用することができるようになる。
chmod 6755 /system/bin/su
上記コマンドを実行しておくことで、今後はcmdで「adb shell」→「su」でroot権限になることができる。
A.shellログイン時に自動でroot権限になる
下記コマンドを実行することで、シェルログイン時に自動でroot権限になることができる。
だが!!
音声が再生されなくなったりなどの不具合があるので正直微妙だ。
上記コマンドを実行してしまったけど、音が出ないからやめたいなんて場合は「local.prop」を削除すれば良い。
削除コマンドは下記のとおりだ。
B.root権限の必要なアプリを使えるようにする
root権限の必要なアプリを使うためには下記のようなコマンドでアプリがsuを実行できるようにしておく必要がある。
chmod 6755 /system/bin/su
chown root.root /system/xbin/busybox
chmod 6755 /system/xbin/busybox
C.Superuser.apkのインストール
Superuser.apkはインストールしなくてもroot権限に関し何も影響は無い。
だがroot権限が解放されているというのは、まさにセキュリティホールを公開中といっても過言ではないかも知れない。
そこでSuperuser.apkをインストールしておくことでroot権限を利用しようとするアプリが登場した時に許可するか否かをSuperuser.apkがアラートで表示してくれるのでインストールしておいた方が良いだろう。
cp /data/local/tmp/Superuser.apk /system/app
インストールした後はマーケットを開き、Superuser.apkの自動更新をオフにしておこう。
最新版のSuperuser.apkをインストールしてしまうと、「suのバイナリが古い」だのなんだのというメッセージを執拗に出してくるので面倒なんだ・・
もし最新版に更新されてしまった場合は、Superuser.apkの自動更新をオフにした後で、もう一度上記コマンドでインストールしなおすなどすればバージョンを戻すことが可能だ。(SDカードからのインストールでもOKだ)
7.再起動して完了
再起動することで、上記のさまざまな作業が反映され、root権限取得完了というわけさ!
いつもの一言
神は人に「好奇心」を与えた。
時に人はできないと言われても、それに固執し、追及し、遂にやり遂げてしまうことがある。
「過ぎた野心は身を滅ぼす」などという言葉があるが、
「過ぎた好奇心は不可能を滅ぼす」という言葉があってもいいのではないだろうか。
この方法を見つけたり深掘りしていった人たちに感謝したい。
ところで今回の一連の作業など、簡略化するツールなどを公開してくれている人もいるようだ。
だが敢えて!
cmdからゴニャゴニャやりたいのが男というものさ!
さて、root権限、つまりSMT-i9100の特権を得た今、どうしてくれよう・・
やりたいことはたくさんあるよね!
そうそう、これを機にLinuxとかUNIXとかのコマンドに目覚めちゃってもいいと思うんだ。
コメント