DP-3T / gaenlib

0 stars 1 forks source link

Tests #11

Closed ineiti closed 3 years ago

ineiti commented 4 years ago

This issue tracks the various tests to be done on the modified SwissCovid app to ensure that it works as expected.

Functionalities:

  1. The application correctly advertises RPIs
  2. The application correctly scans other devices' RPIs
  3. The application can declare a positive diagnosis
  4. The application notifies the user of an exposure
  5. The crypto is correct
  6. The exposure computation is correct
  7. End-to-end with mixed phones.

Environments:

  1. The application runs on a phone with an open OS without any Google Play services installed →Pixel 4 installed with stock LineageOS 17.1
  2. The application runs on a phone with a commercial OS lacking Google Play services →Huawei?
Test Stock LineageOS Commercial OS w/o GMS
1 :heavy_check_mark: (manual)
2 :heavy_check_mark: (manual)
3 :heavy_check_mark: (manual, calibration app)
4 :heavy_check_mark: (manual, calibration app)
5 :heavy_check_mark: (microG nearby-core test)
6 see https://github.com/microg/android_packages_apps_GmsCore/issues/1179#issuecomment-705174705
7 :heavy_check_mark: (manual, calibration app, see #23)
cgrigis commented 4 years ago

Suggestions to help investigate tests:

Next steps:

cgrigis commented 4 years ago

Check whether we can enable low-level traces for Bluetooth

cgrigis commented 4 years ago

Dump the database to examine exposures manually

cgrigis commented 3 years ago

Bluetooth analysis

Tools used:

The devices analyzed are:

Advertisement: sequence of HCI commands

Every 10 minutes, aligned on a 10-minute boundary:

Pixel4

Scanning: sequence of HCI commands

Every 3 minutes (not aligned):

Pixel4

Scanning events received

Pixel4

LE Meta -- LE Extended Advertising Report legacy, ADV_NONCONN_IND, random device address,

Z3

LE Meta -- LE Advertising Report ADV_NONCONN_IND, random device address,

Advertisements recorded from the sniffer, channel 37

Interval distribution over an RPI value (10 min):

Pixel4

mean: 287.21ms, median: 286,25ms

Z3

mean: 287.80ms, median: 286.26ms

Other

Every 15 minutes (not aligned):

Pixel4

NOTE: On the Z3, this has the effect of also changing the advertising random address in the middle of a 10-minute RPI cycle, without changing the RPI. This is probably due to it having an older Bluetooth HW and using legacy commands, which do not distinguish between setting the random address for advertising and for scanning.

RPI / BD Address overlap

In other words, whenever the RPI changes, the BD address changes as well, on both devices. On the Z3 however, sometimes the BD address will change while broadcasting a given RPI.

This behaviour is expected from GAEN as well.

cgrigis commented 3 years ago

To ensure compatibility with the app using GAEN, we need an end-to-end with mixed-phones:

cgrigis commented 3 years ago

These tests have been performed as part of #23, and now pass after a fix in the backend.