X10 mini proの純正ROMでマルチタッチ

先週、ついにXperia X10 mini proでもマルチタッチ(2点認識)ができるようになりました。

—- 注釈情報1 start —-
Xperia X10は、オフィシャルで可能になっています。
Xperia X10 miniとX8は、先にアンオフィシャルで可能になっていますが、ハードウェア的に嘘マルチタッチな感じです。
「X10 mini」と「X10 mini pro」は名前とサイズが似ていますが、タッチパネルを構成するハードウェアが別物なので、流用できませんでした。
—- 注釈情報1 end —-

—- 注釈情報2 start —-
Xperia X10/X10 mini/X10 mini pro/X8は、カーネル部分を書き換えることはできません。
このため、カスタムROMとしてリリースされているXperia用 Android 2.2やAndroid 2.3というのは、カーネル部分はAndroid 2.1のまま、ソフトウェア部分のみをAndroid 2.2/2.3に載せ替えたもの、となります。
逆に、カスタムROM用にリリースされているカーネルの追加モジュールは、Android 2.1でも動作してしまうことがあるのです。
—- 注釈情報2 end —-

まずはマルチタッチドライバを[DEV] Dualtouch Releaseより、入手。
次にマルチタッチ設定を記載したandroid.hardware.touchscreen.multitouch.xmlを入手して、
手順に従ってやっていきます。

1. /system領域を書き換え可能にする

# mount -o rw,remount /dev/block/mtdblock0 /system

2. android.hardware.touchscreen.multitouch.xml を /system/etc/permissions/ にコピー

# cp /sdcard/android.hardware.touchscreen.multitouch.xml /system/etc/permissions/

3. アクセス権限設定

# chmod 644 /system/etc/permissions/android.hardware.touchscreen.multitouch.xml

4. cy8ctma300_ser.ko を /system/lib/modules/ にコピー

# cp /sdcard/cy8ctma300_ser.ko /system/lib/modules/

5. アクセス権限設定

# chmod 644 /system/lib/modules/cy8ctma300_ser.ko

6. /system/build.prop に以下の2行を追加

ro.product.multi_touch_enabled=true
ro.product.max_num_touch=2

7. /system/etc/hw_config.sh に以下の2行を追加

insmod /system/lib/modules/cy8ctma300_ser.ko
sleep 1

8. 再起動
9. 待ってる間、一服しよう
10. マルチタッチのテストをしよう!2点認識までだよ
11. (うまくいかなかったら) ショックのあまりコーヒーに落とさないよう注意!
12. (Mandatory)びっくりするほどユートピア!

…最後のあたりは、手順の原文の趣旨を尊重してみました^^;;;

ちなみに、私自身はCM6 v2.0で使ってるため、純正ROMでの使い勝手に関してはよくわかりません。

miniproにCM7を入れてみた

Xperia X10 mini pro用にCyanogenModの移植版が出てるわけなんだけど、それの名前が変わりました。

 CM6 v3.2.1→xCyanogenPro Floyo v3.2.1
 CM7 v2.0→xCyanogenPro Gingerbread v2.0

まぁ、ようはオフィシャルの「CyanogenMod」じゃないから、別の名前を使う、ってことですね。

0:00頃から、いろいろやってみて、xCyanogenPro Gingerbread v2.0を使ってみた感想ですが・・・

・Wifiが使えない(ずっと使える人もいるようだけど)
・マーケットの再起動は起きない(手動で/data/dalvik-cacheを作成することが必須)
・よくSDカードが勝手にアンマウントされる
・時折、再起動する
・結構な確率で反応がとろいことがある
・なぜかコロプラ+がサーバと通信ができないといって起動できない
(foursquareはちゃんと動く)
・寝ている間のバッテリー消費はCM6の2倍
(battery snapで3:00~7:00の間の減り具合 CM6:10%, CM7:21%)
ただし、CM6はwifi, CM7は3Gという違いがあるので
その影響である可能性は大

実用性・安定度とも2011/03/03現在では、xCyanogenPro Floyo v3.2.1の方が上ですね。

さて、xCyanogenPro Gingerbread v2.0のインストールについて、もうちょっと紹介。

重要な点: SE firmwareの2.1.1.A.0.6のベースバンドでは、うまく動かない可能性がある。
その場合は、xCyanogenPro Gingerbread v1.0添付のflasherを使って、古いベースバンドを焼く必要がある。
なお、2.1.1.A.0.6のベースバンドそのままでも動く。
とりあえず、バージョンダウンせずに試すのであれば、下記手順の1~12までは飛ばす。

