Xperia X10 mini proにKrSH v2.0を入れてみた

Xperia X10 mini pro用として新しくKrSHというカスタムkernelが出てきた。

現段階の売り文句
・CM7.1対応
・CWM Recovery v5.0搭載

たしかにこれを使うとオフィシャル配布のCM7.1とFreeXperiaProjectのCM7.1を動かすことはできた。
しかし、無線LANがちゃんと動かなかった。
また、adb logcatが有効にできないようなので、うまく動かない時の追求ができない、という問題点もある。

なお、KrSH+CM7.1からZombie Panic Kernel+GintonicSEに戻す時に手順によってはうまく行かないことがあるので注意点
1. KrSH+CM7.1の状態
2. KrSHのRecoveryに入って、GintonicSEを適用
3. そのあとZombie Panic Kernelを適用

Zombie Panic Kernelを先に適用してしまうと、Recoveryに入れない、という状況になる。

・KrSH v2.0のブートロゴ

説明書きにあるとおり、バグってます。

・いろんな場面の「yes/no」選択画面がおかしい

Xperia X10 mini proのkernelを書き換える

Xperia X10 mini/mini pro/X8のkernel部分というのは、いままでは署名の関係で、ソニエリ純正のkernelしか焼けないことになっていました。
それを回避するための方法が発見され、自由にkernelを書き換えることが可能となりました。
(2011/10/22 記載を一部改訂)

焼くための手順は、[Dev] Building kernel の3レス目 にあります。

重大な注意:メーカー保証はなくなります
注意2:文鎮化する危険性があります(といっても文鎮化した話は聞いたことありませんが)
注意3:Xperia X10 mini/mini pro用であって、2011年発売のXperia Mini/Mini Proの手順ではありません。
注意4:失敗しても当方は知りません。
注意5:カスタムkernelはAndroid 2.2もしくは2.3用です。標準のAndroid 2.1では動きません。

さて、手順ですが、上記URLを見ると長々書いてありますが、よくよく読んでみれば「msm7227.7z」をダウンロード、展開して、「msm7227_semc.cmd」を実行するだけ。
後のことは、違う手順でやる場合とか、詳細とかだったりします。

C:\tmp\bootloader>msm7227_semc.cmd
process requires standard 2.x android firmware.
続行するには何かキーを押してください . . .
Getting ROOT rights.
* daemon not running. starting it now *
* daemon started successfully *
1262 KB/s (585731 bytes in 0.453s)
error: protocol fault (no status)
Waiting ...
Removing NAND MPU restrictions via SEMC backdoor. Permanent. Require ROOT rights.
61 KB/s (3087 bytes in 0.049s)
success
Waiting ...
Getting ROOT rights.
Waiting ...
Writing patched semcboot. Two step process
First, we need get access to semcboot area
246 KB/s (8064 bytes in 0.032s)
Second, we need to write semcboot ; )  
1101 KB/s (596916 bytes in 0.529s)
successfully wrote 0003ff00
続行するには何かキーを押してください . . .

C:\tmp\bootloader>

ここで、再度、再起動がかかります。
この再起動は、普段よりながーくSony Ericssonのロゴが表示されます。
3分ぐらいは待ちましょう。

実際、文鎮化したかなぁ?と焦りました。

次にkernelを書き込みます。
必要なのはFlashtool

私の場合、手元にあったX10 Flashing Tool ver 0.2.6を使いました。
これは単純に以前Android 2.1を焼いた際に入手してあったから、というだけの理由です。
別の環境で試したときはver 0.2.9.1で行いました。
(ver0.3は使用できませんが、ver0.5以降は使用できるようです)

カスタムカーネルは何種類かでています。
2011/09/12現在だと2種類
slade87氏のZombie Panic
D4rKn3sSyS氏のD4kernel

2011/10/22時点では以下の4種類があります。
・slade87氏のZombie Panic Kernel
  現時点で一番メジャーなカスタムkernel
・D4rKn3sSyS氏のD4kernel
  一番最初に出てきたが作者がX10 mini proから卒業したので開発停止
・kamarush氏のKrSH
  CM7.1対応をうたっているものでCWM Recovery 5が組み込まれている
  Zombie Panic Kernelと比べると動きが怪しい点がある
・FreeXperiaProjectのFreeXperiaProject CM7.1.0 STABLE 添付のカスタムkernel
  CM7.1用のカスタムkernelが添付されている・・・ことになっているのだが
  いままでまともに動くバージョンがついてきたことがないという・・・
  そのため、kamarush氏のKrSHが出てきたという経緯がある。

