Xperia Mini Pro(SK17i)をroot化した時の覚書。

Android OS

2011/08/10:最新の記事がなぜか消えてしまいました。
Googleのキャッシュに残っていたものをコピペしてます。

こんなポストを書いていたら、rootedなsystem.imgが配布されたそーな。
迷ったけど書いちゃったから投稿しておきます。

先人の皆様方のブログ記事を参考に。
自分がつまづいたところを覚え書きしました。

全体的な流れを書いていくだけです。
本当ならどなたにでも分かる記事を書くべきだと思いますが、自分の持っている知識が少なすぎて、「ここをこうした方がいいよ」とかってのは一切ないです。
ぶつかっては問題を解消しながら進んだ記録程度に見ていただけたらと思います。

先人の御二方は知識が専門的すぎて難しかったです。
だけどヒントがあったのでそれでなんとか出来ました。

私の環境

  • ubuntu11.04
  • Windows7 Home

です。
Windows7とUbuntuを行ったり来たりしました。
Ubuntu11.04のVirtualBoxに構築したWinodwsXPではfastboot接続できず。

Ubuntuをメインで使っている人は少ないと思います。
Windowsメインな方でPCのスペックが高い方は、Virtual BoxやVmware Playerなどの仮想環境でUbuntuを構築するのが一番早いと思います。
スペックの低いPCだったらWubiでUbuntuをインストールし、デュアルブートを作るか、一番手っ取り早いのは、USBメモリにUbuntuをインストールして、USBブートすることだと思います。
Macでのやり方は良く分かりません。

まずはWindows7上での作業です。

1.SEUS(SonyEricsson Update Service)で初期化

いきなりbootloaderをunlockしてしまうとSEUSが使えなくなるので、兎にも角にも初期化。

http://www.sonyericsson.co.jp/support/software/updateservice/

詳しい使い方とかは省略

初期化するとすべてのデータが消えますので、注意してください。

2.Android-sdkの導入

http://developer.android.com/sdk/index.html

詳細は省略。
java周りも一緒にインストールできます。

3.USBドライバの設定

C:\Program Files\Android\android-sdk\extras\google\usb_driver」にある 「android_winusb.inf」をメモ帳あたりで開く。Windows7で管理者権限がないと、ファイルを保存するときに管理者権限うんぬんが求められました。
android_winusb.infを右クリック→プロパティ→セキュリティのタブを開いて「編集」からUserのアクセス許可の設定を行ってみてください。フルコントロールにチェックを入れてしまえばいいでしょう。セキュリティ的には良く分かりませんが。
WindowsXPは特に何も 言われず。
android_winusb.infにアクセス権を与えました。

開いたら

[Google.NTx86]
 ; SonyEricsson
 %SingleAdbInterface% = USB_Install, USB\VID_0FCE&PID_0DDE
 %CompositeAdbInterface% = USB_Install, USB\VID_0FCE&PID_0DDE&MI_01
 %SingleBootLoaderInterface% = USB_Install, USB\VID_0FCE&PID_0DDE
 ;
[Google.NTamd64]
 ; SonyEricsson
 %SingleAdbInterface% = USB_Install, USB\VID_0FCE&PID_0DDE
 %CompositeAdbInterface% = USB_Install, USB\VID_0FCE&PID_0DDE&MI_01
 %SingleBootLoaderInterface% = USB_Install, USB\VID_0FCE&PID_0DDE
 ;

の赤字部分を追記します。

下の方は64bit環境の方向けのようですので、不要かもしれません。

ちなみに

http://unlockbootloader.sonyericsson.com/downloadinf.zip

のサイトにあるものだとなぜか失敗しました。
ずっとここのを使っていて全然インストールできなかった。

4.Fastbootモードで接続、USBドライバのインストール

ボリュームアップボタンを押しながら、USBケーブルとXperia Mini Proを接続。
出来れば純正のものを使ったほうがいいかも。Defyの時焼けなかった。
青いLEDが光っていれば、fastbootモード。

当然ドライバーがない状態なので、先程書き換えたinfファイルを指定します。

ドライバのインストールに成功。

5.systemとかのデータを引っこ抜く。

エクスプローラーあたりで
C:\Program Files\Sony Ericsson\Update Service\db\13740270\blob_fs
をのぞいて

  • FILE_278020564(66KBくらい)
    SeusDecrypt.batでtgz化して解凍、tar化した後、loder.sinにリネーム。
    後でbootloaderのアンロックを元に戻す際に必要だから捨てない。
  • FILE_278230057(15MBくらい)==??ramdiskなんか入ってるみたい
  • FILE_278238660(152MBくらい)
    system.imgの元になるファイル。

