X10 mini pro android2.1 Softbank MMSが”まぁまぁ”使えるようになった。【追記2010/11/19】

2010-12-15

またもや「no title」を運営しているruotalさんのおかげでandroid2.1なX10 mini proでもMMSの受信が可能になりました。
いつもありがとうございます。m(__)m

画像+絵文字を送信してGmailにて受信。

詳しいやり方とかは、

を参照してくださいませ。ほんと、すごいなぁ。。。。

まずはroot化とbusyboxのインストール

rootを取るにはSuperOneClickを使用するのが一般的のようでしたが、WLANの切り替えやdebug接続の切り替えのタイミンのせいなのか、なかなかrootを取りづらい。
某巨大掲示板を見ると、

というroot取得ツールがあるようで、しかもMarketからダウンロードできるというもの。
試しにやってみたところ、あっさりとroot化。拍子抜けです。

busyboxのインストールは以前投稿したやり方でbusyboxをインストールすることができました。

framework.jarを引っこ抜く。

PCとX10 min pro をdebug接続してDOS窓から下記を入力。

(今までpathが間違っていました。ynagaさんのご指摘をいただきまして修正しました。)

>adb pull /system/framework/framework.jar C:\

これでC:\直下にframework.jarが保存されていると思います。

framework.jarにパッチを充てる

no titleさんのサイト「Softbank MMS対応framework修正 (Xperia X10 mini(pro) Android2.1)」から

  • framework.jar.u20.sbm.20101109.bsdiff

をダウンロードしてきます。
次にWindowsな方はCygwinを使ってUNIXコマンドを使用できるようにno titleさんが用意してくれた

  • bsdiff.zip

をダウンロードします。

引っこ抜いた「framework.jar」、「framework.jar.u20.sbm.20101109.bsdiff」、bsdiff.zipから解凍した4つのファイルを適当なフォルダ内にまとめます。
私はworkというフォルダをC:\直下に作成して作業しました。

DOS窓からコマンドを実行

>cd C:\work
>bspatch framework.jar framework.jar.sbm framework.jar.u20.sbm.20101109.bsdiff

これでパッチ適用済みの「framework.jar.sbm」が作成されます。

・・・ここまで書いておきながら私はUbuntuでパッチを当てたので上記を試したわけじゃありませんがUbuntu、Windowsどちらの環境で作成したものでもファイルサイズは同じだったので大丈夫だと思います。
ちなみにUbuntuでしたらパッチを充てる前に

$sudo apt-get install bspatch

で必要なものをインストールしておいてください。

User-Agentの設定

no titleさんのところに書いてあるとおりですので詳しいことは書きませんが、私はiPhone使いではないので、iPhoneのUser-Agentは出来れば使いたくありませんでした。
そのあたりも考えてくださって、ファイルを用意してくれていますのでありがたく頂戴いたしました。
下記のファイルをダウンロード。

  • custom_settings.xml

テキストエディタで開き、Nokia X02NK/N95用のUser-Agentに設定しました。

<?xml version="1.0" encoding="utf-8"?>
<settings version="3">
<setting key="mms-useragent" runtime="false">SoftBank/1.0/X02NK/NKJ001 Series60/3.1 NokiaN95/20.0.273 Profile/MIDP-2.0 Configuration/CLDC-1.1</setting>
</settings>

改行コードとか、BOM付きの有無とかが関係あるのか分かりませんが、最初設定したときはどうもMMSを受信することができませんでした。
2回目に上記の赤字の部分だけの修正したところ受信もうまくいきました。細かい検証はしていないので、1回目の設定のどこが間違っているか分かりません。
修正したファイルも分りやすいようにC:\workフォルダ内にいれておきました。

さぁ、本体にファイルを戻しましょう。

まずframework.jar.sbmから。
作業としてはno titleさんの記事をコピペして若干修正すれば問題ありませんでした。
以下もコピペ。手抜きですみません。

> cd c:\work
>dir (ファイルがあるかどうか確認。)
c:\work のディレクトリ?
custom_settings.xml?
framework.jar.sbm
> adb push framework.jar.sbm /sdcard
> adb shell
$ su
# mount -o remount,rw /dev/block/mtdblock0 /system
# cp /sdcard/framework.jar.sbm /system/framework/framework.jar.sbm
# chmod 644 /system/framework/framework.jar.sbm

