実践編1:ルート取得
3:バックドアを仕掛ける
e) Xperia-ROOT.rev3.zip (Xperia-ROOT.rev4.zip)
01-local-prop.com
このツールは普通使う理由がちょっとわかりにくいかもしれません。
複合的な要素で必要とされる場合があるためです。
01-local-prop.com と02-push-root-files.cmd の2つのスクリプトを用います。
ルート権限を取得(ルート化)したあと、なにも考えずにバージョンを上げてしまうとルート権限はきれいさっぱり消えてしまいます。それはそうですよね、基本的にOSを入れ替えれば元の設定が消えるのそんな不自然なことではないと思います。
これを防ぐため、「バックドア」をしかけます。
具体的には何をしてくれるのでしょうか?
Unix/Linuxを使った経験がない方に説明するのはすこし時間がかかるので極力端折りますが、、、
一時的にでもroot権限を持つことができると、あたかも永続的にroot権限を持っているように振る舞うことは難しいことではありません。(ハッキング行為)
誰でも実行できるけど、実行されるときにはroot権限で実行されるプログラム(シェルスクリプト)を作成することができるのです。もちろんそんな危険なプログラムを作れる(設定できる)のはroot権限だけなのですが、「一時的」に権限を持てれば可能ということです。
Xperia-ROOT はこの考え方と同様です。
01-local-prop.cmdは、一時的にroot権限を取得したチャンスに上のような動作をするスクリプトを /data フォルダに格納します。
後にFireware をバージョンアップした際にroot権限を失うのですが、上記のスクリプトを02-push-root-files.cmdによって実行し、root権限を取り戻します。
ここで気がついた方もいると思いますが、 「/data フォルダに格納する」と書きましたが、もしバージョンを上げる時にこの「/data フォルダ」を洗い替えてしまうと、このバックドアも消えてしまうので目的を達成することが出来なくなってしまいます。これを避けるためバージョンを上げる際「/data フォルダ」は洗い替えないよう注意が必要です。
(これはバージョンを上げる時にまた記述します。)
私は古いバージョン(Rev3)を使いましたが、新しいバージョン(Rev4)の方を使った方が良いかもしれません
新しいバージョンでは CWS というバックアップツールも同時にインストールしてくれるそうです。(私は知らずに古いバージョンでやってしまいました。ま、必要であれば別途このツールもインストールしてみようと思います)
前置きが長くなってきましたが、、、、
インストール作業はなく、ダウンロードした zipファイルを展開し、適切なタイミングで01-local-prop.cmd、02-push-root-files.cmdを実行するだけです。
(古いバージョンのせいかもしれませんが、)はじめ01-local-prop.cmdを何度実行してもうまく行きませんでした。
ログを見てみると、、、、
-----------------
Rooting method based on android emulator hack
this script will create /data/local.prop to enable andorid emulator hack
scripted by PuPPeT13th@XDA
special thank to DooMLoRD @ XDA
http://forum.xda-developers.com/showthread.php?t=1601038
please press ENTER key to continue . . .
1. Connect you device using usb cable
2. Make sure USB DEBUGGING was ENABLED
3. Wakeup your device
4. Allow root access if prompted
please press ENTER key to continue . . .
waiting for device . . .
checking for rooted device . . .
rooted device FOUND
creating /data/local.prop . . .
cannot create /data/local.prop: permission denied
--------------------
そもそもAndroid端末内の /data フォルダに書き込み権限がなかったのです。
というわけで該当フォルダに誰でも書き込める権限を付与しておきます。
USBケーブルでAndroid端末とPCを接続します。
この時 Android端末は USBデバッグモードである必要があります。
展開した Xperia-ROOTのフォルダに BINというフォルダーがあり、その中に adb.exe というプログラムがあります。
この adb.exe を Windowsのcommandモードにて実行します。
このとき adb.exe に shell というオプションを付けて起動すると Android端末内を操作することが出来るようになります。
Android端末内の /data フォルダの permission (権限)を 777 に変更します。
このコマンドは chmod を使用します。
——————————
C:¥XXXXXX¥Xperia-ROOT¥BIN> adb shell
$ su
# chmod 777 /data
# exit
$ exit
C:¥XXXXXX¥Xperia-ROOT¥BIN>
——————————————
操作の簡単な説明
1: $ su
root 権限を持つユーザーになるコマンドです。
2: # chmod 777 /data
/data の権限を誰でも読み書き出来るフォルダに変更するコマンドです。
3: # exit
root 権限を持つユーザーから一般ユーザーに戻るコマンドです。
4: # exit
Android端末のモードを終了します。
さらにもう一度 exit すれば DOS のコマンドモードを終了します。
改めて 01-local-prop.cmd を実行します。
もし先ほどのエラーメッセージが出るようであれば上記の権限設定がうまくいっていないかもしれません。
エラーが出なければ、次はまたFlashtool を使用して Xperia mini (ST15a/SK17a) のバージョンを上げます。