Jake's BLOG

最近のIT技術動向と社会問題など・・・・

HTC Desire(X06HT)で Softbank MMS対応する方法 Mms.apkの差し替え

2010/7/3 Mms.apk.jakeMod11アップしました。

Softbank X06HT(HTC Desire)の登場で、思わず衝動買いしそうになりつつ、ネットを調べるとどうもSIMフリーを海外から購入したほうが(エンジニア魂をくすぐる問う意味で)いろいろお得感が大きいという結論になり、さっそく購入しました。在庫有りだったためなんと香港からFedexで1日で届いてしまいました。

Softbankのアナウンスでは当初はMMSやメール送受信(Y!メールという?)はできないということでしたが、なんのそれくらいいいやと踏んでいたところ、それがいかに足かせになろうとは思ってもいませんでした。いろいろ触るうちに、どうしてもこれをメインの携帯として使いたいという欲がムラムラとこみあげてきて、ついに意地でもMMS対応させようと HTC DesireのROOT化、Andoid標準のメッセージソフトの更新に踏み込みました。

Android OS 2.1に関する話題はいろんなところでされているので、ここでは私個人の都合状どうしてもやらなければならなかったことをメモとして残しておこうと思います。

SMS/MMSにまつわる解決できなかった問題

  • UserAgent問題
    当初、SoftbankのMMSの接続ができない問題が持ち上がったときにこの UserAgent の偽装をおこなうことで送受信できるようになるといわれました。そこで、各所でUserAgentを選択的に偽装できる修正がなされたMms.apk ファイルが作られて配布されました。が、後に続く問題のために、どうしても実用的なレベルに使用できませんでした。
  • 本文に漢字が含まれるとメッセージが届かなかったり、件名と本文がぶっ飛んだりしてしまった
    メッセージが通知もされず届かないという問題は致命的でした。
  • 画像などの添付ファイルがあるとやはりおかしかった
  • 改行キーでメッセージを送信するとメッセージが同じもの2通が送信されてしまう
  • ファイル名としてふさわしくない文字列を含む添付ファイルを保存しようとするとできない。
  • 件名に日本語を含んだメッセージを「書きかけ」としていったん保存すると再度の編集時、件名が文字化けする。

その1:ROOT化

Androidのシステムに標準に組み込まれているソフトは通常のアプリのインストール方法なで上書きやアップデートがかけられないようにロックされています。つまり、OS上でROOT権限がないとこれらのコンポーネントの変更・削除ができないことになります。

そこで、俗に言われるROOT化という禁断の手が必要になります。この作業はご存じのとおり、メーカーの保証や各所のサポートを受けられなくしてしまう禁じてであるのでおいそれとはすすめられません。また、この方法についてはここでは省略しますので、関係各所を参考の上チャレンジしてください。

Googleの検索結果

その2:APN問題

SIMフリー版など、携帯キャリアのものでないデバイスを使用する場合について回る問題です。通話やSMSは何もしないでもSIMを差し替えるだけで使えるようになりますが、3G回線を利用したインターネットの接続のためにはいわゆるAPN(アクセスポイント)を設定しないといけません。

これについても、キャリアがオープンにしていない話題ですし、各所で紹介されているのでここでは省略します。

Googleの検索結果

その3:MMSの接続設定

APNの設定の中に、MMSを送受信するための設定も含まれています。SoftbankでMMSを送受信するために、これらの設定が正しくされている必要があります。

Googleの検索結果

その4:Mms.apkの上書き

SMSとMMSを司るソフトコンポーネントは Mms.apk というパッケージで、システム上の /system/app/Mms.apk というファイルです。

SoftbankのSMS,MMS通信ができない理由は、通信プロトコルの不整合や、AndroidOS自身に内在する不具合など複数の要因によって起こっています。これを根本解決するには、Androidのシステムライブラリを含めてSoftbank仕様として再コンパイル後、ファームアップデートとして顧客に配布するよりないのではないかと思います。が、ここでは、それを待っていたら、Softbankのアナウンス通り今年の後半まで指をくわえて待っていなければなりません。