みたいなファイルを探す。この数字が何を意味するか分からないし、端末によって変わるかもしれないから、ファイルサイズで判断。

拡張子「sin」を追加する、と書いてあるサイトもありましたが特に問題はありませんでした。

6.*.tgzへ変換する

「5」のところから持ってきたデータのうち
これを SeusDecrypt.bat を使って分解の準備をする。

http://forum.xda-developers.com/showthread.php?t=730282

から「ConvertTool.zip」をダウンロード。XDAでのユーザ登録が必要。

ConvertToolを解凍。
この中に先ほどの152MBくらいのファイルを入れてみる。
DOS窓で

C:\Users\xxxxx\Desktop\ConvertTool>SeusDecrypt.bat FILE_278238660
 FILE_278238660 -> FILE_278238660.tgz

でもいいし、ドラッグアンドドロップでSeusDecrypt.batへ重ねてもいいみたい。

155MB近くあるものはちょっと時間がかかる。
終了すれば自動的にDOS窓は閉じるからちょっと我慢。

出来上がったtgzを解凍。おすすめは7-zipでしょうか。
右クリックで解凍できます。
「FILE_278238660」フォルダが出来上がる。
「FILE_278238660」フォルダ内にある「FILE_278238660」は7z形式で圧縮されているので7-zipで解凍。

「system_S1-SW-LIVE-883F-PID1-0001-S1-PARTITION-WITH-SPARE.sin」これがsystem.imgファイルの元。長いのは見づらいので、「system.sin」にファイル名を書き換えました。
名前を変えても変えなくてもオーケー。

7.SIN形式をIMG形式へ

IN2IMGをダウンロードする。

http://azuzu.spice.net.au/tools/SIN2IMG/

解凍後、DOSでsin2imgの入っているフォルダへ移動、コマンドを実行

$ sin2img.exe system.sin system.img

出来たsystem.imgをubuntuへ持って行きます。
USBメモリでもなんでも結構。

Windows7上の作業はいったん、ここまで。次からUbuntu11.04上の作業

8.system.imgを展開する

改造版unyaffsを入手

https://github.com/ehlers/unyaffs


ページ半ばから、「download」をクリック。zip形式でもtar.gz形式でもどちらでもオッケー。
ダウンロードしたファイルを解凍。
使用できるようにバイナリ化。
解凍したディレクトリ内で端末を開いて「make」と入力すのが正解なようですが・・・

$ make
cc -O2 -Wall? unyaffs.c -o unyaffs
unyaffs.c: In function ‘process_chunk’:
unyaffs.c:193:11: warning: ignoring return value of ‘lchown’, declared with attribute warn_unused_result
unyaffs.c:198:11: warning: ignoring return value of ‘lchown’, declared with attribute warn_unused_result
unyaffs.c:205:11: warning: ignoring return value of ‘lchown’, declared with attribute warn_unused_result
unyaffs.c:217:11: warning: ignoring return value of ‘lchown’, declared with attribute warn_unused_result

エラー吐きまくり。
検索してみると大したことがないそうですが、気持ちが悪いので下記の方法でビルドしました。

$ gcc -o unyaffs unyaffs.c

を実行。
「unyaffs」が出来上がった。

/system-rooted/というディレクトリを新しく作って(名前はお好きなもので)、先ほど作ったsystem.imgとunyaffsを同じディレクトリ内に置いて、

$ sudo ./unyaffs system.img

これでimgファイルを解凍完了。
unyaffsとsystem.imgはこのディレクトリ内では不要なものなので移動or削除。

9.root権限に必要なファイルを事前に入れる。

su、Superuser.apkを入れる。

[APP] Superuser 2.3.6.1 – Now on the Market [2010-09-05]

XDAからダウンロードです。

su-2.3.6.1-ef-signed.zip
 md5: 6d490575092a1c5d91af56b94c2328f4
 - Eclair/Froyo

ここにある「su-2.3.6.1-ef-signed.zip」をダウンロードして解凍。
SK17はGingerbreadですが、Eclair/Froyo用でいいみたい。
/system/app/ディレクトリからSuperuser.apkを、
/system/app/ディレクトリからsuをそれぞれ引っこ抜いておきます。

自分は面倒だからCyanogenmod7に入っていたものを引っこ抜いた。

$ adb pull /system/xbin/su
 310 KB/s (26336 bytes in 0.082s)
$ adb pull /system/app/Superuser.apk
 1546 KB/s (142581 bytes in 0.090s)

