XPERIA mini pro (SK17a) のroot化に挑戦

| コメント(0) | トラックバック(0)
XDAとかには既にroot化済みのSystem.imgが転がっていたりするらしいので、拾ってきて焼き込むだけでrootedにできます。

ですが、後学の為にSystemイメージ作って焼き込む手段でやってみました。
XPERIA miniにはOS 2.3.4が配布中で、10月中にmini proにも配布開始されるようなので、その時にもうpを待たずにSystem.img作成に挑戦できますしね。

こちら(dreem seed - Xperia miniのroot化)の先駆者様のサイトを参考に、挑戦しました。
詳しく解説しているサイトはあちこちにありますが、自分が躓いた点を踏まえて、自分なりにまとめて備忘録にしました。
XPERIA mini (SK15)でも同じ手順で出来るハズです。

DSC_2417.JPG

1.用意するもの
・Linux環境(今回はUbuntu 11.04をVMware Playerにて実行)
・Java実行環境 JDKないしはJRE
・Android SDK
ConvertTool
SIN2IMG
unyaffs
Superuser.apk等
mkyaffs2image
SEUS(SonyEricssonUpdateService)

JavaのインストールやAndroidSDKのインストールはググれば詳しい解説サイトがあります。
各プログラムがJavaで作られているので無いと動きませんし、System.imgを作らずに、拾ってきて焼き込む場合でも、AndroidSDKのfastbootを使うので必要です。
(そしてAndroidSDKはJava必須)

参考にしたサイトからの、SIN2IMGへのリンクが切れていたので勝手にミラーうpしておきます。
うちではこれで問題なくroot化出来ましたが、保証できませんので使用は自己責任で。

Linuxは皆さんUbuntu使っているようなので、これで。Ver8とかでも大丈夫かと。
ただ他のディストリビューションはやめたほうがいいかも。あまり例を見ないので。
念のため、参考にしたサイトと同様に11.04をインストールしました。 

--------------------------------------------

2.オリジナルイメージの取得
まず、SEUSを使って端末を一度最新版にアップデートします。
この時、既存の本体に記録されたデータが全て出荷時に戻るので、必要ならバックアップを。
なお、SEUSのプログラムはググッて日本のソニエリのページからDLすればOK。
外国のソニエリのページから落としてきてもOKです。中身同じ。

実行すると、SEUSをインストールしたフォルダ内にアップデートファイルが保存されるので、どこか別のところに控えておきます。
ファイルがたくさんありますが、ファイル名が"FILE_"で始まる3つだけ控えておけばOK。
私の環境の場合、
 C:\Program Files (x86)\Sony Ericsson\Update Service\db\13740270\blob_fs
に保存されていた
 FILE_278296974 (151MB 拡張子なし)
 FILE_278230057 (14.9MB 拡張子なし)
 FILE_278020564 (65.9KB 拡張子なし)
でした。

この一番ファイルサイズの大きいFILE_278296974がSystemの入ったイメージとなっていて、これを展開、Linux上でsuコマンドの追加、再パッケージしていきます。
また、ファイルサイズの一番小さなFILE_278020564については、中にloader.sinと呼ばれるファイルが入っていて、今回は使いませんがFlashToolを利用するときに必要になってきます。

--------------------------------------------

3.アップデートファイルの展開
先ほど取得した3つのうちのSystemイメージが入っているファイル、今回はFILE_278296974を展開して、中のイメージファイルを取り出します。

ConvertToolのフォルダにSeusDecrypt.batというバッチファイルがありますので、
ConvertToolのフォルダにFILE_278296974をコピーし、
コマンドプロンプトにてカレントフォルダをConvertToolのフォルダに移動した上で
>SeusDecrypt.bat FILE_278296974
と、実行します。

すると、同フォルダ内にFILE_
278296974.tarができますので、適当な解凍ソフトで展開。
今度はファイルがたくさん出てきますので、
 system_S1-SW-LIVE-883F-PID1-0001-S1-PARTITION-WITH-SPARE.sin