ここから一気に淀むことなく実行する必要があるようです。

# mv /system/framework/framework.jar /system/framework/framework.jar.bak
# mv /system/framework/framework.jar.sbm /system/framework/framework.jar
#sync
#reboot

再起動後は起動し切るまでに時間がかかりますので、まったりと待ちます。

次にcustom_settings.xmlを戻します。
怒涛のコピペ。

> adb push custom_settings.xml /sdcard
> adb shell
$ su
# mount -o remount,rw /dev/block/mtdblock0 /system
# mkdir /system/etc/customization/settings/com/sonyericsson/provider
# chmod 755 /system/etc/customization/settings/com/sonyericsson/provider
# mkdir /system/etc/customization/settings/com/sonyericsson/provider/useragent
# chmod 755 /system/etc/customization/settings/com/sonyericsson/provider/useragent
# cp /sdcard/custom_settings.xml /system/etc/customization/settings/com/sonyericsson/provider/useragent
# chmod 644 /system/etc/customization/settings/com/sonyericsson/provider/useragent/custom_settings.xml
# sync
# reboot

以上でファイルの戻し作業は終了です。

MMSアクセスポイントの設定

アクセスポイントは今更なんで細かいことは書きません。
menu -> Settings -> Wireless & network settings ->Mobile networks ->Access Point Namesからネットワークの設定をしてください。
IDとかパスワードはさんざん出てきているので特に書きません。
私はX02NKのものを使用しています。一応、X02NKユーザだったですから。

MMSC http://mms/
MMS proxy mmsopen.softbank.ne.jp
MMS port 8080
MCC 440
MNC 20
Authentication type <Not set>
APN type default,mms

APN typeを「defaul,mms」としたのは普段のインターネット接続用アクセスポイントとMMS用アクセスポイントを2つ作成していると、どうもディスプレイがオフになった際にネットワークの切り替えができずにMMSが受信できないような挙動があったからです。
また、ウェブブラウジングをしている時にMMSをX10 mini proに送信してみるとネットワークの切り替えができずMMSを受信出来ていないようです。
今のところ、このように設定していると画面が消えていても大丈夫です。
Nokiaなどでは上記のようなことが起きた場合、ネットワーク切り替えを促すダイヤログが出るので、作り込みが細かいなぁと感心していました。

Messaging.apkの件名バグはやはり耐え難い。

MessagingでMMSを作成すると相手方携帯電話には件名のところに本文が入ってしまいます。

試しに改行してみればなにか変わるかと思いましたが・・・

無意味でした。

そこで前の投稿では採用しなかった

を使ってみました。
こちらはCM5版をダウンロードして、Mms.apkを取り出してインストールしてみました。

追記:リンク先のダウンロードリンクが切れていますね。コメント欄に書いておきました。

>adb install Mms.apk

でインストールしてみました。(ファイラーで指定すればインストールできるとは思います。)
framework.jarの修正も必要とありましたが、この問題はno titleさんの修正が済んでいるので使うことが来ます。

インストールしてみると最初の何度か、メッセージの起動に失敗します。
またメッセージが起動しているとMessagingの方が起動しないこともあります。
タスクマネージャですべて終了させてから再度操作すると起動しました。

Mms.apkからなら絵文字も入るし、件名も追加できます。


試しにdocomo携帯から絵文字を送ってみる

デフォルトのMessagingだと絵文字の表示はもちろんできません。

しかし、Mms.apkで追加したメッセージの方は絵文字も表示できました。

ほんと、技術を持った方々のおかげでここまで快適に使えるようになるなんて、素晴らしいですね。
ありがとうございます。

【追記2010/11/19】

MMSが受信できなかった理由に「ローミング」があるそうです。

Mobile networksのData roamingが有効になっていないとConnectivityService辺りがMMSを無効にしてしまうようです(又はほかが無効処理して有効化さ れないか、のどちらか)。コネクションが張られても、その後にMMSクライアントにデータが渡されない状態になっていました。

詳しくは

をお読みくださいませ。
海外に行くことが多い方は要注意ですね。