13 March 2012

Xperia ray ST18iのルート権限取得

香港から輸入した海外版Xperia ray ST18iのルート権限取得を行う。

■ Xperia ray ST18iのバージョン

20120313-ray-version.jpg

・モデル番号 ST18i
・Androidバージョン 2.3.4
・ビルド番号 4.0.2.A.0.42 ← これ以上新しいバージョンでは現状のroot化ツール利用不可

であることを確認。Sonyは次のアップデートは Android 4 系になるとアナウンスしていたが、この機種のハードウエアでは遅くて使い物にならない可能性も高い…


■ 作業環境

・ Windows 7

■ Android SDKのインストール

Android Developers : Download the Android SDKホームページより 最新版のSDKファイル(installer_r16-windows.exe)をダウンロードする。

SDKのインストールにはJava SE JDKも必要となるので、Oracle Java SE Downloadsより 最新版のJava SE JDKファイルJava SE 7u3(jdk-7u3-windows-i586.exe)をダウンロードする。

Java SE JDKをインストール後、Android SDKをインストールする。

20120313-android-sdk-install.jpg

Android SDK managerが自動的に起動されるので、SDK ToolsとSDK Platform-toolsをインストールする。ほかの項目(Android 4.0.3など)はプログラム作成時に利用するエミュレータなので、今回のルート権限取得やAndroid実機操作には全く必要がない。

■ 実機Xperia rayをUSBケーブルでPCに接続

実機Xperia rayの設定メニュー → アプリケーション → 開発 → USBデバッグ をONにして、さらに、設定メニュー → アプリケーション → 提供元不明のアプリ もONにする。

20120313-config-usbdebug.jpg 20120313-config-unknownapk.jpg


この状態で、USBケーブルを使ってPCに接続。

初回接続時にドライバが自動的にロードされるが、「ADB Interface Driver」だけドライバが見つからない場合がある。(Windows XPではドライバインストールダイアログで、ネットから検索するを選択するとインストールが完了するが、Windows 7の場合はWindows Updateでドライバをインストールする必要がある)

先ほどインストールしたAndroid SDKのPlatform-toolsディレクトリでコマンドプロンプトを開き


C:\...\android-sdk\platform-tools> adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
11112222333344446666 device

実機が認識されていれば、問題なし

■ ルート取得ツールを使う

[ROOTING/UNROOTING] Xperia 2011 Easy Rooting Toolkitから、最新版の「DooMLoRD_v4_ROOT-zergRush-busybox-su.zip」をダウンロードして、適当なディレクトリに解凍。


このツールは、linuxカーネルの脆弱性(zergRush exploit, 21 Nov 2011)を突いてルート権限取得後、Busybox (1.18.4)とSU files (binary: 3.0.3 and apk: 3.0.6)をインストールしてくれる。

実機Xperia rayをPCにUSB接続し、先ほど解凍したルート取得ツールのディレクトリにあるrunme.batを実行する。


C:\temp\DooMLoRD_v4_ROOT-zergRush-busybox-su>runme.bat
---------------------------------------------------------------
Easy rooting toolkit (v4.0)
created by DooMLoRD
using exploit zergRush (Revolutionary Team)
Credits go to all those involved in making this possible!
---------------------------------------------------------------
[*] This script will:
(1) root ur device using latest zergRush exploit (21 Nov)
(2) install Busybox (1.18.4)
(3) install SU files (binary: 3.0.3 and apk: 3.0.6)
(4) some checks for free space, tmp directory
(will remove Google Maps if required)
[*] Before u begin:
(1) make sure u have installed adb drivers for ur device
(2) enable "USB DEBUGGING"
from (Menu\Settings\Applications\Development)
(3) enable "UNKNOWN SOURCES"
from (Menu\Settings\Applications)
(4) [OPTIONAL] increase screen timeout to 10 minutes
(5) connect USB cable to PHONE and then connect to PC
(6) skip "PC Companion Software" prompt on device
---------------------------------------------------------------
CONFIRM ALL THE ABOVE THEN
続行するには何かキーを押してください . . . ENTER
--- STARTING ----
--- WAITING FOR DEVICE
adb server is out of date. killing...
* daemon started successfully *
--- creating temporary directory
mkdir failed for tmp, File exists
--- cleaning
rm failed for *, No such file or directory
--- pushing zergRush
1443 KB/s (23060 bytes in 0.015s)
--- correcting permissions
--- executing zergRush

[**] Zerg rush - Android 2.2/2.3 local root
[**] (C) 2011 Revolutionary. All rights reserved.

[**] Parts of code from Gingerbreak, (C) 2010-2011 The Android Exploid Crew.

[+] Found a GingerBread ! 0x00000118
[*] Scooting ...
[*] Sending 149 zerglings ...
[+] Zerglings found a way to enter ! 0x10
[+] Overseer found a path ! 0x000151e0
[*] Sending 149 zerglings ...
[+] Zerglings caused crash (good news): 0x2abcccc4 0x0054
[*] Researching Metabolic Boost ...
[+] Speedlings on the go ! 0x6fd19483 0x6fd39847
[*] Popping 24 more zerglings
[*] Sending 173 zerglings ...

[+] Rush did it ! It's a GG, man !
[+] Killing ADB and restarting as root... enjoy!
--- WAITING FOR DEVICE TO RECONNECT
if it gets stuck over here for a long time then try:
disconnect usb cable and reconnect it
toggle "USB DEBUGGING" (first disable it then enable it)
--- DEVICE FOUND
--- pushing busybox
2171 KB/s (1075144 bytes in 0.483s)
--- correcting permissions
--- remounting /system
--- checking free space on /system
0 KB/s (439 bytes in 1.000s)
--- Free space on /system : 174956 bytes
--- no cleanup required
--- copying busybox to /system/xbin/
2099+1 records in
2099+1 records out
1075144 bytes transferred in 0.191 secs (5629026 bytes/sec)
--- correcting ownership
--- correcting permissions
--- installing busybox
--- pushing SU binary
695 KB/s (22228 bytes in 0.031s)
--- correcting ownership
--- correcting permissions
--- correcting symlinks
--- pushing Superuser app
2459 KB/s (785801 bytes in 0.312s)
--- cleaning
--- rebooting
ALL DONE!!!
続行するには何かキーを押してください . . .


■ ルート取得確認

メニューにsuperuserツールのアイコンが登録される

20120313-superuser.jpg

adbで実機に接続して、suでrootに昇格できることを確認する


C:\...\android-sdk\platform-tools> adb shell

$ su

# ← root権限のプロンプトに変わる