CM4IS01

CyanogenMod for IS01でヘッドセットが使えるようになりました(^^)/
見よ!燦然と輝く右上のヘッドホンアイコンをw

2chのスレで紹介されていたやり方を真似てやってみました。以下にその手順をまとめておきます。

0.前提

OSはWindows7で、AndroidSDKやJRE、IS01用のドライバはインストール済みであることが前提です。

1.apktoolの入手とコピー

こちらより以下の2つのファイルをダウンロードします。

・apktool-install-windows-xxxxxxxxx.tar.bz2
・apktool1.x.x.tar.bz2

7/26現在の最新バージョンは
・apktool-install-windows-r04-brut1.tar.bz2
・apktool1.4.1.tar.bz2
のようです。

上記のファイルを解凍して出てくる以下の3つファイルをパスの通ったフォルダにコピーします。

・aapt.exe
・apktool.bat
・apktool.jar

私はddms.bat等と同じ\android-sdk-windows\toolsにコピーしました。

2.services.jarのコピー

CM4IS01からパソコンにservices.jarをコピーします。IS01をパソコンと繋いでコマンドプロンプトから以下のコマンドを入力します。
判りやすいようにDドライブのheadphoneというフォルダにコピーします。

[php]
cd d:\headphone
adb pull /system/framework/services.jar
[/php]

CM4IS01でadb接続できない場合は、IS01側で以下のコマンドを実行。

[php]
echo 1 > /sys/devices/platform/msm_hsusb_periphera/qxdm_enable
[/php]

まあこの辺はファイルのやりとりはSDカード経由でも問題無いと思います。

3.services.jarの解凍

コマンドプロンプトから以下のコマンドを入力します。

[php]
apktool d services.jar
[/php]

これでheadphoneフォルダの中にservices.jar.outというフォルダが出来ているはずです。

4.HeadsetObserver.smaliの編集

D:\headphone\services.jar.out\smali\com\android\serverのフォルダにあるHeadsetObserver.smaliをエディタで編集して「h2w」という文字列を全て「headphone」に置き換えます。全部で6箇所ありました。

5.services.jarの再構築

コマンドプロンプトから以下のコマンドを入力します。

[php]
apktool b services.jar.out
[/php]

終了後、D:\headphone\services.jar.out\distに新しいservices.jarが出来ているハズです。私の環境でのサイズを書いておきます。

処理前:D:\headphone\services.jar 656,689バイト
処理後:D:\headphone\services.jar.out\dist\services.jar 682,773バイト

ちょっと大きくなりましたね。

6.services.jarの書き戻し

コマンドプロンプトから以下のコマンドを入力します。

[php]
adb push D:\headphone\services.jar.out\dist\services.jar /system/framework/
adb shell
# chown system.system /system/framework/services.jar
# chmod 644 /system/framework/services.jar
# reboot recovery
[/php]

最後のリブートはコマンドじゃなくても良いです。CM4IS01のブートイメージが入ってる方から起動して下さい。

これで作業は終了です。再起動はかなり時間がかかるので、失敗したかと不安になりますが辛抱強く待ちましょう。これでヘッドフォンが使えるようになるハズです。

これで個人的なCM4IS01の最大の弱点が克服されました! 先人の方々の功績に感謝です。
あとはATOKで文字キーが効いてくれると嬉しいなぁ。