カレントディレクトリは/system-rooted/。
引っこ抜いたファイルは/system-rooted/の上位ディレクトリにあると仮定して

$sudo cp ../Superuser.apk ./app/
$sudo cp ../su ./xbin/

でコピーするもよし、

$sudo nautilus

で管理者権限でファイラーを起動させてドラッグアンドドロップでもいいですね。

一応、パーミッションを見ておく。
「ls」コマンドで。

$ ls -l ./xbin/su
 -rwsr-sr-x 1 root root 26336 Aug 1 2008 ./xbin/su
$ ls -l ./app/Superuser.apk
 -rw-r--r-- 1 root root 42581 Aug 1 2008 ./app/Superuser.apk

パーミッションを合わせておく。
まずはSuperuser.apkのパーミッション

$sudo chmod 644 ./app/Superuser.apk

つぎにsuコマンドのパーミッション

$ sudo chmod 755 ./xbin/su
$ sudo chmod u+s ./xbin/su
$ sudo chmod g+s ./xbin/su
$ ls -l ./xbin/su
 -rwsr-sr-x 1 root root 26336 2011-08-08 13:24 ./xbin/su

終わり。

後はお好みでファイルの追加、修正を行う。

APN情報をCyanogenmod7から引っこ抜く。

$ adb pull /system/etc/apns-conf.xml
 1263 KB/s (179450 bytes in 0.138s)
$ sudo cp apns-conf.xml ./root/system-rooted/etc/
 [sudo] password for :

=>なんかうまく設定できないな。

面倒だから

$ sudo nautilus

でファイラーを開き、ドラッグアンドドロップで。
パーミッションもGUI上で。

FMラジオの設定

[電話] XPERIA X10 mini proのFMラジオ日本周波数対応

を参考に。

MMSの設定

[電話] XPERIA Mini Pro SK17iでMMS(黒SIM)

黒SIM使いではないので、X02NKのUser-Agentを設定。
今のところ、問題なくMMSも受信。

<?xml version="1.0" encoding="UTF-8"?>
 <settings version="1">
 <setting key="mms-useragent">SoftBank/1.0/X02NK/NKJ001 Series60/3.1 NokiaN95/20.0.273 Profile/MIDP-2.0 Configuration/CLDC-1.1</setting>
 </settings>

修正を終えたらimgファイル化します。

10.作業したものをimgファイルにする

Yaffs2 toolを使う。

http://jiggawatt.org/badc0de/android/

x86 Linux versionをダウンロード。

管理者権限でやる必要があるかどうかも良く分かりませんが、やってみたらうまく行ったのでこの方法で。
元の手を付けていない「system.img」と区別するため、root化された/system/ディレクトリは「system-rooted-mod.img」としました。このへんはお好みで。

$ sudo ./mkfs.yaffs2.x86 system-rooted/ system-rooted-mod.img
 mkfs.yaffs2: Android YAFFS2 Tool,Build by PowerGUI
 at http://www.openhandsetalliance.org.cn
 Building...
 Build Ok.

メモリカードに移動した。

$ sudo cp ./system-rooted-mod.img /media/FAC2-1CFF/

Ubuntu上の作業はここまで。次からWindows7上の作業

11.bootloaderのアンロック

コムギドットネットのサイトの通り。

XPERIA bootloader unlocked!!! ? コムギドットネット:
http://komugi.net/archives/2011/04/14091148
?

一応、まじめに名前を書いて

アンロックコードをゲット。

ボリューム上ボタンを押しながら USBケーブルをPCに繋いで fastboot モードで起動。
青いLEDが光っていれば、fastbootモード。
fastbootコマンドが動いているか確認。

C:\Users\xxxxx>fastboot.exe -i 0x0fce getvar version
version: 0.3
 finished. total time: 0.001s

そしてアンロック。

 

C:\Users\xxxxxx>fastboot.exe -i 0x0fce oem unlock 0x4D1234D567D8E901
 ...
 (bootloader) Unlock phone requested
 (bootloader) Erasing block 0x00001300
 (bootloader) Erasing block 0x00001400
 (bootloader) Erasing block 0x00001500
 (bootloader) Erasing block 0x00001600
 (bootloader) Erasing block 0x00001700
 (bootloader) Erasing block 0x00001800
 (bootloader) Erasing block 0x00001900
 (bootloader) Erasing block 0x00001a00
 (bootloader) Erasing block 0x00001b00
 (bootloader) Erasing block 0x00001c00
 (bootloader) Erasing block 0x00001d00
 (bootloader) Erasing block 0x00001e00
 (bootloader) Erasing block 0x00001f00
 OKAY [? 7.756s]
 finished. total time: 7.756s