を探して別の場所に移しておきます。
(他は消してしまってOK)

展開について、よく分からなければSeusDecrypt.batにFILE_278296974をドラッグ&ドロップすればたぶん展開してtarファイルは入手できます。
ただし、tarファイルがどこにできるか分かりませんが。MyDocumentの1階層上とかかな。

--------------------------------------------

4.イメージの変換
先ほど取得した system_S1-SW-LIVE-883F-PID1-0001-S1-PARTITION-WITH-SPARE.sin をとりあえず名前が長ったらしいのでSystem.sinに修正。
そしてSIN2IMGを使って、sinファイルからimgファイルに変換します。

コマンドプロンプトにて、
> SIN2IMG.exe System.sin System.img (パスは省略。適当に読み替えてネ)
にて変換できます。

※ここで作成したSystem.imgファイルはどこかに保存しておいてください。
 以降の作業で文鎮化した際や、標準状態に戻したいときに、これを書きこむことで元に戻ります。

よく分からなければ
1) SIN2IMGのフォルダにSystem.sinをコピー
2) コマンドプロンプトのcdコマンドでカレントディレクトリをSIN2IMGのフォルダまで移動
3)上記のコマンドを実行すればSIN2IMGのフォルダ内にSystem.imgの出来上がり
で、できます。

ですが、これが分からないようであれば、この先は諦めてXDA等からroot化済みのSystem.imgを拾ってきて、9.ブートローダーアンロックの準備 からやった方がいいと思います。
Linuxのコマンド操作で絶対に詰みますので。

--------------------------------------------

5.イメージの展開(ここからLinuxでの作業)
作成したSystem.imgを、何らかの手段でLinux環境上に持ってきます。
私はネットワーク経由でやりました。USBメモリでもOKかと。

ここから先はLinuxコマンドの基礎知識があることが前提です。
ファイルパス等は省略するので、適宜補完して入力してください。
私もLinuxはかじっただけで人に教えられるレベルではないので...参考程度に。

まずはimgを展開するため、unyaffsをコンパイルして実行ファイルを作成します。
makeだと失敗するらしいので、直接下記コマンドでコンパイル。
 
$ gcc -o unyaffs unyaffs.c

この先はrootとして作業するので、
 $ sudo su
で、ターミナルをroot権限にしておきます。

適当な場所にイメージを展開するための作業ディレクトリを作成し、先ほどの実行ファイルを使ってイメージファイルの中身を展開します。
今回はroot直下にxperiaというディレクトリを作成して作業。
この作業ディレクトリが、LinuxのSystemディレクトリに相当します。
 # cd /
 # mkdir xperia
 # cd xperia
 # unyaffs(先程作った実行ファイル) System.img(持ってきたイメージファイル)

これで、イメージファイルが展開されます。

また、チャンクサイズ等を調べて控えておきます。
 # unyaffs -t -v system.img | head -n 1
実行すると、
 Header check OK, chunk size = 2048, spare size = 64
このような応答が返ってきます。(こちらのサイトを参考にさせて頂きました)

--------------------------------------------

6.Superuser.apk および suコマンド の設置
root化済みの端末があればそこからsu等持ってこれるのですが、無いのでXDAから入手します。
冒頭のリンクからsu-2.3.6.1-ef-signed.zipを落としてきます。
(2つありますが、cdとなっている方はCupcace/Donut[1.5/1.6]用なので注意)

落としてきたzipを展開すると、
 system/bin/su
という形でsuコマンドが入っていると思いますので、同じ階層になるように作業フォルダにコピーし、パーミッションを適切に設定します。
適当な設定値の知識など無いので、参考にしたサイトの通りにそのまま...。
 # cp XDAからDL/system/bin/su /xperia/bin
 # chmod 755 /xperia/bin/su
 # chmod u+s /xperia/bin/su
 # chmod g+s /xperia/bin/su

