中国昨年2013年11月から始まった、4G LTE(TD-LTE)サービス。
中国移動がその口火を切ったわけだが、
その4G LTEを使うとiPhoneのmap等で位置情報が使えなくなるという現象があり、
私もその現象をすぐに発見した。
その原因を中国のハッカー集団で中国移動と特殊な関係を持つChinasnow(中国超雪)が、
公式サイトの記事で解説しているので、翻訳してみたいと思う。
「iPhone5S/5Cが移動4G LTEユーザーが位置情報が使えなくなる原因の詳細解説」
まずは基地局による位置情報取得の原理について確認しよう。
もし携帯にGoogle Mobile Mapsをインストールされているなら、
GPRS/Edge/3Gに接続できさえすれば、
携帯電話そのものにGPS機能が備わっていなくても、
携帯の位置がわかるようになっているが、
ただし精度はそれほど正確ではないことに気づくはずだ。
これはGoogle Mapsが使用している位置情報取得方法、
即ち基地局による位置情報取得法だ。
まずこの原理を解説する前に、
いくつかのモバイルに関する知識がないことには始まらない。
まずはMNC/MCC/LAC/Cell IDが何かを解説しよう。
・Mobile Network Code(MNC)
(キャリア毎の)モバイルネットワーク番号のこと。
中国聯通のW-CDMAシリーズのMNCは03で、中国移動のは00だ。
・Mobile Country Code(MCC)
モバイルユーザの所属する国のコード。中国移動のユーザは460と決まっている。
・Location Area Code(LAC)
地区の区域コード。区域分けに用いられる。一般的に小さい地方には1つのLACが割り振られ、大きい地方にはCell Tower ID(Cell ID)が使われる。
・Cell Tower ID(Cell ID、CI)
Cell IDは携帯電話基地局を代表するもので、もし基地局データ表を持っていれば、Cell IDがわかれば基地局の所在地が特定できる。
これらの情報によって、
携帯端末がどこの国のものか、
どの地域のどの基地局からモバイルネットワークに繋がっているのかが判定可能となる。
一般的な携帯端末のシステムでは相応のAPIを提供しており、
それによって上記の情報(Cell Info)を取得する。
例えばWindows PhoneまたはWindows MobileではRIL.dll内のAPIによって取得する。
AndroidやiPhoneはFieldTestによってCell Infoを見ることができる。
それぞれの携帯端末のオペレーションシステムによって取得や閲覧の方法は異なっている。
しかし上記のCell infoを取得できたとしても、
もし基地局情報表(基地局のCell IDに対応した緯度と経度の位置リスト)がなければ、
その位置を知るのは不可能だ。
しかも、全ての基地局の緯度と経度の位置リストを持っているのは携帯電話キャリアのみなのだ。
しかしそこはさすがGoogle先生、
彼らはAndroidシステムの特性と、路上で車両によって実測し集めた情報によって、
基地局のだいたいの緯度と経度を集めることができていたのだ。
初期の頃、Googleは車両によってこれらの情報を集めることができた。
車上にGPSシステムを装備し、
正確な緯度/経度情報を得ることができると同時に、
携帯電話を使って周辺の基地局のCell ID情報を得ることができた。
それによってCell IDと緯度・経度の対応表を作ることができたのだ。
もちろん全ての基地局情報を車両によって得ようとしたらこれは非常に巨大なプロジェクトとなる。
しかしそこはさすがGoogle先生、
Androidのスマートフォンの多くがハードウェアにGPSを搭載していることを利用し、
ユーザがGoogle Maps等を使って位置情報を調べたときに、
同時にGoogleに対して情報を提供するようにしたのだ。
提供された情報はGoogle内部の独自の計算法によって、
非常に完璧な基地局の位置情報データベースができあがったというわけだ。
更にWi-Fiホットスポットが増えてきたことで、
AndroidやiPhoneはWi-Fiを使うことでも位置情報を得ることができる。
この原理も上記の携帯電波基地局による位置情報取得とさほど変わらない。
それぞれの無線ルータには固有のBSSIDがあり、
これがルータの標識となるのだが、
これを基地局のCell IDと同じものに見立てればよい。
Android携帯はGPSまたは基地局によって大体の位置情報を取得した後、
周辺のWi-FiのBSSIDをGoogleサーバに送り、
これらのルータの具体的な位置情報もだいたいわかってしまっているというわけだ。
とあるユーザがあるWi-Fi電波をキャッチした時に、
そのWi-Fiの位置情報が既に以前他のユーザによってGoogleサーバにアップロードされていたら、
すぐにその具体的な位置がわかるという仕組みになっているわけだ。
では、なぜ一部の4Gユーザが位置情報が掴めないのだろうか?
もしここまで書いたことがご理解いただけていたとしたら、
恐らくその原因はもうご想像がついていることだろう。。
実は4G基地局のLACとCell ID(CI)はまだ端末による情報のアップロードが足りていないのだ。
つまり、現在はまだ4Gに対応した端末の数量がまだ少ないため、
GoogleやApple(アップル)が取得した基地局のLACやCIとGPSの経緯度情報との関連データベースが、
まだまだ足りないという状況なのだ。
もし位置情報を得ようとして基地局の情報をサーバ上に探しに行っても、
上記の関連データベースに現在自分の掴んでいる4G基地局の情報が全くなければ、
当然そこの位置情報は大体のものさえ掴めないということになる。
もちろん端末が屋外にあってGPS電波が拾えたとしたら、
そこで正確な位置を拾うことができるし、
室内でも4Gを切ってWi-Fiや2G/3Gに切り替えた途端、
位置情報が掴めるようになるというのは体験できるはずだ。
それはつまり2G/3Gの基地局の位置情報は、
とっくに位置を特定するに足りる情報が集まっているということだ!
翻訳は以上。
ちなみに私が住んでいる中国広東省深圳市では、
2013年内はまだまだ4Gによる位置情報が特定できなかったが、
2014年に入ってからはその状況がかなり改善されてきている気がする(正確さはまだ足りないが)
記事は以上。