Remove disable Bluetooth action from AdapterService and move to
BluetoothManagerService.
Add factory reset reason into Bluetooth enable/disable reason list.
Bug: 110181479
Test: manual
Change-Id: I4bff3c3bb75fbb0d1e13c459c0d9d3fd3b8b3195
Merged-In: I4bff3c3bb75fbb0d1e13c459c0d9d3fd3b8b3195
* Add server_port field to track the server port number of a socket
* Add socket_role field to track whether the socket is a server listener
or a connection socket
* Add uid field to track the owner of the socket
Bug: 112969790
Test: make, test drive with statsd
Change-Id: I0c86b724c748844009b8120befd454fb96137a61
* Logs when a Bluetooth socket's connection state is changed
* A Bluetooth socket can be:
- RFCOMM socket
- SCO socket
- BR/EDR L2CAP socket
- BLE L2CAP socket
Bug: 112969790
Test: make, test drive with statsd
Change-Id: I97b1e650e197a0dad1e2959e2f5b4dd98370d892
Merged-In: I97b1e650e197a0dad1e2959e2f5b4dd98370d892
(cherry picked from commit 815cdbaae0)
* BluetoothHciTimeoutReported is logged when Bluetooth controller
failed to respond to an HCI command in time
* BluetoothQualityReportReported is logged when Bluetooth controller
sends a link quality report event to Android host due to bad link
quality
* BluetoothManufacturerInfoReported is logged when we learn about
manufactuer defined metadata for a device such as manufactuer name
model number, software version, and hardware version
* BluetoothRemoteVersionInfoReported is logged when we learn about
the manufactuer and Bluetooth version of remote Bluetooth controller
and stack
* BluetoothSdpAttributeReported is logged when we learn about services
provided by the remote device and their metdata such as protocol
version and feature bitmask. Only profiles that use 16-bit UUIDs are
logged
* BluetoothBondStateChanged is logged when Bluetooth bonding state is
changed a a macro level such as none -> bonding, bonding -> bonded,
and user interaction events such as passkey confirmation
* BluetoothClassicPairingEventReported is logged from native layer
when Bluetooth classic pairing state changed due to HCI command
or events. This is a more verbose level logging compared to
BluetoothBondStateChanged
* BluetoothSmpPairingEventReported is logged from native layer when
Bluetooth Security Manager Protocol based pairing state changed due to
SMP command sent or received. Pairing failure reason code is also
logged as a pre-defined enum
Bug: 112969790
Test: test drive with statsd
Change-Id: I94d1530758f79ce6d5f119426b1379c76517afec
Merged-In: I94d1530758f79ce6d5f119426b1379c76517afec
(cherry picked from commit 1021a61081)
* BluetoothA2dpPlaybackStateChanged:
- Logged when A2DP playback state changed for individual devices
* BluetoothA2dpCodecConfigChanged
- Logged when A2DP codec configuration changed for individual devices
* BluetoothA2dpCodecCapabilityChanged
- Logged when A2DP codec capability changed for individual devices
* BluetoothActiveDeviceChanged
- Logged when A2DP/HFP/HEARNING_AID active device changed
* BluetoothA2dpAudioOverrunReported
- Logs when A2DP failed send encoded data to the remote device fast
enough such that the transmit buffer queue is full and we have to
drop data
* BluetoothA2dpAudioUnderrunReported
- Logs when A2DP failed to read from PCM source
* BluetoothDeviceRssiReported
- Logged when remote device's RSSI level is reported by the controller
* BluetoothDeviceFailedContactCounterReported
- Logged when ACL transmit queue was flushed by the controller
- This is normally disabled unless we set automatic flush timeout was
set to a non-zero value
- However, when this event is reported, the connection quality must
be very bad
* BluetoothDeviceTxPowerLevelReported
- Logged when transmit power level is reported for a particular
connection
Bug: 112969790
Test: make, testdrive with statsd
Change-Id: I7deb85567630fae75be733df21b45f9c6bcf9e17
Merged-In: I7deb85567630fae75be733df21b45f9c6bcf9e17
(cherry picked from commit c27040aea7)
* Use salted hashed Bluetooth device identifier and deprecate old
ofuscted_id
* Add BluetoothAclConnectionStateChanged and BluetoothScoConnectionStateChanged
to track ACL and SCO connections
Bug: 112969790
Test: Bluetooth unit test, test drive with statsd
Change-Id: I5398e4caae751e1fe1d6a95fa3bc56d062eb6172
Merged-In: I5398e4caae751e1fe1d6a95fa3bc56d062eb6172
(cherry picked from commit d9837c8a9e)
* Add this atom to report events related to Bluetooth link layer
connection, including:
- Obfuscated ID of remote device
- Connection handle
- Direction of the connection
- Type of the connection
- Associated HCI command and/or event
- Status code associated with HCI command and/or event
- Reason code associated with HCI command and/or event
* Add enum definitions for HCI commands and events as defined in the
Bluetooth 5.0 specification
* Add enum definitions for link type and direction
Bug: 112969790
Test: make, test drive with statsd
Change-Id: I0fdc59274d49ad503e9ba9cf8f49c9d8872a4131
Merged-In: I0fdc59274d49ad503e9ba9cf8f49c9d8872a4131
(cherry picked from commit ab86dbd20c)
Note: It is currently only safe to renumber the fields because we have
not started using them yet.
* animationadapter: added in http://ag/3709688, but was not following
the indentation policy or the unit naming policy. The durations that
have documentation in
frameworks/base/services/core/java/com/android/server/wm/ state that
they're in milliseconds. These durations didn't have documentation, but
I'm assuming they're in the same units.
* batterystats: was not following the indentation policy
* jobscheduler: AppIdleController was removed in http://ag/3699210 and
the proto was only partially updated
* powermanagerservice: BatterySaverStateMachineProto added in
http://ag/3763026 but was not privacy tagged and the indentation was off
* surfaceanimator: was not following the indentation policy
* remote_animation_target: was not following the indentation policy
* others: weren't following the indentation policy
Bug: 74975371
Test: flash device and run 'test CtsIncidentHostTestCases'
Change-Id: Id012f4690b1d58816fef096523e1a0ea2bccadb0
* Reasons to enable or disable Bluetooth should be in a separate
namespace away from package names that initiated the enable or disable
* Delcare reason code in android/bluetooth/enums.proto as
EnableDisableReasonEnum and use these reason code together with
package names to log Bluetooth enable and disable events
* When reason is ENABLE_DISABLE_REASON_APPLICATION_REQUEST, the external
package name is the real reason why Bluetooth is enabled or disabled
* Change START_CRASH to START_ERROR since it represents a disable event
when Bluetooth failed to start
* Change UNEXPECTED_CRASH to CRASH since no crash is expected
* Add getEnableDisableReasonString() method to covert reason code to
human readable strings in dumpsys output
Bug: 74090881
Test: Toggle Bluetooth, airplane mode, BLE scanning
Change-Id: I06aa413e2a0a5f016c87759a1b694ef643c9cdee
(cherry picked from commit 0dbe66460f)