0. miniproのバックアップを取る
1. xCyanogenPro Gingerbread v1.0をダウンロード
2. PCにmini pro接続
3. flasherのディレクトリにあるexeを実行
4. [flash]でfirmware書き換え開始。PC画面の指示に従いminiproの電源を切る
5. miniproのmicroUSBケーブルを抜く
6. miniproの「←」ボタンを押しながらmicroUSBケーブルを挿す
7. PC画面の方で画面が動いたら「←」ボタンを放す
8. しばらく待つ
9. PC画面に、miniproの電源を切れ、的なメッセージが確かでたと思う
10. miniproのmicroUSBケーブルを抜く
11. miniproの電源を入れる
12. miniproの初期セットアップ開始
13. superoneclickなどを使ってroot取得
14. xRecovery導入
15. microSDカードにxCyanogenPro Gingerbread v2.0をコピー
16. miniproを再起動
17. 白いソニエリロゴが表示されたところで「←」ボタンを押す
18. xRecoveryメニューに入る
19. [Advanced Options]→[Wipe Battery Stats」を実行
20. [Install custom zip from SD card]→[ファイル選択でさっきコピーしたv2.0のzip]
21. しばらく処理が行われる
22. 終わったら[Reboot phone]で再起動
23. 少し待つとAndroidロボットが表示されるが、すぐに進めず5分ぐらい待つ
(adb logcatすると、裏でいろいろ実行していたので)
24. そのままだとAndroid Marketが使えないので/data/dalvik-cache」というディレクトリを作る
PCからadb shellでログインしてから、「cd /data」「mkdir dalvik-cache」を実行
25. Androidロボットをクリックして初期セットアップを進める

で、この初期ブート状態だと無線LANは問題なく使えるのですが、再起動すると、それ以後使えなくなります。(SEfirmwareの状態から、2回やって、同じ結果だった)

logcatしながらWifiを有効にしてみると、以下のメッセージが出ています。

D/WifiService( 1653): ACTION_BATTERY_CHANGED pluggedType: 2
E/WifiHW  ( 1653): Unable to open connection to supplicant on "/data/system/wpa_supplicant/wlan0": No such file or directory
D/WifiStateTracker( 1653): Reset connections and stopping DHCP

実際、「/data/system/wpa_supplicant/wlan0」は存在しません。
これは、ただのファイルやディレクトリではなく、デバイスファイルかsocketファイルのようなので、別途initrcなどにより作られているっぽいんですが、なぜか出来ていません。

logcatのエラーメッセージで検索するとX8の方のスレが出てきて、そちらでもやっぱり同様の現象があって、解決したバージョンが出た、とか書いてあるので、v3で修正、とあるのは同じ対策を行うんだと思われる。

そんなわけで今後に期待です。

— 2011/03/03 19:00 追記 —
v3.0が出ましたが、残念なことにWiFi無効化、という対策を取られました。
そして、v2.0→v3.0へのアップデートはできずに、中身が初期化されました。

また、v2.0より安定度が落ちたような気がします。

ちょっと常用するにはきついので、CM6 v3.2.1に戻しました。
coviaのFleaLightによるVoIPを標準状態で使える、という点はおもしろかったんですけどね

ロイドちゃん時計

ロイドちゃん時計というのをインストールしてみた。

まぁ、いろいろ時計ウィジェットを探していた時に、たまたま目に入った、というだけですが、バックグラウンドの絵はともかく、時計の表示イメージがなかなかいい感じと思ったからだったり。

で、早速、Zeam Launcher環境に貼ってみた

むむむっ・・・
時計アイコンが邪魔だ。
むしろ無くていい

うむ。
これでよし!
アイコンがなくなったばかりか、時計表示部分も大きくなって、よりいい感じだ。

というわけで、うちのロイドちゃん時計はカスタムされました。

ちなみに、何をやったかというと
res/layout/roidclock.xmlの下記記述を削除してapkを再構築しただけです。

<ImageView android:id="@id/imageView1"
 android:layout_width="wrap_content" android:layout_height="wrap_content"
 android:layout_marginRight="5.0px" android:src="@drawable/clock" />

CyanogenMod6-v3.0

Xperia X10 mini proにCyanogenMod6 v3.0をインストールしてみた。

標準だとLauncher Proですが、Zeamってランチャーに変えて、こんな感じで使っています。

その他、いくつかスクリーンキャプチャをのっけておきます。
image

image

まぁ、↓の画像みて分かるように「カーネルバージョン 2.6.29」とあるように、実はkernel部分はAndroid 2.1、アプリ部分はAndroid 2.2.1という、キメラなAndroid 2.2.1だったりしますけどね。
これは、Xperiaの仕様上、Kernel部分の書き換えに成功していないからだったりしますけどね。
image

で、いま公開されているCM6 v3.0をインストールするときの手順概要

1. CM6 v3.0をダウンロードすると得られるzipファイルを「update.zip」という名前に変えてSDカードに保存
2. xRecoveryから「Install update.zip」を選択指定インストール
3. 続いてマーケット修正のzipファイルを「Install custom zip」からインストール
4. 「Factory reset」を実施
5. Rebootで初回起動。10分ぐらい待つ覚悟で。USBケーブルつないでいると動作が怪しいかもしれない

あと、今回のfirmwareでカメラが動作するようになりましたが、ソニエリ純正のカメラアプリと比較すると、CM6のカメラアプリは貧弱すぎです。
他にカメラアプリを持ってきた方がいいでしょう
私は、配布スレで紹介されているVignetteを買っちゃいました。

また、ランチャーに表示するための時計は、アナログしか用意されていないので、デジタル時計を表示したい人は別途探す必要があります。
いろいろありすぎて、探すのが面倒になっちゃって、とりあえず上の方にあったこいつなんかいれちゃってみましたけど^^;;;;

BookLive for Androidをインストールしてみた

BookLive for AndroidをQVGA端末のX10 mini proで使うとどうなるのかな?とインストールしてみた。

インストールだけで18MBも喰われた。
他にもアプリがあるので、LOW SPACE警告が・・・
アプリをいくつか消して、16MBの空きを確保

・・・


初期設定に失敗しました。

logcatでログを確認してみると・・・

I/ActivityManager( 1208): Start proc jp.booklive.reader for activity jp.booklive.reader/.main.MainActivity: pid=25650 uid=10110 gids={3003, 1015}
I/dalvikvm(25650): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=38)
I/dalvikvm(25650): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=40)
D/dalvikvm(25650): GC freed 1732 objects / 291960 bytes in 275ms
I/System.out(25650): java.library.path: /system/lib
D/dalvikvm(25650): Trying to load lib /data/data/jp.booklive.reader/lib/libbooklive.so 0x457741f0
D/dalvikvm(25650): Added shared lib /data/data/jp.booklive.reader/lib/libbooklive.so 0x457741f0
D/JNI_OnLoad(25650): JNI_VERSION_1_4
D/dalvikvm(25650): GC freed 3752 objects / 262296 bytes in 75ms
I/ActivityManager( 1208): Displayed activity jp.booklive.reader/.main.MainActivity: 1520 ms (total 1520 ms)
D/WifiService( 1208): ACTION_BATTERY_CHANGED pluggedType: 2
D/DeviceMonitor( 4650): com.sonyericsson.devicemonitor.StatusBroadcastReceiver: onReceiver android.intent.action.BATTERY_CHANGED
D/WifiService( 1208): ACTION_BATTERY_CHANGED pluggedType: 2
D/DeviceMonitor( 4650): com.sonyericsson.devicemonitor.StatusBroadcastReceiver: onReceiver android.intent.action.BATTERY_CHANGED
W/System.err(25650): java.io.IOException: No space left on device
W/System.err(25650):    at org.apache.harmony.luni.platform.OSFileSystem.writeImpl(Native Method)
W/System.err(25650):    at org.apache.harmony.luni.platform.OSFileSystem.write(OSFileSystem.java:178)
W/System.err(25650):    at java.io.FileOutputStream.write(FileOutputStream.java:297)
W/System.err(25650):    at jp.booklive.reader.util.ZipUtil.extractZipFromAssets(ZipUtil.java:125)
W/System.err(25650):    at jp.booklive.reader.main.MainActivity.run(MainActivity.java:366)
W/System.err(25650):    at java.lang.Thread.run(Thread.java:1096)
E/BookLiveReader(25650): MainActivity.java(369) run:fail to extract zip..., so delete font directory.

いったい何MB必要とするねん。
つか、SDカード使えよ!!!!

そんなわけで、こんな大食らいの人を住まわすことができないので、アンインストールとなりました。

他に、アメコミ系が読めるComixologyComicsと、Amazon Kindle縦書きビューアが入っている状況ではねぇ・・・

個人的にはXMDFが読めるやつが他に欲しいところなんだけど・・・
30冊ちょい持ってるから・・・