で、必死になって Mms.apk を自分でコンパイルしました。

Softbank MMS問題の修正は、実は4月末までにとある方によってなされており、Android OSのソースを管理する Android Open Source Project にすでに反映されています。そこのソースコードを取得して必要なファイルを更新すればいい・・と思ったところそうは簡単ではないことがわかりました。

Softbank MMS問題の不具合は実はMms.apkの中ではなく、MMSの通信自体のライブラリが格納されている /system/framework/framework.jar という共有ライブラリの中にあったのです。ところが、このファイルを置換することは残念ながらできません。おそらく携帯デバイスやOSのビルドの種類ごとに異なる内容になっており、これを書き換えるとOSそのものが起動しなくなる恐れがあります。そこで、framework.jarには手を付けないで、Mms.apkだけでなんとか済まされないかと格闘。

苦肉の策は、framework.jar に含まれていたMMS関連のソースコードを引き抜いてきて、Mms.apkのソースコードとしてコンパイルしなおすというものです。

この結果、Android標準のメッセージアプリでは無事SMS/MMS/携帯メール の送受信が正しく行えるようになりました。

Softbankでの利用では、Mms.apkを更新後、まず最初に User-Agentの設定を忘れずに行ってください。

 

改善される点のまとめ

  • UserAgentが選択またはカスタム設定可能
  • SoftbankのMMSの送受信の種々の不具合の改善
    (メッセージの不着、着信しても本文空、画像添付時の不具合などが改善)
  • ENTERキーで送信した場合にメッセージが同じもの2通が送信されてしまう不具合
  • バイブレーションパターンの設定、LEDの設定がある(HTC DesireではLED動かず?)
  • 送信アドレスの入力テキストボックスでの検索と候補表示で電話番号だけでなくメールアドレスからも選択できるようになった。
  • 新たな設定項目(Eclairのソースコードに含まれていたものを含む)
    スレッドの背景色(有機ELのDesireの場合黒のほうが消費電力が少ない?)
    改行キーで送信するかしないかの設定
    フォントサイズの設定
Mms.apkjakeMod5以降での更新
  • アドレス帳のメールアドレスからSMS/MMS送信にジャンプできるように修正。
  • 既存のスレッドにない宛先にジャンプした時の不具合など修正。
Mms.apk.jakeMod6での更新
  • ファイル名としてふさわしくない文字列を含む添付ファイルを保存しようとするとできない。
  • 件名に日本語を含んだメッセージを「書きかけ」としていったん保存すると再度の編集時、件名が文字化けする。
Mms.apk.jakeMod7での更新
Mms.apk.jakeMod8の更新内容
  • ほかのアプリからEMAILアドレスが引き渡された時にアドレスが失われる問題を修正
    Intent.ACTION_SEND で Intent.EXTRA_EMAIL の参照を追加。
    ※元々Mms.apkはEメールアドレスを取り扱う想定が全くなかったのでこういうことに・・・
Mms.apk.jakeMod9の更新内容
  • mailto:******?subject=xxxx&body=xxxxx にただしく対処
Mms.apk.jakeMod10の更新内容
  • multipart/alternative の取り扱いミスで文字化けを修正
  • X01TのUser-Agentを修正
Mms.apk.jakeMod11の更新内容
  • cyanogenリポジトリからの修正分を(2010/6/30までの分)

制限事項:

  • この Mms.apk 差し替えで有効なのは Androidに標準の「メッ セージ」アプリを使用した場合だけです。アンドロイドマーケットで配布されている各種SMS/MMSアプリでは同様の問題は改善されません。
  • 受信中に表示を切り替えたりすると、異常終了するなどの不具合は時々見られます。(もともと内在する不具合か)

ダウンロードはこちら

Mms.apk.jakeMod11

  • 想定環境: Android OS 2.0以上 (HTC Desire ROM 1.21 MoDaCo Custom ROM r1 r2 r3 r3.1で動作確認済み)
  • Android 2.2 (Froyo)の場合はこちら

 