アンロック完了。

12.カスタムsystem.imgを焼く。

だんだん疲れてきた。

先ほど作ったsystem-rooted.imgをXperia Mini Proへ書き込みます。
ボリューム上ボタンを押しながら USBケーブルをPCに繋いで fastboot モードで起動。
青いLEDが光っていれば、fastbootモード。
コマンドは

fastboot.exe -i 0x0fce flash system system-rooted-mod.img

を実行しましたが、

fastboot.exe flash system system-rooted-mod.img

の余計なオプションなしでもいいみたいです。

C:>fastboot.exe -i 0x0fce flash system system-rooted-mod.img
sending 'system' (240466 KB)...
(bootloader) USB download speed was 9190kB/s
OKAY [ 26.988s]
writing 'system'...
(bootloader) Flash of partition 'system' requested
(bootloader) S1 partID 0x00000004, block 0x000002f4-0x00000f73
(bootloader) Erasing block 0x00000300
(bootloader) Erasing block 0x00000400
(bootloader) Erasing block 0x00000500
(bootloader) Erasing block 0x00000600
(bootloader) Erasing block 0x00000700
(bootloader) Erasing block 0x00000800
(bootloader) Erasing block 0x00000900
(bootloader) Erasing block 0x00000a00
(bootloader) Erasing block 0x00000b00
(bootloader) Erasing block 0x00000c00
(bootloader) Erasing block 0x00000d00
(bootloader) Erasing block 0x00000e00
(bootloader) Erasing block 0x00000f00
(bootloader) Erase operation complete, 0 bad blocks encountered
(bootloader) Flashing...
(bootloader) Flash operation complete
OKAY [ 62.541s]
finished. total time: 89.529s

起動してみて、SonyEricssonのロゴのループにならないことを祈りつつ。

その他

busyboxの最新版とかよく分からなかったから、相変わらずtitanium backupから。
あとは自分の過去記事見た。

//booleestreet.net/archives/3466

rootedなsystem.imgがxdaあたりから配布されればroot化も簡単になるんでしょうね。

今回は調べた甲斐もあって、いい勉強になりました。

booleeをフォローする
BOOLEE STREET.net

コメント

  1. kawa より:

    mini pro 買いました このブログでの紹介が決め手でした
    いいですね、この機種。何と言ってもネイティブで日本語に対応していることがこんなに気持ちいいものとは! またSBMのスマホSIMですが、ソフトバンクメール入れるだけであっさりMMS送受信ができました。windows mobileのときはレッツジャパン入れてレジストリ変えて、さらにmmslite入れて・・と何時間もかけていたのが懐かしく感じます。いい時代になったものです ちょっとバッテリの減りが早いのが気になりますが

  2. boolee より:

    kawaさんおはようございます。
    ありがとうございます。
    そう、最大の利点は「ネイティブで日本語に対応」していることですよね。
    なんと言っても楽。WebOSやSymbianもネイティブで日本語に対応していれば、もっと魅力的なのですが。

    WindowsMobileも懐かしいなぁ。
    初めて「ROMクッキング」なんて言葉を覚えたのは、X01HTでした。
    atok for PocketPCを入れたり、mmsliteも衝撃的でしたね。

  3. sato3 より:

    こんにちは、楽しく記事を拝見させていただいています。
    Xperia acro(so-02c)のROMをバックアップする方法で
    つまずいており、ご指導して頂きたくメール致しました。
    アップされている記事は理解できるのですが、acro用のloader.sin
    を作成する際に「convertTool」を使用して「SeusDecrpt.bat」にSEUSで
    保存した容量の一番小さいファイルをドラックアンドドロップをすると「FILE_・・・tgz」
    が生成されるとの事ですが、ドラックアンドドロップを行っても一瞬コマンドプロンプトが立ち上がったような黒い画面がでるだけで、「FILE_・・・tgz」がどこにも生成されません。
    javacも通るので、おそらく環境変数の設定は合っていると思うのですが。。。

    tgzのファイルの生成だけでもお願いすることなどは出来ないでしょうか??
    ご教授お願いします。

  4. boolee より:

    はじめまして。
    SeusDecrpt.batのみを他のフォルダに移動させて、ドラッグアンドドロップしているということはないですか?
    ドラッグアンドドロップだとエラー表示が見られないので、DOS窓を開いて実行したほうがいいかと思いますよ。
    C:\…..\ConvertTool>SeusDecrypt.bat FILE_・・・
    のような感じで。

  5. […] Xperia mini pro(sk17i)をroot化した時の覚書 […]