<▲図:何の変哲も無い「緊急速報メール」に見えますが……> |
さて、去年のクリスマスの日、電気通信事業者協会(TCA)が「Androidにおける緊急速報『エリアメール』及び『緊急速報メール』の共通受信仕様を策定」という発表を行いました。
簡単にいうと、Android 8.1(厳密にはAndroid 8.1.0_r7)以降のAndroidでは、OS標準で「緊急地震速報」「災害避難情報(Jアラート情報を含む)」「(大)津波警報」を受信できるという発表ですが、発表文にはこんなことが書いてあります。
(前略)各社のメッセージ受信に関わる部分を「Android 8.1」向けに共通受信仕様として策定した事により、今後はSIMフリー端末においても、受信いただける事が期待できます。
「え、SIMロックフリー端末だと、こういうの受信できなかったの?」と思う人もいるかもしれません。実は、現状では機種(や端末ソフトウェアのバージョン)によって、受信できたりできなかったりするのです。
なぜ、そんなことが起こるのでしょうか?
■“OSレベル”ではAndroid 4.4以降で対応
<▲図:緊急速報の受信“そのもの”は素のAndroidでも対応しています> |
通信キャリアによって名称が異なりますが、「エリアメール」(NTTドコモ)や「緊急速報メール」(他キャリア)は、情報発信の対象となる基地局の圏内にある携帯電話端末に無差別かつ一斉にメッセージを送る仕組みで実現しています。
この仕組みを実現する規格としては、大きく「CBS(Cell Broadcasting System)」と「ETWS(Earthquake Tsunami Warning System)」の2つがあります。国内キャリアで採用している規格は以下の通りです。
通信キャリア名 | 採用規格 |
NTTドコモ | ・CBS(905i/705i以降のFOMAケータイとFOMAスマホ) ・ETWS(Xiスマホ・ケータイと「C」型番以降のFOMAケータイ) |
au (KDDI・沖縄セルラー) | ・Broadcast SMS(3Gエリア) ・ETWS(LTEエリア) |
ソフトバンク (SoftBank/Y!mobile) | ・CBS(W-CDMAエリア) ・ETWS(LTEエリア) |
各キャリアともにLTEエリア(LTE端末)ではETWSを採用しています。
ETWSは元々、NTTドコモが提唱していた同報通信規格。LTEでは規格の一部として標準化され、W-CDMAでもオペレーター(キャリア)が任意でオプション採用できるようになりました。ETWSはCBSやBroadcast SMS(BSMS:CDMA2000用の同報通信規格)よりも迅速に同報通信が伝達できるというメリットがあります。
OSとしてのAndroidでは、Android 4.4以降のバージョンで標準機能としてETWSの受信に対応しています。
■問題は「メッセージID」
正式名称からも分かる通り、ETWS(Earthquake Tsunami Warning System)は「地震」と「津波」の警報をより迅速に伝えるために作られた規格です。警報(メッセージ)の内容は「メッセージID」と呼ばれるヘッダー(先頭)情報に記されているので、より迅速に警報を出せるのです。メッセージIDは下記の通りです。
<ETWS規格の「メッセージID」>
- ID 1100:地震速報
- ID 1101:(大)津波警報
- ID 1102:地震と津波の複合警報
- ID 1103:テスト用(ETWSを受信できるかどうか確認するためのもの。本来は「無視」される)
- ID 1104:他の緊急事態
- ID 1105~1107:予約(将来の機能拡充用)
- ID A000~AFFF:オペレーター(キャリア)定義
一方でETWSはCBSやBSMSを置き換える規格としても位置付けられています。そのため、コンテンツやニュースのプッシュ通知といった用途にも使えるようにキャリアが任意に定義できるメッセージIDも用意されています。実は、ここが問題なんです。
ETWS規格では、必要最低限(≒本来用途)である地震速報、津波警報、複合警報についてはキャリアを問わずメッセージIDが統一されています。そのため、端末さえ対応していればどのキャリアでも警報を受信できます。
しかし、その他のメッセージIDについてはキャリアごとに使い方が異なることから、通常のSIMロックフリー端末では「無視(受信しても無反応:テストメッセージと同じ扱い)」するように設定されています。日本の場合、各キャリアが「オペレーター定義」のメッセージIDで災害避難情報を発信しており、そのIDがキャリアによって異なるのでSIMロックフリー端末で受信できないのです。
■Android 8.1以降はソースコードレベルで「差分吸収」
OSとしてのAndroidは、オープンソースで開発されています。そのため開発の過程もある程度外部から見ることができます。
自分でその一部を確認したところ、少なくとも2017年1月から、国内キャリアのETWSのオペレーター定義(≒災害避難情報)をAndroidのソースコードに盛り込む動きがありました。また、これとは別にNTTドコモが作った警報音(緊急地震速報/災害避難情報。リンク先のYouTubeの動画で音を聞くことができます)をソースコードに入れ込む動きも見受けられました。
<▲図:Androidのソースコードに差分吸収の跡> |
上に掲載した画像は、Android 8.0の「Nexus 5X」に「au MVNO Multi IC Card」を入れた時に受信した災害避難情報です。Nexusシリーズの端末には、極力ソースコードそのままのOSが入っています。Android 8.0時点で、ETWSの国内キャリアのオペレーター定義IDを吸収する部分は機能していた、ということになります。
TCAが対応するとしているバージョン「Android 8.1.0_r7」のソースコードには、国内キャリアのETWSのオペレーター定義に加えてドコモの警報音もきっちり盛り込まれています。関連するソースコードをメーカーが修正しない限り、同バージョン以降のAndroid端末では国内キャリアの災害避難情報も(理論上は)バッチリ受信できるはずです。
■問題は「ソースコード修正」
ということで、ETWS関連のソースコードをそのまま使っている端末なら、Android 8.1.0_r7以降で国内の災害避難情報を受信できるようになりました。
しかし、問題は「Be together. Not the same.」なAndroidの世界観です。
Android端末はメーカーによってソフトウェアをカスタマイズすることが一般的です。もしもETWS関連コードを改変(あるいは削除)した場合、Android 8.1.0_r7を搭載していても災害避難情報(削除したら緊急地震速報や津波警報も)を受信できない可能性があります。
ともあれ、SIMロックフリーのAndroidスマホでも災害避難情報が受信できる可能性が高まったこのニュース。今後に期待です!
記事執筆者プロフィール
せう
ブログ:せうの日記、Twitter:@shoinoue
静岡県三島市で産まれ、静岡県駿東郡長泉町で生まれ育ったアメリカ系日本人3世。見た目が日本人離れしている反動で、身の回りの道具は日本で開発されたものだらけである。ITmedia、andronaviを始めとするWeb媒体を中心に執筆活動を展開。自前のブログ「せうの日記」も宜しくお願いします。
ブログ:せうの日記、Twitter:@shoinoue
静岡県三島市で産まれ、静岡県駿東郡長泉町で生まれ育ったアメリカ系日本人3世。見た目が日本人離れしている反動で、身の回りの道具は日本で開発されたものだらけである。ITmedia、andronaviを始めとするWeb媒体を中心に執筆活動を展開。自前のブログ「せうの日記」も宜しくお願いします。
→「せう先生のスマホ講座」の他の記事はこちら
本コラムは毎月第1・第3日曜日更新予定!
本コラムは毎月第1・第3日曜日更新予定!