同様に、Superuser.apkをappディレクトリにコピーしてパーミッションを設定します。
 # cp XDAからDL/system/app/Superuser.apk /xperia/app
 # chmod 644 /xperia/app/Superuser.apk

以上でroot化したシステムファイルの準備は完了ですが、ここで一手間入れておきます。
root化だけでいいよーっていう人は8.へ進んでください。

--------------------------------------------

7.FM radioの日本バンド対応 と フォントの入れ替え (任意で)
XPERIA mini proはFMラジオを搭載していますが。海外端末のためそのままでは周波数帯が異なり視聴できません。
また、標準で日本語表示に対応していますが、一部の漢字が中国語表記になってしまっている等、どうでもいい人にはどうでもいいですが、気にする人は凄い気にする状態ですので対応します。

まずFMラジオ。
これ(custom_settings.xml)をLinuxへ持って行き、
/作業フォルダ/etc/customization/settings/com/sonyericsson/にfmradioというディレクトリを作成してその中へコピーします。
そして適切なパーミッション設定を。
 # cd /xperia/etc/customization/settings/com/sonyericsson
 # mkdir fmradio
 # chmod 755 fmradio
 # cp 上記のxmlファイル ./fmradio
 # chmod 644 ./fmradio/custom_settings.xml

以上。こちらのblog(8796.jp 管理日誌)を参考にさせて頂きました。

次にフォントの入れ替え。まずは使いたいフォントを入手します。
WIndowsPCからメイリオなんかを持っていくのもいいかもしれませんが、著作権の問題があるのと、メイリオフォントはファイルサイズが大きいのでROM容量節約のためにもフリーフォントを。
今回はこちらからMigmix-1Pを入手しました。

展開するとregularフォントとboldフォントが入っていますので、regularをコピーして2つにしてから
 MigMix-1P-regular.ttf → DroidSans.ttf
 MigMix-1P-regular.ttf → DroidSansJapanese.ttf
 MigMix-1P-bold.ttf → DroidSans-Bold.ttf
にリネームし、Linux環境へ持って行きます。

そして作業フォルダ/fonts にコピーします。
ですが、Japanese以外は同名のファイルが既に存在するので、リネームなり削除なりしておきます。
戻すことは無いとは思いますが、そんなにファイルも大きくないので今回はリネームで。
 # cd /xperia/fonts
 # mv DroidSans.ttf DroidSansOriginal.ttf
 # mv DroidSans-Bold.ttf DroidSans-BoldOriginal.ttf
 # cp 持ってきたDroidSans.ttf ./
 # cp 持ってきたDroidSans-Bold.ttf ./
 # cp 持ってきたDroidSansJapanese.ttf ./

以上で、フォントの入れ替えは完了。

--------------------------------------------

8.イメージの再パッケージ
mkyaffs2imageを使って、作業フォルダの中身をimgファイルに変換します。
 # mkyaffs2image -c 2048 -s 64 /xperia 作成したい場所/System.img

なお、-cの後に5.で調べたchunk size、-sの後に同じくspare sizeを入力してください。

最初は参考にしたblogと同じように4096,128と入力してイメージを作ってしまったため、
見事に文鎮化しました...。


出来上がったSystem.imgをWindows環境に持って行きます。


--------------------------------------------

9.ブートローダーアンロックの準備

まず、ブートロック解除のためのコードを入手します。
電話番号入力画面で *#06# を入力すると、画面にIMEI表示されるので、ソニエリのこのサイトで入力すると、解除コードが入手できます。
その場で表示されるので、メールアドレス入力欄に生きてるアドレスを入れなくても大丈夫。
なんか心配だったので生きてるアドレス入れましたが。

次に、標準のUSBドライバではマウントできないため、一部書き換えを行います。
まずはドライバファイルを入手するため、Android-sdkのSDK Manegerを実行し、左ペインにある"Available packages"を選択。
次に右ペインから"Third party Add-ons"→"Google Inc."にチェックを入れ、画面右下の"Install Selected"をクリックして全部インストールします。

