Bluetooth analysis (see issue)
Tools used:
- Logcat traces
- HCI snoop debug traces on the phones
- Bluetooth sniffer device (TI CC1352R1 dev kit)
- Nordic nRF Connect app
The devices analyzed are:
- Google Pixel4 (Bluetooth 5.0), LineageOS 17.1, SwissCovid app bundled with microG EN libraries (v0.2.13.203915)
- Sony Z3 (Bluetooth 4.0), LineageOS 17.1, SwissCovid app bundled with microG EN libraries (v0.2.13.203915)
Every 10 minutes, aligned on a 10-minute boundary:
LE Rand
LE Set Extended Advertising Parameters
handle 0, legacy PDUs, ADV_NONCONN_IND, interval 250-281.25 msec, channels 37,38,39, random device addressLE Set Advertising Set Random Address
handle 0LE Set Extended Advertising Data
handle 0LE Set Extended Scan Response Data
handle 0LE Set Extended Advertising Enable
handle 0, on [10min]LE Set Extended Advertising Enable
handle 0, offLE Remove Advertising Set
handle 0
LE Rand
LE Set Advertising Parameters
ADV_NONCONN_IND, interval 250-281.25 msec, channels 37,38,39, random device addressLE Set Random Address
LE Set Advertising Data
LE Set Scan Response Data
LE Set Advertise Enable
on [10min]LE Set Advertise Enable
off
Every 3 minutes (not aligned):
- Vendor command 0x0157 (4x)
LE Set Extended Scan Parameters
active, random device address, accept all adv (except direct not addressed here)LE Set Extended Scan Enable
onLE Set Extended Scan Enable
offLE Set Extended Scan Parameters
active, random device address, accept all adv (except direct not addressed here)LE Set Extended Scan Parameters
active, random device address, accept all adv (except direct not addressed here)LE Set Extended Scan Enable
on [20s]LE Set Extended Scan Enable
off
LE Set Scan Parameters
active, random device address, accept all adv (except direct not addressed here)LE Set Scan Enable
onLE Set Scan Enable
offLE Set Scan Parameters
active, random device address, accept all adv (except direct not addressed here)LE Set Scan Parameters
active, random device address, accept all adv (except direct not addressed here)LE Set Scan Enable
on [20s]LE Set Scan Enable
off
LE Meta
-- LE Extended Advertising Report
legacy, ADV_NONCONN_IND, random device address,
LE Meta
-- LE Advertising Report
ADV_NONCONN_IND, random device address,
Interval distribution over an RPI value (10 min):
mean: 287.21ms, median: 286,25ms
mean: 287.80ms, median: 286.26ms
Every 15 minutes (not aligned):
LE Set Random Address
LE Set Random Address
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.
- The same BD address used with different advertised RPIs was never observed.
- The same RPI value advertised with two different BD addresses was observed on the Z3, as indicated in the previous note.
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.