この手順を作成した、2011/9/12 23:49時点ではZombie Panic Kernel ver 1.52の方が進んでいるようだったので、そちらを書き込む手順となっています。
2011/10/22時点のお薦めはZombie Panic Kernel ver 1.53で、手順は変わりません。

zipファイル内のftfファイルをflashtoolのfirmwaresディレクトリに置きます。

kernelを焼く前に下準備。
重複するモジュールファイルの除去です。
この手順を忘れるとタッチパネルの動きが変になったりします。

まず、/systemを書き込み可能な状態にします。

# mount -o rw,remount / /system
#

次に除去するファイルの確認

# cd /system/lib/modules
# ls
ls
ax8_smartass.ko    ext4.ko            sdio.ko            twofish_common.ko
dm-crypt.ko        jbd.ko             tiwlan_drv.ko      x8mddi.ko
dm-mod.ko          jbd2.ko            tun.ko             x8oc.ko
ext3.ko            mt.ko              twofish.ko         x8uv.ko
#

除去するファイルについてはカスタムROMによって違うので、それぞれのカスタムROMのスレッドに書かれているのでその通りにしてください。

2011/10/22時点では、GinTonicSE, Flame.E, GingerDXは、ZombiePanicKernel用で、標準kernelを使うには、追加モジュール集をインストールするという形式となっています。
MiniCM7 Pro, MiniCM7 SonyStyleは、標準kernel用で、ZombiePanicKernelを使う場合は、モジュール削除を行う形になります。

2011/9/13にZombie Panic ver 1.52で行った際は、以下のファイルでした。

ax8_smartass.ko  jbd.ko           x8mddi.ko
ext3.ko          jbd2.ko          x8oc.ko
ext4.ko          mt.ko            x8uv.ko

削除するのは怖かったので、oldというディレクトリを作成し、そこに移動させました。

# mkdir /system/lib/modules/old
# mv ファイル名 /system/lib/modules/old
#

その結果、/system/lib/modules ディレクトリには以下のファイルとなりました。

# ls /system/lib/modules
ls /system/lib/modules
dm-crypt.ko        old                tiwlan_drv.ko      twofish.ko
dm-mod.ko          sdio.ko            tun.ko             twofish_common.ko
#

準備が出来たのでFlashtoolでkernelを焼きます。

まず、flashtoolを実行します。

続いて「Flash」ボタンを押します。

「kernel.sin」と「loader.sin」だけが含まれているファイルを選択して「OK」ボタンを押します。
すると以下のウィンドウが交互に表示されます。

指示にあるとおり、USBケーブルを外し、Xperiaの電源を切ります。
そして、バックボタンを押しながら、USBケーブルを挿します。

すると、書き込みが開始されます。

こんな感じで書き込みが行われます。
「Flashing finished」
「Now unplug the device and power it on」と出たら書き込み終了です。

USBケーブルを外し、電源を入れます。

これで、Sony Ericssonロゴではないもので起動してくるはずです。
Zombie Panic v1.52だとこんな画面です。

書き換えてはみたものの、実際の使い心地とかはこれから検証です。
電池消費とかひどくないといいんですが・・・

電池消費については、どちらかというとカスタムROM側の問題が大きかったです。

Android用「Module Loader.apk」

2012/02/14 注意:ここのツールは2012年2月現在、ほぼ利用されていないものです。
————————-
Xperia X10 mini pro用のカスタムROM作者のD4rKn3sSySさんは、いろいろ周辺ツールも作るのが好き。

今回、新しくModule LoaderというAndroid 2.2以降用のアプリを作成。

用途は、FATフォーマットのmicroSDカードに置かれている、ユーザの好みで選択したいシステム系のモジュール(~.koファイル)を、システム起動時に自動的にロードしてくれるようにするもの。

なんでこういうのを作ろうかと思ったのかは、GingerDXの開発過程で、モジュールの選択に迷ったからっぽい。
標準で組み込むとバッテリー消費が大きくなるけど、組み込まなかったら、それはそれで問題があったりもするし・・・で

なので、Module Loaderを作って、ユーザの好みに応じてモジュールを選択できるようにする、ってことのようだ。

APP2SD環境では使えないようだけど、まぁ、問題はないかな

とりあえずは、/sdcard/modules/ とかいう感じでディレクトリを作って、そこに補織り込んでおけば、選択できるようになる感じですね

Xperia Mini Proでroot 2011/08/16版

(2011/10/27追記: root取るだけなら、新手法で簡単にできるようになりました)

