こんな内容なことを書く人はあまりいないんじゃないかなと思いますが、格安SIMが流行りだしている今、iPhoneなどでそれを使う人は多いと思います。
そこで今回はiPhoneやiPadなどのiOSデバイスでどのように設定されているキャリア情報を読み込むかご紹介いたします。
(つづきへ・・・)
脱獄すればすべてが分かる!
正直な話をすると、脱獄というiOSのアンロックを行ってしまえばiOSすべてのデータがいじれるので分かるのですが、今回は脱獄をしたことない人向けに書いていこうと思います。
まず、iOSのファイル構造はとてもよくMac OS Xに似ています(あたりまえですが。)
例えば、Macなどではお馴染みの/System/Library/Extensionsにカーネル拡張(ドライバとも言う)などが入っているほか、/System/Library/CoreServicesがあったりだと、本当によく似ています。
/System/Library/Carrier Bundlesにキャリア情報が!
Appleがサポートするキャリアの情報は、すべて/System/Library/Carrier Bundlesというフォルダに入っています。通称キャリアバンドルといいます。
そしてiPhone用には/System/Library/Carrier Bundles/iPhone、iPad用には/System/Library/Carrier Bundles/iPadに格納されています。
さらにこれらには、Docomo_jp.bundleや、KDDI_LTE_jp.bundle、Softbank_jp.bundleというフォルダがあり、さらにそこには様々な情報が格納されています。
また、これらのフォルダ以外に、キャリアのSIM番号で名付けられたファイルがあり、それらは各キャリアフォルダへのシンボリックになっています。
さて、このキャリア情報、具体的になにが入っているかというと、
- APN情報
- 緊急地震速報等に関する情報
- テザリングやMMSを許可するか
- 最大テザリング許可台数
- 各種キャリアサービスへの電話番号やブックマーク情報
- キャリア提供のWi-Fi情報
- LTEへの接続可否情報
などが含まれています。
これらがあるおかげで、普通にキャリアからiPhoneを買ってもほとんど設定せずに利用することができるのですね。(逆に格安SIMの弊害になってるとも言えますが。)
手動設定欄とモバイルプロファイル
モバイルネットワークのAPN接続に関する情報はキャリアバンドルの他に、モバイルプロファイルや場合によっては設定のAPN編集欄からできますよね。
これらがごの順番に読み込まれていくかというと、
- Default.bundle
- SIMにあったキャリアバンドル
- 2.がなければUnknown.bundle
- 手動設定されたAPN情報
- モバイルプロファイル
の順です。要するに番号が高い方が優先度が高いというわけです。
〆
iPhoneのキャリアバンドルの仕組みはご理解いただけたでしょうか?
これで格安SIMを入れた際に「PDPに失敗しました」という警告がでるのは、iPhoneの設定されているドコモのキャリアバンドル、spmode.ne.jpに接続されてしまうからなんです。
この情報がのちに役に立つかどうかは謎ですが、もし応用すべきところがありましたら是非使ってみてください。
コメントする