Mms.apk.jakeMod11 (897 kb)

 

Comments (43) -

  • eternal7786

    5/22/2010 1:46:24 AM |

    この度Milestoneを入手しましてmms導入に四苦八苦しております。どうもインスコだけでは一覧にアプリ自体表示すらされません。FWVer. 2,1-Updaete1 でRootedしただけです。何かインストールの際の注意事項はあるのでしょうか? いきなりですみませんが、ご教示ください。

  • yo-ki

    5/22/2010 3:21:24 AM |

    Milestoneについてはよく知りませんが、既存のMms.apkはあるのでしょうか?あるとすればシステムのメッセージアプリがそのまま上書きされるので見た目上の変化はないはずです。それともMms.apk自体の上書きに失敗されているのか、adb install Mms.apk しようとしてうまくいってないということでしょうか?

  • yo-ki

    5/22/2010 3:30:23 AM |

    元々ある /system/app/Mms.apk と /system/app/Mms.odex ファイルの2つを別名でよけてもらっているでしょうか?

  • eternal7786

    5/22/2010 3:37:34 AM |

    お騒がせしました。試行錯誤したのですが、結論から言いますと無事に成功しました。
    ふと保存したMod6ファイルを見ましたら47kbと少なかったのです。慌ててこちらのリンク先からインスコし直しましたら無事起動、送受信成功いたしました。
    大変お世話になりました。ありがとうございます。(成功したてのホヤホヤです)

  • k1777

    5/29/2010 8:15:36 AM |

    はじめまして、k1777と申します。
    Mod6をHTC-HeroのカスタムROMで使用したところ、DoCoMo/au/Softbank全てのMMSを送受信でき正常動作しております。
    ありがとうございました。

    ■HeroカスタムROMの詳細
     ・ROM名:NeORoM-V2.1
     ・Farm:2.1
     ・Kernel:2.6.29-8d063048
    APNでのMMSプロキシはmmsopen~で、UAはV702NK2で成功しました。

  • ylyu

    6/8/2010 11:32:16 PM |

    Mms.apk.jakeMod6 をダウンロードができない、教えていただきませんか

    • Jake

      6/9/2010 1:46:17 AM |

      RapidShareの使い方ですね?とんだ先のページで「FreeUser」をクリックしてください。しばらくのカウントダウンのあとダウンロード用のアイコンが現れますのでそれをクリックしてダウンロードしてください。ややこしくてすみません。

  • うち

    6/11/2010 4:23:35 AM |

    FroyoでのMMS送受信も可能でしょうか?

    • Jake

      6/11/2010 8:59:27 PM |

      Android 2.1用にコンパイルされているので Froyoでは動作しないと思います。AndroidOpenSourceProjectにFroyoが登場したら更新したいと思いますが・・・

  • Allan

    6/12/2010 2:30:41 AM |

    mms open proxyとjakemod7でx06htは送信できないです。受信はできるけど写真はダウンロードできません。v702nk2
    どうやって設定しますか?

    • Jake

      6/14/2010 10:08:00 PM |

      SBのSIMのタイプや、SBとの契約内容によってもいろいろ差があるような、ないような情報が飛び交っています。契約的にグレーな、あるいはうかつに請求が青天井になってしまいそうな個別の微妙な設定についてはあえて私のBlog上では端折らせていただきました。成功例をBlog上で紹介されている方々がおられますのでそちらを参考にしていただけるでしょうか。

  • koro

    6/13/2010 8:35:24 AM |

    標準の連絡先アプリからはメッセージアプリに宛先を送れるみたいですが、Jブック2を使用しているとメッセージアプリに飛ぶ時に宛先が消えてしまうようです。Jブック側の問題でしょうか??

    • Jake

      6/14/2010 9:58:15 PM |

      EMAILアドレスを受け取るMms.apk側の問題です。元来電話番号だけでやり取りする海外一般で想定されていることによります。他のEMAILアドレスをやり取りするアプリとの連携では同様に問題があったと思います。Mod8でアドレスを受け取るように修正してみました。CCやBCCなどの指定は今でも無視されてしまうと思いますが・・・

      • koro

        6/15/2010 7:00:33 AM |

        迅速な修正ありがとうございます!
        快適に使わせていただいております。

  • UKV

    6/19/2010 5:51:54 AM |

    はじめまして
    ソフトバンク黒SIMにてUser Agentの変更だけでは受信が出来ないメールもあり難儀していました。
    本日Mms.apk.jakeMod8をインストールさせて頂いたところ今のところ問題なく受信ができるようになりました。

    使用機種がSamsungのGlaxy Spicaと日本では超マイナー機種ですが、root奪取済みOS2.1上で使用可能だったことをご報告します。

    またGalaxy Sもrootが取れればMms.apk.jakeMod8を使えばMMSの問題も大丈夫かなぁと思っていますが今のところ購入予定はありません。

  • tatttooo

    6/19/2010 6:07:45 PM |

    はじめまして。
    突然の質問で失礼致します。
    私はHTC Tattooと言うマイナー機種をsoftbankで運用しております。
    jakeModシリーズをandroid 1.6(Donut)で動作させるようにして頂く事は可能でしょうか?
    数少ないtattoo使い(とHT-03Aのsoftbank運用者)が助かります^^;
    併せて、Mms.apk.jakeMod7ダウンロードさせて頂き、android 2.1(に焼き直した)のtattooで動作する事は確認しております。

  • Wizard

    6/20/2010 1:40:31 AM |

    r3.1 ROM with default MoDaCo additions and A2SD+ を使っています。
    Mms.apk.jakeMod8を使っていますが受信は出来ているようなのですが
    ダウンロードがダウンロード中となり止まってしまいます。
    プロキシはmmsopen、sbmmsと両方試して見ましたが同じでした。
    r3とr3.1には違いがあるのでしょうか?

    • Jake

      6/20/2010 1:45:20 AM |

      現在私も同じ条件で使用しています。MoDaCo r3.1+A2SD+ですね。私もr3からr3.1へ上書きしましたが、Wipeもせずにそのまま問題なく使えています。ただ、MMSの設定がすべてデフォルトに戻ってしまったので、設定し直しが必要です。ダウンロードで止まるのはUserAgentの設定ではないかと思います。いろいろな選択で試してみましたか?

  • Wizard

    6/20/2010 1:52:21 AM |

    User-AgentはV802SE,V702NK2、Nokia N95等試して見ましたが
    結果は同じでした、もう一度入れ直して見ます。

  • ina

    6/29/2010 12:43:33 AM |

    初めまして。
    Mms.apkそもそもの仕様なのかもしれませんが、
    複数人宛のメールを受信した後に返信を行うと、
    全員に返信といった形ではなく、fromで
    送られてきたアドレスにのみ返信を行う様です。
    これはAndroidのMms.apkの仕様によるものでしょうか。
    それとも何らかの方法で対応が可能になるのでしょうか。
    少しばかり不便に感じましたので質問させて頂きました。

    • Jake

      6/29/2010 11:57:46 PM |

      これはそうですね。CcやBccについてもそうですが、Mms.apkにはもともとない機能ですね。現時点ではどうしようもありません。

      • ina

        6/30/2010 12:53:50 AM |

        返信ありがとう御座います。
        やはり、そういった機能自体がないのですね。
        SoftBankはこの辺りの対応も検討するはずなのでそちらに期待したい所です。
        所持しているのはUK版ですが・・・

        ※返信ボタンを押さずに送信してしまいました。
         可能でしたら、別コメントを消して頂ければ幸いです。

  • umka83

    6/30/2010 6:28:35 AM |

    ありがとうございます。
    AcerLiquidで JakeMod7~JakeMod10を利用してみましたが、やっぱり、Gmailからメールっが届きません。何かいいほうほうないのかな・

  • k1777

    7/1/2010 7:03:52 AM |

    こんばんは、k1777です。
    2.1のカスタムROMを焼いたHTC-HeroにMod10を導入しました。
    「古いメッセージを削除」のチェックを外した設定で同一人物と
    MMSのやりとりをしていたところ、20件を超えたところでバンバン
    古いメッセージが削除されていた事に気付きました。
    (Mod9まではカスタムROMを毎晩焼いていたので20件まで到達せず未確認)
    私はこれでも弊害はありませんが、参考情報にと思い書き込み
    させて頂きました。

  • あのにます

    7/2/2010 6:05:32 AM |

    Android OS 1.6用のビルドもおながいします。

  • bb

    7/4/2010 12:04:04 PM |

    初めまして。お世話になっております。
    jakemod10と11を使用させていただきました。

    SoftBankの赤SIM(Vodafone)にてGalaxy-Sを運用しております。

    SoftBankの電番宛てに件名または添付ファイルを含む文を送信すると、
    smil.xmlという謎の添付ファイル(中身を開いても空)が付いたメールに化けてしまい、
    本文または添付ファイルが見られません。
    同じような現象は起きておりませんでしょうか?また原因・対策が分かれば教えてください。
    (件名なし&添付ファイルなしのMMSや、SMSでは送受信ともに問題ありません)

    突然のお願いで申し訳ありません。

    • Jake

      7/5/2010 7:18:01 AM |

      Handcentなどの類似のMMSソフトがあるとそれがsmil.xml添付ファイルを付けて送受信することがあったと思いますが、Mms.apk以外にMMSアプリをインストールしていたりしていませんか?

      • bb

        7/17/2010 8:24:23 AM |

        素早い返信をいただいていたのに、遅くなってしまい申し訳ありません。

        まさにHandcentを入れていました。個人的にMms.apkよりも使いやすいと思っていたのですが、これが原因だったのですね。。。

        Handcentをアンインストールするしかないようですね。。。どうもありがとうございました。

  • 草井田

    7/6/2010 6:38:57 AM |

    Android初心者です。
    海外から入手したSIMフリーのGalaxy S にて、Mms.apk.jakeMod11を使わせていただこうと思い、
    adb install Mms.apk.zip
    としたところ、
    Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
    と表示され、インストールできませんでした。
    もしかしたらとても初歩的な間違いをしているのかもしれないのですが、アドバイスいただけますでしょうか?

    • Jake

      7/6/2010 8:04:13 AM |

      adb install -r Mms.apk.jakeMod11
      は試しましたか?
      通常ですとこのパッケージはシステム領域にあるので、ROOTをとった上で、いろいろトリックを使わないと上書きインストールはできないと思いますが・・・

      • 草井田

        7/6/2010 10:29:08 AM |

        アドバイスありがとうございます。

        試してみましたら、
        [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
        と、メッセージが変わりました。
        証明書関連ではじかれたようなので、元のMms.apkをアンインストールしてみようと思いましたが、これはFailuerの一言で断られ・・・なかなかうまくいかないものですね(汗

        adbにはcpコマンドがなかったり、ストレージ間のファイル移動ができなかったりと、今のところ躓くことだらけです。
        FreeBSDから来たので、インストールパッケージがZip形式になっているとか、LinuxやWindowsMediaPlayerのSkinのようだなぁと。

        どんなトリックが使えるのか、どうも私は基礎的なところがわかっていないようなので、自分でもうすこし調べてみますね。

        • 草井田

          7/7/2010 4:31:29 AM |

          試行錯誤の結果、インストール&起動できました。
          インストール工程が必要かと思いこんでいましたが、元のアプリをリネームして置き換えてもよかったんですね。

          最初は元のMms.odexを残したままそれをやっていたので、起動時にエラーで異常終了してしまい、これはパッケージの登録DBがどこかにあって証明書と突き合わせて起動時にチェックしているのではないかとか深読みしすぎていました。
          iPhoneの黒SIMでの実験でしたが、MMSが成功した一方で、Webが見られないという変な状況に陥っています。こちらもこれから頑張って解明せねば・・・
          どうもありがとうございました!

  • 草井田

    7/9/2010 5:43:17 PM |

    お世話になります。重ねて質問すみません。

    お陰様をもちまして、Vodafoneの赤SIMでもiPhoneの黒SIMでも、MMSが安定して送受信できるようになったのですが、
    ガラケーから来たS!メール(要するにMMSですが)や、PC宛に来たEmailが転送されてきたもの、iPhoneから送信されたものなど、すべての受信メールについて、改行のところに四角い余分な文字(いわゆるトーフ)が表示されます。

    改行コードの解釈の問題なのか、フォントの問題なのかと思い、Windows7から移植してみたフォントとIPAのフォントを両方試しましたが、どちらも発生しました。
    これは、現段階のMms.apkでは、そういうものとしてあきらめるべきでしょうか?
    それとも、こんなものが出るはずはなく、私の導入の仕方が間違っているのでしょうか・・・?

    • Jake

      7/9/2010 7:12:50 PM |

      こんにちは。あまり改行を気にしたことがなかったですが、Outlookから複数行のメールを送ってみると各行の間に空行が入っていました。CR LFコードの取り扱いミスなんでしょうか。ちなみにトーフは見られませんでしたが私がTTFを自前で絵文字とくっつけたやつを使っているからかもしれません。ちょっと調べてみます。

    • Jake

      7/9/2010 9:30:17 PM |

      どうやらOutlookからHTMLメールを送った場合、マルチパートのうちtext/plain部分のメセージで、改行がダブルで 0x0a 0x0a で入ってしまっているようです。Outlookの仕様か、あるいはメールサーバーで入ってしまったのかはわかりません。Textメールを送った場合や、gmailから送った場合などはこの症状は見られません。ただこの文字がトーフになるのはフォントセットの側の問題ではないのかなと思いますがどうでしょ?

      • 草井田

        7/10/2010 5:48:27 PM |

        お騒がせして済みませんでした。
        いろいろフォントを入れ替えして試してみたところ、フォントセットが原因だとわかりました。
        どうも私が自分でFontforgeを使って作ったTTFがいけなかったようです・・・orz

  • kie

    7/14/2010 10:41:40 AM |

    milestoneで使わせて頂いています。
    今まではframework.jarを逆アセンブリして騙し騙し使ってましたが、
    素晴らしく快適になりました。ありがとうございますm(_ _)m

  • 通りすがり

    7/19/2010 10:55:37 PM |

    海外版Desireで快適に使わせていただいております。
    電波の弱い環境で、通知のみ受信し、本文のダウンロードに失敗した場合、ダウンロードボタンを押すと本来のメッセージとは別に、差出人・宛先・件名・本文すべて空のメッセージが受信されてしまうようです。
    本来のメッセージは正常に受信できているので問題はないのですが、少し気になります。

    あと、「転送」を行うと行末に豆腐が現れ、このまま送信するとmms.apkが落ちます。
    豆腐を手動で全部消せば正常に送信できるようです。

  • Spica

    8/6/2010 8:03:48 AM |

    はじめまして。
    突然の質問で失礼致します。

    SamsungのGlaxy Spicaと銀SIMで、ソフトバンク3Gに接続を試みしています。
    環境:OS2.1+Root解除+JE版Rom
    ネットで調べたAPNの設定で、3Gのマークが出ますが、
    ↑信号のみ動くので、↓信号まったく動かず。

    APN設定に詳しい方、是非教えてください。

  • 通りすがり

    8/16/2010 11:13:04 PM |

    前回、転送するときに行末に豆腐が表示されるとコメントした者です。
    この豆腐はMMSに限って現れるようです。
    フォントを入れ替えて調査した結果、行末の豆腐はCRだとわかりました。
    http://sa89a/up/src/up0163.png

  • おっ

    8/20/2010 7:42:56 PM |

    質問です。
    導入させていただいたのですが、電話番号相手にしか送ることができません。
    どのようにすればよいでしょうか?

  • Leo

    9/8/2010 6:04:29 PM |

    はじめまして。

    Dell Straekにインストールして問題なく動作致しました。 重宝に使用させて頂いております。 ありがとうございます。

Comments are closed