候補がたくさんあって、今回必要なのは1個だけですが、とりあえず全部入れとけば間違いなし。

google.png

すると、android-sdkのフォルダのextras\google\usb_driverにandroid_winusb.infというファイルができてますので、これを編集します。

[Google.NTx86]と書いてある行の下の方に各メーカーごとの設定値が書いてあるので、一番下のGoogle NexusOneの次あたりにでも、
; 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
を追記してやります。
64bitOSを使っているなら、[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

を追記。

次に、XPERIAの電源を切り、ボリュームUpボタンを押したままUSBケーブルを接続。
着信LEDが青に点灯すればOK。
PCにドライバインストール画面が表示されるので、先程作成したドライバを指定すれば準備完了。


--------------------------------------------

10.ブートローダーアンロックとイメージの書き込み

※引き返すなら今のうち。この作業で失敗すると文鎮化する恐れがあります。
 リスクを承知の上、自己責任で実施してください。
 当然メーカーサポートも受けられなくなります。


コマンドプロンプトにて、
 fastboot.exe -i 0x0fce getvar version
と実行し、バージョンが返ってきたら準備ができています。
私の場合は0.3と返ってきました。

次に
 fastboot.exe -i 0x0fce oem unlock 0xXXXX (XXXXのところはソニエリサイトで入手した解除コード)
を入力すると、ログが流れて最後にUnlockしたよ!というメッセージが表示されます。

cp01.png

そこまでできたらいよいよSystem.imgの書き込みで、
 fastboot.exe -i 0x0fce flash system Linuxで作ったor拾ってきたSystem.img
を実行すると、Romの焼き込みが実行されるので見守ります。
私の環境では80秒程で終わりました。

cp02.png

USBケーブルを外し、電源を入れて...無事起動すればroot化完了です!
起動しなければ、img作成を見直し(特にチャンクサイズ等の設定部分)、修正したSystem.imgを書きこんでみてください。

それでもダメなら、とりあえず最初に控えておいたオリジナルのSystem.imgを書きこめば初期状態で起動するはずです...。
それでもダメなら...ググってがんばってください。ダメなら文鎮化ご愁傷様です。

--------------------------------------------

11.root化できたか確認
適当なrootが必要なアプリ、ターミナルエミュレーターやESファイルエクスプローラーなどをマーケットから入手し、実行します。
せっかくなのでbusyboxインストーラー辺りで試して、ついでに入れてしまうのもいいかと。

アプリを実行してこの画面が出ればrootedです。
お疲れ様でした。

screenshot_1.png

=========================================

以上がroot化備忘録。

root化済みのimgを拾ってきて焼くのが手っ取り早いですけれども、フォントやFMラジオの追加とか、今回はやってないですがプリインストールアプリの削除やバッテリーアイコンの変更など、後からでもできるけど、イメージに適用しておいたほうが文鎮化したときにまた直さなくてもいいので練習兼ねてやってみました。

最初にチャンクサイズ等の設定が違っていることに気づかず、文鎮化してしまったときはどこが間違っているか分からず悩みましたが、なんとか理由がわかって無事に焼けました。

この週末にかなり色々と手を入れて、SystemUI.apkを修正してQuickPanelを追加したり、バッテリーアイコン変更したり、文鎮化したり...。w
またまとめて記事にする予定。


Add Social Services

トラックバック(0)

トラックバックURL: http://www.kitcat.jp/mt/mt-tb.cgi/412

コメントする

このブログ記事について

このページは、kitcatが2011年10月 3日 00:08に書いたブログ記事です。

ひとつ前のブログ記事は「XPERIA mini Pro (SK17a) を買ってみた。」です。

次のブログ記事は「Xperia mini proの電子コンパス問題と無線LAN(Baffalo)の相性について」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。