Skip to content

Utility tools for COCOA ( Covid-19 Exposure Notification System in Japan ) using Web-Bluetooth

License

Notifications You must be signed in to change notification settings

daisuke-nogami/cocoa-tools

Repository files navigation

cocoa-tools

Utility tools for COCOA ( Covid-19 Exposure Notification System in Japan ) using Web-Bluetooth / COCOA(Covid-19接触確認アプリ)の普及状況把握などに用いるためのツール群

about

COCOA(Covid-19接触確認アプリ)の普及状況把握などに用いるためのツールをWeb-Bluetoothで作成したものです。

個人情報収集に繋がると懸念されうるツールのため、

  • HTML/Javascriptを用いて、コードが直接Webページに反映されるgithub-pagesを用いて公開することで、処理内容を限りなくオープンにする
  • 通信内容の取得に制約があるWeb-Bluetooth技術を用いることで、取得可能な情報に制約を掛ける

の2つの観点から、Web-bluetoothを用いることで、個人情報収集の懸念の解消を目指しています。

そのため、利用にはWeb-Bluetoothが使えるブラウザ/端末が必要となります。

2022年7月より更新をはじめた内容について

COCOAの動作が非常に安定して、信号受信による動作確認の必要性がなくなった一方、 自分の身の回りでどのくらいCOCOAが動作されているかの可視化の必要性は、引き続き存在する(プライバシー保護等の制約により、普及率を日本全体でしか示せないため)。

そのため、インストール済み端末カウントを、実際の街中で使いやすいものに改善することとした。

  • Counter(v2) - COCOAインストール済み端末カウント
    • 周囲のCOCOAインストール済みの端末数を計測するページ
    • 電車などの「同じ人が一定時間滞留し、その全体の人数を想定しやすい場所」で2-3分測定することで、導入率を簡易に把握する使い方を想定

2021年3月以前の情報について

今回の取り組みを契機としたCOCOA動作状況チェッカーの開発成果を、 会社として公開することになり、ソースコードをDeNAのレポジトリに移管しました。

このレポジトリは、技術実証時点のものをアーカイブするレポジトリに変更します。

COCOA動作チェッカーをご利用の方は、 移管先のレポジトリで動作しているチェッカーをご覧ください。

横浜スタジアムでの技術実証に用いたコード

enviroment

動作確認をした環境は以下の通りです。

Smartphones

  • 条件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では動作が難しいと思われる

Desktop PC

機種 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のバグなのか仕様なのかは不明。