iOS 4からキャリアバンドルの扱いが変更され、CommCenterが〝署名が必要〟と見なしているキャリアでバンドルに正当な署名が見つからない場合、そのキャリアバンドルを拒否するようになりました。これに伴ってソフトバンクモバイルのUSIMカードでは、署名のあるなしに関わらずAPN情報を含むmobileconfigのインストールも正しく終了しなくなりました(APN情報が使用されない)。
最初からキャリアと紐付いたソフトバンクモバイル版のiPhoneだけ制限してくれればいいのですが、困ったことにこの制限はHNI (=Home Network Identity; MCC+MNC, IMSIの先頭5桁)が〝44020〟であるUSIMカード全体に適用されてしまうので、SIMフリー版のiPhoneでも影響を受けてしまいます。
つまり、iOS 4のiPhoneでは、ソフトバンク『プリモバイル』(白SIM)や通常契約(赤/銀SIM)を利用しようとすると音声通話しか使えないことになります。本来であれば3Gデータ回線を利用しないSMSは通るはずなのですが、ソフトバンクモバイルのキャリアバンドルにはMMS利用に関するフラグが立っているためか、SMSも正常に送達できません。
- 追記
- 当記事の記載内容については、当サイトのリポジトリより、CommCenter(Classic)に対するパッチは『CommCenterClassic patch for iOS 5』(※iOS 4.3.3またはiOS 5.0以降対応)を、ソフトバンクモバイル『プリモバイル』に対するキャリアバンドルは『SoftBank JP bundle(p)』を、『新着MMS受信』アプリに対するパッチは『smilehelp patch(p)』をそれぞれ利用すると、より円滑に作業を進めることが可能になると思います。
すでにiOSをJailbreakしていれば、iOS 4.x向けにCommCenterの署名検証ルーチンを回避するパッチが出ていますので、パッチを適用すればダミーの署名を付けたキャリアバンドルを使用させることが出来るようになります。パッチを適用すればAPNが変更できるため、MMSが利用可能になります(通常契約SIMでは3Gデータ通信も利用可能となります)。
以下では、このパッチを使用してソフトバンクモバイル『プリモバイル』のUSIMカードでMMSを送受信するための手順を紹介します。
本稿の目的としては、ソフトバンクモバイルから販売されたiPhone 3G/3GS向けのトピックではなく、あくまでもSIMフリーとして販売された(海外向けの)iPhoneをソフトバンクモバイルのプリペイドSIMで使用する場合の対応策を示すものです。
手順などはおそらくiPhone 4でも同様ですが、筆者はiPhone 4を所持していないので正確には分かりません(発売後の香港がゴタゴタしているのでいつ入手できるのかも分かりません)。
パッチとともに、以下の2ファイルを改変します(後述)。
- /System/Libarary/Carrier Bundles/SoftBank_JP.bundle/carrier.plist
- /var/mobile/Library/ Preferences/com.apple.mms_override.plist
パッチはOSバージョンによってファイルが異なります。以下のファイル名で検索するといいでしょう。
- iOS 4.0
- cocep-3g-3gs-v1.4.deb
- iOS 4.0.1
- ccp401_wortel.deb
- Jul 2011: iOS 4.3.x向け追記
- ごく最近のiOSであれば〝CommCenter patch 4ALL4〟(CCPatch.jav4.4ALL4.deb)などを使うとよいでしょう。当サイトで提供しているリポジトリでは『CommCenterClassic patch for iOS 5』が限定的にiOS 4.3.3をサポートしています。
.deb ファイルはパッケージなので、 dpkg コマンドを使用するか、Cydiaの自動インストールを使ってインストールします。
$ su - # dpkg -i ./CCPatch.jav4.4ALL4.deb # reboot
よく分からない場合は、 /var/root/Media/Cydia/AutoInstall/ ディレクトリに上記ファイルを置いて端末を再起動すれば自動インストールされます。端末を再起動したら、SSHなどからplistファイルを書き換えます。
/System/Libarary/Carrier Bundles/SoftBank_JP.bundle/carrier.plist の先頭と末尾に以下の青地の部分を加えます(末尾のsignature部は既存のものを書き換える)。 carrier.plist はバイナリ形式になっているため、Property List Editorなどを使ってXML形式に戻してから編集してください(端末に書き戻す際はXML形式でも受け付けられる)。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>ASCIIFileNameRequired</key> <true/> <key>AllowEDGEEditing</key> <true/> <key>AllowMMSCEditing</key> <true/> <key>AllowMMSEditing</key> <true/> <key>CarrierName</key> <string>ソフトバンクモバイル</string> ……(中略)…… <key>e_only_whitelist</key> <array> <string>110</string> <string>118</string> <string>119</string> </array> <key>signature</key> <data>thisisafakesignaturethisisafakesignature</data> </dict> </plist>
/var/mobile/Library/Preferences/com.apple.mms_override.plist は以下のような内容にします(※銀SIMのいわゆるopen接続ではiPhone MMSのUser-Agentを受け付けるため、下記の操作は不要かもしれません)。
- Jul 2011: iOS 4.3.x向け追記
- iOS 4.3.xでは com.apple.mms_override.plist を強制的にOS標準のものへ差し替えられることがあります。適切なパーミッション設定などで切り抜けてください。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>MMS</key> <dict> <key>GroupModeEnabled</key> <true/> <key>MMSC</key> <string>http://mms/</string> <key>MaxMessageSize</key> <integer>307200</integer> <key>MaxRecipients</key> <integer>10</integer> <key>MaxVideoBitrate</key> <integer>131072</integer> <key>Proxy</key> <string>sbmmsproxy.softbank.ne.jp:8080</string> <key>UAProf</key> <string>http://wap.samsungmobile.com/uaprof/708SCUAProf.rdf</string> <key>UserAgent</key> <string>SoftBank/1.0/708SC/SCJ001 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1</string> </dict> </dict> </plist>
上記の例では708SCのUser Agentを使うようにしていますが、他にも一部SAMSUNG端末やNokia端末などのUser Agentが使用可能です。また、他のパラメータも端末と対応サービスに応じて書き換えることで、iPhone標準の黒SIMとは異なったパラメータで動作させることができると思います。
すべて書き換えて端末を再起動すれば、設定からAPNを書き換えられるようになっています。mailwebservice APNを設定すれば、プリモバイルSIMでMMSの送受信を行うことが可能になります。
『新着MMS(メール)受信』アプリで新着確認をするために
ソフトバンクモバイルの提供する『新着MMS(メール)受信』アプリは、そのままではiPhone向けAPNしか利用できません。
以下のように設定ファイル /private/var/mobile/Applications/{ランダムなUUID}/smilehelp.app/Properties.strings を書き換えることで、mailwebservice APNでも利用可能となります。
- Jul 2011: iOS 4.3.x向け追記
- この手順をほぼ自動化するパッチを、当サイトのリポジトリにて『smilehelp patch(p)』として提供しています。
{ "HELP_FILE_NAME" = help; "INFO_URL" = "https://www.email.softbank.ne.jp/scspc/pc/ja"; "INTARVAL_TIME" = "-15.0"; "PROXY_PORT" = 8080; "PROXY_URL" = "sbwapproxy.softbank.ne.jp"; "RE_REQ_HOST_PARAM" = mail; "RE_REQ_HOST_URL" = "http://mail/cgi-ntif/mweb_ntif_res.cgi?jpn=1"; "RE_REQ_USER_AGENT_PARAM" = "SoftBank/1.0/708SC/SCJ001 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1"; "SETTING_HOST_URL" = "https://www.email.softbank.ne.jp/scspc/pc/ja"; "STR_PATTARN_1" = "\U4ef6\U306e\U53d7\U4fe1\U901a\U77e5\U306e\U518d\U9001\U3092\U53d7\U3051\U4ed8\U3051\U307e\U3057\U305f"; "STR_PATTARN_2" = "\U672a\U8aad\U30e1\U30c3\U30bb\U30fc\U30b8\U306f\U3042\U308a\U307e\U305b\U3093"; }
書き換え中にアプリケーションが起動されたままでなければ、次回起動時から問い合わせが成功するようになります。最悪でもrespringすれば反映されるはずですが、失敗する場合は設定を見直してみるといいかもしれません。
こんばんわ
返信削除質問します。
iOS4.1の場合はどうやったらいいのでしょうか?
教えてください。
iOS 4.1はまだJailbreakされていないので、次のエントリや続報をお待ちください。JBされても、CommCenterパッチなど周辺環境の対応も必要です。
返信削除http://blog.backspace.jp/2010/09/iphone-4-self-cutted-microsim.html
こんばんは。iPhone4 プリモバイル を使っているのですが(jailbreak済み)どうしてもMMSが使えません><
返信削除対処法をお願いします。
iOS 4.0.2/4.1でも、Jailbreak済みであればこのエントリと同じように CommCenter へパッチを当ててplistなどを書き換えれば今までどおり使用可能です。
返信削除当ブログを検索できる能力があれば、パッチも探すことが出来るのではないでしょうか。
初めまして。
返信削除あらわず様のサイトを参考にさせて頂き
plistの書き換えまでは完了したのですが、
APN設定が上手くゆきません。よろしければ、
あらわず様のAPN設定をご教授ください。
宜しくお願い致します。
"mailwebservice apn" あたりでGoogle検索すればたくさん出てくると思います。
返信削除あらわず様、本当にありがとうございます。
返信削除http://mws9.web.fc2.com/database-001.htm
助言通り検索をし、上記サイトのソフトバンクMMS
の設定をしたところMMSを受信できました。
この度は誠に有難う御座いました。
こんばんは、夜分遅くに失礼いたします。
返信削除iPhone 3GS oldbootrom を4.0.1の脱獄済。(JailbreakMe)
誤まてって何もSHSHなど保存しないまま4.1にあげてしまいました、
再度、Limera1nで脱獄をしなおし現在に至っているんですが。
ずっと、iPhone(解約済み) と白SIMでソフトバンクのプリペイドの計2台持っていたのですが今は対応しているのでしょうか。。。
危険そうなところのように見えるのでもしも現状のiPhoneでも対応しているならば、
是非 debの検索用語、、可能であれば御教授していただけないでしょうか。
お時間があるときでかまいませんのでなにとぞどうかよろしくお願いいたします。
older bootならuntethered jailbreakが可能ですし、(4.2.1ではなく)4.1ならCommCenterへのパッチもリリースされているのではないでしょうか。
返信削除少なくともGoogleでは "commcenter 4.1 patch" で該当しそうなフォーラムが検索できます。