Tuesday, April 13, 2010

続: SBM MMSをNexus Oneで使う

※ このエントリはカスタムROM(CyanogenMod)導入を前提にしてあります。カスタムROMに疎い方は読まない方がいいです。

※ 追記(04/16):CM-5.0.6がリリースされたので差分だけをupdate.zipにしたのを作りました。CM-5.0.6を導入後にリカバリよりFlashしてください。ダウンロード

前回のエントリはいやはや不完全でありました。
実際のところ、Mms.apkのUser-Agentを変更すればMMSを受信することはできたのですが、完全ではなく、受信通知はされるが「ダウンロード」表示になったり、通知すらされないこともありました。

で、いろいろ調査した結果、問題はframeworkのPduParser.javaにありました。
説明すると長くなるので端折りますが、SBMのMMSはMMSの仕様に合ってない文字列を送りつけており、そのせいでメッセージヘッダの解析に失敗し、OSへの通知までいかない、もしくは本文のダウンロードができない事象が発生していました。
こう書くとSBMが悪いように思えますが、そうでもないかもしれません。実際iPhoneでは受信できますし。

そんなわけで、そのへんを修正することで、問題なく受信ができることを確認しました。
ただし、当方ではsmile.worldの環境しかありませんので、open.softbankのMMSでは確認していません。

手順
. CyanogenMod 5.0.6-test3.jrf.2をダウンロードする
. CyanogenModを導入済みならば、いつも通りリカバリからFlashする。(gappsも必要ならFlashする)
. その他のROMの場合はwipeしてからFlashする。
. カスタムROMを導入したことがなければ、Googleで調べる。
導入するとこうなります


. メッセージアプリ(Mms.apk)の設定でUser-Agentを設定する

smile.world(黒SIM)なのでiPhoneにします。


ちなみに、このROMは5.0.6-N1-test3のソースコードをベースに日本語リソースの追加と、上記MMSの修正をしてあります。(Mms.apkのソースには手を入れていません)
また、APNリストにSoftbankとNTT DoCoMoを追加しておきました。
それ以外はCMそのものと思ってよいです。

手元では何度となくテストをして問題がなかったのですが、これでダメだったりすると結構手をいれないといけなさそうです。
あと、iPhoneにある新着MMS受信アプリ的なものがないので、そのへんは別途考慮しなくてはならなさそう。

※ 追記: Desire Camera(r1)など、framework.jar を上書きするModを導入すると使えなくなりますのでご注意を。
※ 追記: Desire Camera(r2)はframework.jarを弄らないので大丈夫そうです。

14 comments:

Anonymous said...

素晴らしいツールありがとうございます。これでようやくiPhone 3Gから移行出来そうですが、PlainTEXTでなくHTMLメールをたとえばgmailから送信して受信したとき、自動ダウンロードできず、受信に失敗します。手動でダウンロードすると送信アドレスが未表示となって、本文も表示されずおかしくなります。再現しますでしょうか?

takuo said...

問題を確認しました。
調べてみます。

parutan said...

ありがとうございます、早速使わせて頂いております。
ただ、私の環境ではr2 Desire CameraをインストールするとWiFiが使えなくなってしまいました。
試行錯誤して.33.2 intersectRaven's Kernelを導入して解決しました。以上ご報告までm(_ _)m

takuo said...

報告ありがとうございます。
Desire Cameraパッケージはカーネルを置き換えてるにもかかわらず、カーネルモジュール(bcm4329.ko)を添付してないので、そういったことが起ります。
カーネルとモジュールのバージョンが同じであれば、まぁ動くのですが…。

takuo said...

HTMLメールの問題を対処してみました。
http://takuo.jp/junk/cm-5.0.6/lab/
こちらにあるsigned.zipをリカバリからFlashしておためしください。
framework.jarしか含んでいませんので、test3を導入後にFlashしてください。
(test3導入済みでしたら再度test3を導入する必要はありません)

黒ペン先生 said...
This comment has been removed by the author.
黒ペン先生 said...

はじめまして。
CyanogenMod 5.0.6-test3.jrf.2
ダウンロードさせていただきましたありがとうございます。

ソフトバンク銀シム+パケット定額フルでopensoftbank設定にて使わせていただいたのですが、
メッセージのuseragentは iphoneにしないとメッセージがダウンロードできませんでした。 その他の設定は全滅でした。。
なぜ、銀シムなのに?!?!。

私がおかしいだけかもしれませんが;^^

takuo said...

黒ペン先生さん:
なんでしょうね、自分はopensoftbankの環境を持ちあわせていないで疎いのですが、参考までにAPNの設定内容を教えていただければ幸いです。

hito said...

update-framework-5.0.6-t3.jrf.2-signed.zip 導入させていただきました。数通送ってみましたが、うまく受信できているみたいです。ありがとうございます!しばらく使ってみたいと思います。

黒ペン先生 said...
This comment has been removed by the author.
takuo said...

APNのMMSの部分がどうなってるかお知らせくださいませ。
いくつか種類があるようなので…。

黒ペン先生 said...

お返事ありがとうございます。
私のAPNの設定は APN open.softbank.ne.jp ユーザーID opensoftbank PASS 以下略

こちらの方のページを参照致しました。http://www.yasukawa.com/blog/archives/000398.html

という感じです。ググッたら即効出てくる一般的な設定なんですが、送受信は銀シムで、iphoneのユーザーエージェントで出来ました。

なんか、根本的に間違ってるかもしれませんので勉強します;^^

parutan said...

CM-5.0.6対応版リリースして頂きありがとうございました。早速導入しました、いつも便利なツールありがとうございます。

miya said...

jrf-mms-fix after flashing CM-5.0.6-N1ありがとうございます。
デコメも不完全ですが受信出来、とても便利になりました(^^

バグか仕様かわかりませんが、報告させていただきます。
910SH相手だと、電番でのMMSで本文が受信できません(910SHが受け取れない)。
メールアドレス同士だと問題なく受信出来ます。
友人の910SHのやり取りで発生しましたが、自分の910SHでも再現しましたので、間違いないと思います。