まだ買ってないけど、新Xperia Mini Proでrootを取得するための手法覚え書き。

現状、一番簡単と思われる手法

まず、情報源はxdaのXperia arcのフォーラムの[FIRMWARE][4.0.A.2.368][Mini Pro][SK17i][MANGO] Official Firmware + ROOT solution
そこの33レス目に詳細手順に書かれている。

簡単な訳

(A) ブートローダをアンロックする(=保証が切れる)
準備1: Fast boot packageを入手
準備2: Fast boot用ドライバを入手(32/64bit drivers)

1. ソニエリサイトでアンロックコードを申請
2. メールでコードが送られてくる
3. fast boot packageを解凍
4と5. 解凍したフォルダでコマンドプロンプトを開く
6. Xperiaをfastboot modeで起動する
 電源を切り、ボリュームの上ボタンを押しながらUSBケーブルでパソコンと接続
 青LEDが点灯することを確認
7. ドライバのインストールを要求されたらFast boot用ドライバを適用
8. コマンドプロンプトで「fastboot -i 0x0fce getvar version」を実行する
 「0.3」とかいう感じで数値が取れることを確認。
9. 2で送られてきたコードの先頭に0xという文字をつけて
 「fastboot -i 0x0fce oem unlock 0xコード」という感じで実行
10. アンロック完了

(B) firmware 4.0.A.2.368を焼く
準備1: Flash tool
準備2: SE Stock FW: 4.0.2.368

1. FlashToolを展開
2. ggsetup-2.2.0.10をインストール
3. SE stock FWをfirmwareディレクトリにコピー
4. X10FlashTool.exeを実行し、Flashボタンをクリック
5. firmwareを選択すると、その次に電話をつなげという指示が開く
6. XperiaをS1Bootモードで起動する
 電源を切り、ボリュームの下ボタンを押しながらUSBケーブルでパソコンと接続
 緑LEDが点灯することを確認
7. S1Bootモードで起動する前に、以下をやっといてね
 設定-アプリケーションにて「unknown souce」、「usb debugging」を許可
8. しばらく待つ。終わったらUSBを抜いて、ブート
9. SE Stock FW:4.0.A.2.368の書き込み終了

(C)root取得
準備1: SuperOneClick v1.7
準備2: Kernel Custom

1. 電源off
2. (A)の3~6の手順を実行
3. Kernel Custom(boot.img)をfastboot.exeと同じディレクトリに置く
4. コマンドプロンプトを開いて「fastboot flash boot boot.img」を実行
5. [OK]となったら書き込み完了
6. USBケーブルを抜く
7. 電源を入れる
8. OSブート後、「unknown souce」、「usb debugging」を許可する
9. USBケーブルをつなぐ
10. SuperOneClickを実行し、「Root」ボタンをクリック
11. しばらく待てば完了

なお、私は、現状、Xperia Mini Pro/Mini を所有していませんので、詳しいところは分かりません。

Xperia X10 mini proのカーネルモジュール関連

2012/02/14 注意: ここで紹介しているカーネルモジュールはXperia X10 mini pro標準カーネルでしようするものです。
2012年2月現在では、カスタムカーネルを使用することが標準的であるため、基本的にここのものを使うことはない状態です。

カスタムROMの最新情報は「Xperia X10 mini proのカスタムROM事情 2012/02/08版」にて公開中です。
カスタムカーネルを使用するための手順は「Xperia X10 mini proのkernelを書き換える」です。
————————————————————
Xperia X10 mini proおよびXperia X10 miniで追加できるカーネルモジュールには、どういうものがあるのか、リストアップしてみた。
カスタムロムによって、搭載されている、されていないが、違うので、ないようであれば手動で追加する必要がある。

AX8_SMARTASS
AnDyX作のCPUの動作周波数などを調整する系カーネルモジュール
SetCPUと同居はできない

AX8NETFILTER
AnDyX作のAndroidにLinux netfilter機能を追加するカーネルモジュール
これを導入することでfirewall機能が追加され、そして、netfilter機能を利用したテザリングが可能になる。
一緒に配布されているapkをインストールすることで設定が可能。

X8Gesture Pinch zoom
doixanh作のX8およびX10 mini用のマルチタッチモジュール

Dualtouch Release
slade87作のX10 mini pro用のマルチタッチモジュール

X8Overclock
doixanh作のオーバークロックモジュール

X8Undervolt
doixanh作の電圧を下げて動作させるモジュール

X8MDDI
doixanh作の「mddi_host_register_read failed」とか「MDDI read timeout/error」とか表示される場合の遅延をなくすためのモジュール