先人の努力により既にroot化の手法が確立されていたので、それに倣っただけですが、Xperia miniのroot化を行いました。mini proの場合はファイルシステムの展開、再作成などを行わなくてもroot化可能な方法が出来つつあるので、miniのほうもそのうち同様な方法が出てくるものと思います。
root化の手順は全面的に、こちらの「びぼーろく」を参考にさせて頂きました。作業には、Windows7とubuntuを使える環境が必要です。
なお、下記のroot化を行うと、本体が初期化されます。
ROMイメージの取得
まず、SEUSを使って本体を初期化します。これは、PC内に最新ROMイメージを取得するためです。ここでの注意点ですが、PC Companionではなく、SEUSを使うということです。PC Companionでも本体のアップデート、初期化が可能ですが、それだと必要なファイルが取得できません(ひょっとしたらどこかに格納されているのかもしれませんけど)。
初期化・アップデートを行うと、C:Program FilesSony EricssonUpdate Servicedb13740270blob_fsにFILE_XXXXというファイルが3つできます。複数ある場合は更新日付を見て、今回の作業で取得したものを判断してください。私の場合は、
- FILE_278020564 66KB
- FILE_278229436 15,336KB
- FILE_278265309 150,399KB
というファイルができました。
XDAからConvertToolを取得し、展開しておきます。
先ほどの3つのファイルのうち、サイズが一番大きなファイル(上記ではFILE_278265309)をConvertToolを展開したフォルダにコピーし、コマンドプロンプトから下記を実行。
ConvertTool>SeusDecrypt.bat FILE_XXX(ここは数字)
同じフォルダにFILE_XXX.tgzというファイルができるので、これを7zipで展開します。展開するとFILE_XXX.tarというファイルができ、さらに展開するとsinという拡張子のファイルがいくつか出てきます。この中からsystem_S1-SW-LIVE-883F-PID1-0001-S1-PARTITION-WITH-SPARE.sinをsystem.sinとリネームしておきます(実際には名前は何でもいいです)。
続いて、ここからSIN2IMG.rarを取得して展開しておきます。
先ほど取り出したsystem.sinをSIN2IMGを展開したフォルダにコピーし、コマンドプロンプトから下記を実行。
SIN2IMG>SIN2IMG.exe system.sin system.img
出来上がったsystem.imgを何らかの方法(SDカードやネットワーク経由など)でubuntuに渡します。
ルートファイルシステムの作成
ここから、unyaffsを取得し、展開します。展開したディレクトリに移って、makeを使わずにコンパイル。
$ gcc -o unyaffs unyaffs.c
以下の作業はrootで行います、いちいちsudoするのが面倒なら、
$ sudo su -
でrootとして作業しましょう。
作業ディレクトリを作成し、system.imgを展開します。
# mkdir rootsys
# cd rootsys
# ../ehlers-unyaffs-fcfd2c0/unyaffs ../system.img
展開したディレクトリの中のapp配下(rootsys/app/)にSuperuser.apkをコピーし、パーミッションを設定します。
# cp ../Superuser.apk ./app
# chmod 644 ./app/Superuser.apk
同様にsuも./xbinにコピーして権限を設定します(もってくるsuがもともとあった場所に置いてください。私はroot化したDesire Sから抜きましたが、xbin配下にありました。bin配下の場合もあるので注意してください)。
# cp ../su ./xbin
# chmod 755 ./xbin/su
# chmod u+s ./xbin/su
# chmod g+s ./xbin/su
なお、Superuser.apkとsuはXDAで入手できますし、root化した端末が他にあればそこから抜くことでも入手可能です。
ここからmkyaffs2imageを取得し、イメージファイルを再作成します。
# ./mkyaffs2image -c 4096 -s 128 rootsys rootsys.img
出来上がったrootsys.imgを再びWindows7に渡し、fastbootで端末に書き込みます。
ブートローダのアンロックとROMイメージの書き込み
本体の電源を切り、ボリュームの上ボタンを押しながらUSB接続します。LEDが青くなればBootloaderに入っています。
作成したsu入りイメージを焼くためには本体のブートローダロックを解除する必要があります。なお、アンロック自体は公式に認められている手法ですが、アンロックすると端末の保障はなくなります。
まず、SDKのUSBドライバファイルに下記を追加
[Google.NTx86]
; SonyEricsson
%SingleAdbInterface% = USB_Install, USBVID_0FCE&PID_0DDE
%CompositeAdbInterface% = USB_Install, USBVID_0FCE&PID_0DDE&MI_01
%SingleBootLoaderInterface% = USB_Install, USBVID_0FCE&PID_0DDE
[Google.NTamd64]
; SonyEricsson
%SingleAdbInterface% = USB_Install, USBVID_0FCE&PID_0DDE
%CompositeAdbInterface% = USB_Install, USBVID_0FCE&PID_0DDE&MI_01
%SingleBootLoaderInterface% = USB_Install, USBVID_0FCE&PID_0DDE</blockquote>
次に、このサイトでIMEIを入力し、unlock keyを入手します。
端末の電源を切り、ボリュームキーの上を押しながらmicroUSBケーブルを刺して、bootloaderに入ります(画面は暗いままですが、LEDが青くなればOKです)。
コマンドプロンプトから下記を実行。
> fastboot.exe -i 0x0fce getvar version
これバージョンが返ってきたら、下記を実行、エラー等になるなら、ドライバを見直します。
> fastboot.exe -i 0x0fce oem unlock 0x(入手したキー)
続いて作成したイメージを書き込みます。
> fastboot.exe -i 0x0fce flash system rootsys.img
この後端末が無事に起動し、Superuserが使えればroot化完了です。もし端末がソニエリのロゴで固まったり、再起動を繰り返すようなら、何かが失敗しています。最初に取得したsystem.imgを焼きなおすか、ここの方法でbootloaderを再度ロックし、PC CompanionかSEUSで初期化を行いましょう(再ロックしていないと初期化できません)。