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 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」とか表示される場合の遅延をなくすためのモジュール

Xperia X10 mini proにCM7系のGinderDXを入れてみた

Xperia Mini Proが盛り上がってる今日この頃ですが、うちでは予算認可が下りないため、相変わらずXperia X10 Mini Proを使ってます。
で、久々にCM7系のカスタムROMを入れてみようかなとGinger DXというのを入れてみました。

1. CWMに入る
2. factory reset 実行
3. 06.08.2011版を適用
4. ramdisk.tarを適用
5. GingerDX_Hotfixを適用
6. Camera_autofocus_fix.zip を適用
7. Backup and Restore-Advanced-Restoreでdataパーテーションをリストア

これで、CM6時代の設定がそのままでCM7への移行が完了!

と思いきや、コロプラとtwiccaがなくなっている。
titanium backupからリストアするとエラーが・・・

W/ActivityManager( 1821): No content provider found for:
D/PackageParser( 1821): Scanning package: /data/app/vmdl-1014537144.tmp
D/PackageManager( 1821): Scanning package jp.colopl
E/PackageManager( 1821): Package jp.colopl requires unavailable shared library com.google.android.maps; failing!
W/PackageManager( 1821): Package couldn't be installed in /data/app/jp.colopl-1.apk
D/AndroidRuntime( 3113): Shutting down VM

・・・google map関連のライブラリがない、とな

困ったもんだなぁ・・・解決方法はあるのか?

/system/etc/permissions/に「com.google.android.maps.xml」がないのが原因らしい。
他のCM7系のzipをあさってcom.google.android.maps.xmlをもってきて解決。

Xperiaシリーズのバッテリーメモ ver2

Sony Ericsson のAndroid携帯で採用しているバッテリー型番についてのメモ書き ver2
(ver1は、こちら)

BST-41 ( ドコモバッテリー型番 SO04 )
Xperia X10(X10i/X10a, SO-01B) BST-41 1500mAh
Xperia Play(R800a/R800at/R800i/R800x) BST-41 1500mAh

BA750 ( ドコモバッテリー型番SO05 )
Xperia Arc(LT15i/LT15a, SO-01C) BA750 1500mAh
Xperia Acro(SO-02C, IS11S) BA750 1500mAh
Xperia arc S(Ayame,LT18i/LT18a) 1500mAh

BA700 (ドコモバッテリー型番 不明SO06 )
Xperia Pro(MT16i/MK16a) BA700 1500mAh
Xperia Neo(MT15i/MK15a) BA700 1500mAh
Xperia ray(ST18i/ST18a, SO-03C) BA700 1500mAh
Xperia Neo V(MT11i/MT11a) BA700 1500mAh

EP500
Xperia Mini(ST15i/ST15a) EP500 1200mAh
Xperia Mini Pro(SK17i/SK17) EP500 1200mAh
Xperia X8(E15i/E15a) EP500 1200mAh
Xperia W8(E16i) EP500 1200mAh
Sony Ericsson Live with Walkman(WT19i/WT19a) EP500 1200mAh
Sony Ericsson Mini S51SE(イーモバイルモデル) EP500 1200mAh
Xperia active(ST17i/ST17a) EP500 1200mAh

BST-38
Xperia X10 mini pro(U20i/U20a) BST-38 970mAh
BST-38のスマートフォンでの採用例は他になし

・専用品採用
Xperia X10 mini(E10i/E10a) 専用品(P/N:1227-8101) Li-Polymer Battery, 950mAh 3.7V 3.6Wh

・噂の機種
SK19i キーボード付きRay?キャンセルされた説あり
Nozomi,Xperia Duo,SO-02D,LT26i/LT26a?
SK10i/SK10a という謎の機種

BST-41, BA750, EP500, BA700については、バッテリー自体のサイズを拡大化している大容量バッテリーの存在を確認。具体的にはMUGEN POWERのBatteryDoor付きの製品とかです。