Utility tools for COCOA ( Covid-19 Exposure Notification System in Japan ) using Web-Bluetooth / COCOA(Covid-19接触確認アプリ)の普及状況把握などに用いるためのツール群
COCOA(Covid-19接触確認アプリ)の普及状況把握などに用いるためのツールをWeb-Bluetoothで作成したものです。
個人情報収集に繋がると懸念されうるツールのため、
- HTML/Javascriptを用いて、コードが直接Webページに反映されるgithub-pagesを用いて公開することで、処理内容を限りなくオープンにする
- 通信内容の取得に制約があるWeb-Bluetooth技術を用いることで、取得可能な情報に制約を掛ける
の2つの観点から、Web-bluetoothを用いることで、個人情報収集の懸念の解消を目指しています。
そのため、利用にはWeb-Bluetoothが使えるブラウザ/端末が必要となります。
COCOAの動作が非常に安定して、信号受信による動作確認の必要性がなくなった一方、 自分の身の回りでどのくらいCOCOAが動作されているかの可視化の必要性は、引き続き存在する(プライバシー保護等の制約により、普及率を日本全体でしか示せないため)。
そのため、インストール済み端末カウントを、実際の街中で使いやすいものに改善することとした。
- Counter(v2) - COCOAインストール済み端末カウント
- 周囲のCOCOAインストール済みの端末数を計測するページ
- 電車などの「同じ人が一定時間滞留し、その全体の人数を想定しやすい場所」で2-3分測定することで、導入率を簡易に把握する使い方を想定
今回の取り組みを契機としたCOCOA動作状況チェッカーの開発成果を、 会社として公開することになり、ソースコードをDeNAのレポジトリに移管しました。
このレポジトリは、技術実証時点のものをアーカイブするレポジトリに変更します。
COCOA動作チェッカーをご利用の方は、 移管先のレポジトリで動作しているチェッカーをご覧ください。
- Install Checker - 端末のCOCOAインストール状況チェック
- 端末にアプリを表示させることなく、COCOAのインストール状況をBluetooth Advertisingから確認するページ
- Counter - COCOAインストール済み端末カウント
- 周囲のCOCOAインストール済みの端末数を計測するページ
動作確認をした環境は以下の通りです。
- 条件1a: OS上でChromeの位置情報利用を許可する, Chromeのフラグで chrome://flags/#enable-experimental-web-platform-features をEnabledにする
- 条件1c: OS上でChromeに「付近のデバイス」にも許可を与える(Android 12以降)
端末 | OS, Chrome version | 動作状況 | 条件 |
---|---|---|---|
Samsung Galaxy S20 5G | Android 12, Chrome 85.0.4183.127- | 動作 | 条件1a, 条件1c |
Samsung Galaxy S20 5G | Android 10, Chrome 85.0.4183.127- | 動作 | 条件1a |
HUAWEI P10lite | Android 8, Chrome 85.0.4183.101- | 動作 | 条件1a |
Samsung Galaxy S9 | Android 10, Chrome 85.0.4183.101- | 動作 | 条件1a |
Samsung Galaxy S8 | Android 9, Chrome 86.0.4240.110 | 動作 | 条件1a |
Google Pixel3a | Android 11, Chrome 86.0.4240.110 | 動作 | 条件1a |
Samsung Galaxy S7 edge | Android 8, Chrome 86.0.4240.110 | 動作 | 条件1a |
Xperia 10 II | Android 10, Chrome 86.0.4240.110 | 動作 | 条件1a |
Google Pixel 5 | Android 11, Chrome 86.0.4240.110 | 動作 | 条件1a |
Google Pixel4a(5G) | Android 11, Chrome 86.0.4240.110 | 動作 | 条件1a |
Google Pixel 4 XL | Android 10, Chrome 86.0.4240.110 | 動作 | 条件1a |
Google Pixel 4 | Android 10, Chrome 86.0.4240.110 | 動作 | 条件1a |
Google Pixel 3 XL | Android 9.0, Chrome 86.0.4240.110 | 動作 | 条件1a |
Google Pixel 3 | Android 9.0, Chrome 86.0.4240.110 | 動作 | 条件1a |
Google Nexus 6p | Android 8.1, Chrome 86.0.4240.110 | 動作 | 条件1a |
Google Nexus 5X | Android 8.0, Chrome 86.0.4240.110 | 動作 | 条件1a |
Xperia 1 | Android 9.0, Chrome 86.0.4240.110 | 動作 | 条件1a |
Xperia X Performance | Android 8.0, Chrome 86.0.4240.110 | 動作 | 条件1a |
Xperia XZ2 | Android 8.0, Chrome 86.0.4240.110 | 動作 | 条件1a |
Xperia XZ | Android 8.0, Chrome 86.0.4240.110 | 動作 | 条件1a |
AQUOS R3 | Android 9.0, Chrome 86.0.4240.110 | 動作 | 条件1a |
AQUOS sense3 plus | Android 9.0, Chrome 86.0.4240.110 | 動作 | 条件1a |
Galaxy Feel2 | Android 8.1, Chrome 86.0.4240.110 | 動作 | 条件1a |
※米ZDNetの報道"Apple declined to implement 16 Web APIs in Safari due to privacy concerns"によれば、SafariではWeb-bluetoothでのscanningは拒否されているとのことなので、おそらくiOSでは動作が難しいと思われる
機種 | OS, Chrome version | 動作状況 | 条件 |
---|---|---|---|
VAIO S13 | Windows 10 Pro (1903), Chrome 85.0.4183.102 | 動作 | 条件1b,条件2 |
lenovo ThinkCentre M715q | Windows 10 Home (2004), Chrome 85.0.4183.102 | 動作 | 条件1b,条件2 |
- 条件1b: Chromeのフラグで chrome://flags/#enable-experimental-web-platform-features をEnabledにする
- 条件2: Chrome DevToolsのconsoleで
navigator.bluetooth.requestLEScan({filters: [{ services: [0xFD6F]}]})
を実行し、スキャンを許可するダイアログを出して、許可をしてから実行- ページ内スクリプトで navigator.bluetooth.requestLEScan を呼ぶと許可ダイアログが表示されない(一瞬出るがすぐにキャンセルされる)ため。この動作がChromeのバグなのか仕様なのかは不明。