1# Fluoride Bluetooth Profile Tuning Suite (PTS) Test Mode
2
3This document provides commands to enable PTS test mode for Fluoride stack. We
4need special handling for some test cases as they are not applicable for the
5Fluoride stack.
6
7## PTS Test Mode system property
8
9Profile services in packages/apps/Bluetooth uses system property
10`persist.bluetooth.pts` to check if the PTS test mode is enabled. To enable it:
11
12```sh
13adb shell setprop persist.bluetooth.pts true
14```
15
16To disable it:
17
18```sh
19adb shell setprop persist.bluetooth.pts false
20```
21
22### Current use case
23
24- In `newavrcp`, we send active player update to remote device only in PTS test
25  mode (AVRCP/TG/MPS/BV-05-C AVRCP/TG/MPS/BV-07-C).
26
27## PTS Helpers in stack config
28
29Native stack also requires some special handling, and the config is stored in
30`conf/bt_stack.conf`. To enable a flag, uncomment the corresponding line and
31push the config file to `/etc/bluetooth/` in IUT.
32
33### Current use case
34
35- `PTS_SecurePairOnly` enables secure connections only mode.
36- `PTS_DisableConnUpdates` disables LE Connection updates.
37- `PTS_DisableSDPOnLEPair` disables BR/EDR discovery after LE pairing to avoid
38  cross key derivation errors.
39- `PTS_SmpOptions` sets SMP Pair options (formatted as hex bytes) `auth, io,
40  ikey, rkey, ksize`.
41- `PTS_AvrcpTest` enables AVRCP test mode. The UID is set to 0xffffffffffffffff
42  in `TrackChangedNotificationResponse` (AVRCP/TG/NFY/BV-04-C).
43- `PTS_SmpFailureCase` enables handling for various SMP failure cases.
44