Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d45ffc79 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Atom: Add more Bluetooth atoms"

parents f04cda91 1021a610
Loading
Loading
Loading
Loading
+281 −1
Original line number Original line Diff line number Diff line
@@ -28,6 +28,7 @@ import "frameworks/base/core/proto/android/bluetooth/a2dp/enums.proto";
import "frameworks/base/core/proto/android/bluetooth/enums.proto";
import "frameworks/base/core/proto/android/bluetooth/enums.proto";
import "frameworks/base/core/proto/android/bluetooth/hci/enums.proto";
import "frameworks/base/core/proto/android/bluetooth/hci/enums.proto";
import "frameworks/base/core/proto/android/bluetooth/hfp/enums.proto";
import "frameworks/base/core/proto/android/bluetooth/hfp/enums.proto";
import "frameworks/base/core/proto/android/bluetooth/smp/enums.proto";
import "frameworks/base/core/proto/android/debug/enums.proto";
import "frameworks/base/core/proto/android/debug/enums.proto";
import "frameworks/base/core/proto/android/hardware/biometrics/enums.proto";
import "frameworks/base/core/proto/android/hardware/biometrics/enums.proto";
import "frameworks/base/core/proto/android/net/networkcapabilities.proto";
import "frameworks/base/core/proto/android/net/networkcapabilities.proto";
@@ -225,6 +226,14 @@ message Atom {
        BluetoothDeviceRssiReported bluetooth_device_rssi_reported = 157;
        BluetoothDeviceRssiReported bluetooth_device_rssi_reported = 157;
        BluetoothDeviceFailedContactCounterReported bluetooth_device_failed_contact_counter_reported = 158;
        BluetoothDeviceFailedContactCounterReported bluetooth_device_failed_contact_counter_reported = 158;
        BluetoothDeviceTxPowerLevelReported bluetooth_device_tx_power_level_reported = 159;
        BluetoothDeviceTxPowerLevelReported bluetooth_device_tx_power_level_reported = 159;
        BluetoothHciTimeoutReported bluetooth_hci_timeout_reported = 160;
        BluetoothQualityReportReported bluetooth_quality_report_reported = 161;
        BluetoothManufacturerInfoReported bluetooth_device_info_reported = 162;
        BluetoothRemoteVersionInfoReported bluetooth_remote_version_info_reported = 163;
        BluetoothSdpAttributeReported bluetooth_sdp_attribute_reported = 164;
        BluetoothBondStateChanged bluetooth_bond_state_changed = 165;
        BluetoothClassicPairingEventReported bluetooth_classic_pairing_event_reported = 166;
        BluetoothSmpPairingEventReported bluetooth_smp_pairing_event_reported = 167;
    }
    }


    // Pulled events will start at field 10000.
    // Pulled events will start at field 10000.
@@ -1773,7 +1782,7 @@ message BluetoothDeviceTxPowerLevelReported {
    // Range: 0x0000 - 0x0EFF (12 bits)
    // Range: 0x0000 - 0x0EFF (12 bits)
    // Default: 0xFFFF if the handle is unknown
    // Default: 0xFFFF if the handle is unknown
    optional int32 connection_handle = 2;
    optional int32 connection_handle = 2;
    // HCI command status code if this is triggerred by hci_cmd
    // HCI command status code if this is triggered by hci_cmd
    // Default: STATUS_UNKNOWN
    // Default: STATUS_UNKNOWN
    optional android.bluetooth.hci.StatusEnum hci_status = 3;
    optional android.bluetooth.hci.StatusEnum hci_status = 3;
    // Range: -30 ≤ N ≤ 20
    // Range: -30 ≤ N ≤ 20
@@ -1782,6 +1791,277 @@ message BluetoothDeviceTxPowerLevelReported {
    optional int32 transmit_power_level = 4;
    optional int32 transmit_power_level = 4;
}
}


/**
 * Logs when Bluetooth controller failed to reply with command status within a timeout period after
 * receiving an HCI command from the host
 *
 * Logged from: system/bt
 */
message BluetoothHciTimeoutReported {
    // HCI command associated with this event
    // Default: CMD_UNKNOWN
    optional android.bluetooth.hci.CommandEnum hci_command = 1;
}

/**
 * Logs when we receive Bluetooth Link Quality Report event from the controller
 * See Android Bluetooth HCI specification for more details
 *
 * Note: all count and bytes field are counted since last event
 *
 * Logged from: system/bt
 */
message BluetoothQualityReportReported {
    // Quality report ID
    // Original type: uint8_t
    // Default: BQR_ID_UNKNOWN
    optional android.bluetooth.hci.BqrIdEnum quality_report_id = 1;
    // Packet type of the connection
    // Original type: uint8_t
    // Default: BQR_PACKET_TYPE_UNKNOWN
    optional android.bluetooth.hci.BqrPacketTypeEnum packet_types = 2;
    // Connection handle of the connection
    // Original type: uint16_t
    optional int32 connection_handle = 3;
    // Performing Role for the connection
    // Original type: uint8_t
    optional int32 connection_role = 4;
    // Current Transmit Power Level for the connection. This value is the same as the controller's
    // response to the HCI_Read_Transmit_Power_Level HCI command
    // Original type: uint8_t
    optional int32 tx_power_level = 5;
    // Received Signal Strength Indication (RSSI) value for the connection. This value is an
    // absolute receiver signal strength value
    // Original type: int8_t
    optional int32 rssi = 6;
    // Signal-to-Noise Ratio (SNR) value for the connection. It is the average SNR of all the
    // channels used by the link currently
    // Original type: uint8_t
    optional int32 snr = 7;
    // Indicates the number of unused channels in AFH_channel_map
    // Original type: uint8_t
    optional int32 unused_afh_channel_count = 8;
    // Indicates the number of the channels which are interfered and quality is bad but are still
    // selected for AFH
    // Original type: uint8_t
    optional int32 afh_select_unideal_channel_count = 9;
    // Current Link Supervision Timeout Setting
    // Unit: N * 0.3125 ms (1 Bluetooth Clock)
    // Original type: uint16_t
    optional int32 lsto = 10;
    // Piconet Clock for the specified Connection_Handle. This value is the same as the controller's
    // response to HCI_Read_Clock HCI command with the parameter "Which_Clock" of
    // 0x01 (Piconet Clock)
    // Unit: N * 0.3125 ms (1 Bluetooth Clock)
    // Original type: uint32_t
    optional int64 connection_piconet_clock = 11;
    // The count of retransmission
    // Original type: uint32_t
    optional int64 retransmission_count = 12;
    // The count of no RX
    // Original type: uint32_t
    optional int64 no_rx_count = 13;
    // The count of NAK (Negative Acknowledge)
    // Original type: uint32_t
    optional int64 nak_count = 14;
    // Controller timestamp of last TX ACK
    // Unit: N * 0.3125 ms (1 Bluetooth Clock)
    // Original type: uint32_t
    optional int64 last_tx_ack_timestamp = 15;
    // The count of Flow-off (STOP)
    // Original type: uint32_t
    optional int64 flow_off_count = 16;
    // Controller timestamp of last Flow-on (GO)
    // Unit: N * 0.3125 ms (1 Bluetooth Clock)
    // Original type: uint32_t
    optional int64 last_flow_on_timestamp = 17;
    // Buffer overflow count (how many bytes of TX data are dropped) since the last event
    // Original type: uint32_t
    optional int64 buffer_overflow_bytes = 18;
    // Buffer underflow count (in byte) since last event
    // Original type: uint32_t
    optional int64 buffer_underflow_bytes = 19;
}

/**
 * Logs when a Bluetooth device's manufacturer information is learnt by the Bluetooth stack
 *
 * Notes:
 * - Each event can be partially filled as we might learn different pieces of device
 *   information at different time
 * - Multiple device info events can be combined to give more complete picture
 * - When multiple device info events tries to describe the same information, the
 *   later one wins
 *
 * Logged from:
 *     packages/apps/Bluetooth
 */
message BluetoothManufacturerInfoReported {
    // An identifier that can be used to match events for this device.
    // Currently, this is a salted hash of the MAC address of this Bluetooth device.
    // Salt: Randomly generated 256 bit value
    // Hash algorithm: HMAC-SHA256
    // Size: 32 byte
    // Default: null or empty if the device identifier is not known
    optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES];
    // Where is this device info obtained from
    optional android.bluetooth.DeviceInfoSrcEnum source_type = 2;
    // Name of the data source
    // For EXTERNAL: package name of the data source
    // For INTERNAL: null for general case, component name otherwise
    optional string source_name = 3;
    // Name of the manufacturer of this device
    optional string manufacturer = 4;
    // Model of this device
    optional string model = 5;
    // Hardware version of this device
    optional string hardware_version = 6;
    // Software version of this device
    optional string software_version = 7;
}

/**
 * Logs when we receive Bluetooth Read Remote Version Information Complete Event from the remote
 * device, as documented by the Bluetooth Core HCI specification
 * Reference: https://www.bluetooth.com/specifications/bluetooth-core-specification
 * Vol 2, Part E, Page 1118
 *
 * Logged from:
 *     system/bt
 */
message BluetoothRemoteVersionInfoReported {
    // Connection handle of the connection
    // Original type: uint16_t
    optional int32 connection_handle = 1;
    // HCI command status code
    // Default: STATUS_UNKNOWN
    optional android.bluetooth.hci.StatusEnum hci_status = 2;
    // 1 byte Version of current LMP in the remote controller
    optional int32 lmp_version = 3;
    // 2 bytes LMP manufacturer code of the remote controller
    // https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
    optional int32 lmp_manufacturer_code = 4;
    // 4 bytes subversion of the LMP in the remote controller
    optional int32 lmp_subversion = 5;
}

/**
 * Logs when certain Bluetooth SDP attributes are discovered
 * Constant definitions are from:
 *     https://www.bluetooth.com/specifications/assigned-numbers/service-discovery
 *
 * Current logged attributes:
 * - BluetoothProfileDescriptorList
 * - Supported Features Bitmask
 *
 * Logged from:
 *     system/bt
 */
message BluetoothSdpAttributeReported {
    // An identifier that can be used to match events for this device.
    // Currently, this is a salted hash of the MAC address of this Bluetooth device.
    // Salt: Randomly generated 256 bit value
    // Hash algorithm: HMAC-SHA256
    optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES];
    // Short form UUIDs used to identify Bluetooth protocols, profiles, and service classes
    // Original type: uint16_t
    optional int32 protocol_uuid = 2;
    // Short form UUIDs used to identify Bluetooth SDP attribute types
    // Original type: uint16_t
    optional int32 attribute_id = 3;
    // Attribute value for the particular attribute
    optional bytes attribute_value = 4 [(android.os.statsd.log_mode) = MODE_BYTES];
}

/**
 * Logs when bond state of a Bluetooth device changes
 *
 * Logged from:
 *     frameworks/base/core/java/android/bluetooth/BluetoothDevice.java
 *     packages/apps/Bluetooth/src/com/android/bluetooth/btservice/BondStateMachine.java
 */
message BluetoothBondStateChanged {
    // An identifier that can be used to match events for this device.
    // Currently, this is a salted hash of the MAC address of this Bluetooth device.
    // Salt: Randomly generated 256 bit value
    // Hash algorithm: HMAC-SHA256
    // Size: 32 byte
    // Default: null or empty if the device identifier is not known
    optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES];
    // Preferred transport type to remote dual mode device
    // Default: TRANSPORT_AUTO means no preference
    optional android.bluetooth.TransportTypeEnum transport = 2;
    // The type of this Bluetooth device (Classic, LE, or Dual mode)
    // Default: UNKNOWN
    optional android.bluetooth.DeviceTypeEnum type = 3;
    // Current bond state (NONE, BONDING, BONDED)
    // Default: BOND_STATE_UNKNOWN
    optional android.bluetooth.BondStateEnum bond_state = 4;
    // Bonding sub state
    // Default: BOND_SUB_STATE_UNKNOWN
    optional android.bluetooth.BondSubStateEnum bonding_sub_state = 5;
    // Unbond Reason
    // Default: UNBOND_REASON_UNKNOWN
    optional android.bluetooth.UnbondReasonEnum unbond_reason = 6;
}

/**
 * Logs there is an event related Bluetooth classic pairing
 *
 * Logged from:
 *     system/bt
 */
message BluetoothClassicPairingEventReported {
    // An identifier that can be used to match events for this device.
    // Currently, this is a salted hash of the MAC address of this Bluetooth device.
    // Salt: Randomly generated 256 bit value
    // Hash algorithm: HMAC-SHA256
    // Size: 32 byte
    // Default: null or empty if the device identifier is not known
    optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES];
    // Connection handle of this connection if available
    // Range: 0x0000 - 0x0EFF (12 bits)
    // Default: 0xFFFF if the handle is unknown
    optional int32 connection_handle = 2;
    // HCI command associated with this event
    // Default: CMD_UNKNOWN
    optional android.bluetooth.hci.CommandEnum hci_cmd = 3;
    // HCI event associated with this event
    // Default: EVT_UNKNOWN
    optional android.bluetooth.hci.EventEnum hci_event = 4;
    // HCI command status code if this is triggerred by hci_cmd
    // Default: STATUS_UNKNOWN
    optional android.bluetooth.hci.StatusEnum cmd_status = 5;
    // HCI reason code associated with this event
    // Default: STATUS_UNKNOWN
    optional android.bluetooth.hci.StatusEnum reason_code = 6;
}

/**
 * Logs when there is an event related to Bluetooth Security Manager Protocol (SMP)
 *
 * Logged from:
 *     system/bt
 */
message BluetoothSmpPairingEventReported {
    // An identifier that can be used to match events for this device.
    // Currently, this is a salted hash of the MAC address of this Bluetooth device.
    // Salt: Randomly generated 256 bit value
    // Hash algorithm: HMAC-SHA256
    // Size: 32 byte
    // Default: null or empty if the device identifier is not known
    optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES];
    // SMP command sent or received over L2CAP
    // Default: CMD_UNKNOWN
    optional android.bluetooth.smp.CommandEnum smp_command = 2;
    // Whether this command is sent or received
    // Default: DIRECTION_UNKNOWN
    optional android.bluetooth.DirectionEnum direction = 3;
    // SMP failure reason code
    // Default: PAIRING_FAIL_REASON_DEFAULT
    optional android.bluetooth.smp.PairingFailReasonEnum smp_fail_reason = 4;
}

/**
/**
 * Logs when something is plugged into or removed from the USB-C connector.
 * Logs when something is plugged into or removed from the USB-C connector.
 *
 *
+2 −0
Original line number Original line Diff line number Diff line
@@ -24,5 +24,7 @@ cc_library_static {
        "android/bluetooth/a2dp/enums.proto",
        "android/bluetooth/a2dp/enums.proto",
        "android/bluetooth/enums.proto",
        "android/bluetooth/enums.proto",
        "android/bluetooth/hci/enums.proto",
        "android/bluetooth/hci/enums.proto",
        "android/bluetooth/hfp/enums.proto",
        "android/bluetooth/smp/enums.proto",
    ],
    ],
}
}
+54 −0
Original line number Original line Diff line number Diff line
@@ -56,3 +56,57 @@ enum LinkTypeEnum {
    LINK_TYPE_ACL = 0x01;
    LINK_TYPE_ACL = 0x01;
    LINK_TYPE_ESCO = 0x02;
    LINK_TYPE_ESCO = 0x02;
}
}

enum DeviceInfoSrcEnum {
    DEVICE_INFO_SRC_UNKNOWN = 0;
    // Within Android Bluetooth stack
    DEVICE_INFO_INTERNAL = 1;
    // Outside Android Bluetooth stack
    DEVICE_INFO_EXTERNAL = 2;
}

enum DeviceTypeEnum {
    DEVICE_TYPE_UNKNOWN = 0;
    DEVICE_TYPE_CLASSIC = 1;
    DEVICE_TYPE_LE = 2;
    DEVICE_TYPE_DUAL = 3;
}

// Defined in frameworks/base/core/java/android/bluetooth/BluetoothDevice.java
enum TransportTypeEnum {
    TRANSPORT_TYPE_AUTO = 0;
    TRANSPORT_TYPE_BREDR = 1;
    TRANSPORT_TYPE_LE = 2;
}

// Bond state enum
// Defined in frameworks/base/core/java/android/bluetooth/BluetoothDevice.java
enum BondStateEnum {
    BOND_STATE_UNKNOWN = 0;
    BOND_STATE_NONE = 10;
    BOND_STATE_BONDING = 11;
    BOND_STATE_BONDED = 12;
}

// Sub states within the bonding general state
enum BondSubStateEnum {
    BOND_SUB_STATE_UNKNOWN = 0;
    BOND_SUB_STATE_LOCAL_OOB_DATA_PROVIDED = 1;
    BOND_SUB_STATE_LOCAL_PIN_REQUESTED = 2;
    BOND_SUB_STATE_LOCAL_PIN_REPLIED = 3;
    BOND_SUB_STATE_LOCAL_SSP_REQUESTED = 4;
    BOND_SUB_STATE_LOCAL_SSP_REPLIED = 5;
}

enum UnbondReasonEnum {
    UNBOND_REASON_UNKNOWN = 0;
    UNBOND_REASON_AUTH_FAILED = 1;
    UNBOND_REASON_AUTH_REJECTED = 2;
    UNBOND_REASON_AUTH_CANCELED = 3;
    UNBOND_REASON_REMOTE_DEVICE_DOWN = 4;
    UNBOND_REASON_DISCOVERY_IN_PROGRESS = 5;
    UNBOND_REASON_AUTH_TIMEOUT = 6;
    UNBOND_REASON_REPEATED_ATTEMPTS = 7;
    UNBOND_REASON_REMOTE_AUTH_CANCELED = 8;
    UNBOND_REASON_REMOVED = 9;
}
+40 −0
Original line number Original line Diff line number Diff line
@@ -517,3 +517,43 @@ enum StatusEnum {
    STATUS_CLB_DATA_TOO_BIG = 0x43;
    STATUS_CLB_DATA_TOO_BIG = 0x43;
    STATUS_OPERATION_CANCELED_BY_HOST = 0x44; // Not currently used in system/bt
    STATUS_OPERATION_CANCELED_BY_HOST = 0x44; // Not currently used in system/bt
}
}

enum BqrIdEnum {
    BQR_ID_UNKNOWN = 0x00;
    BQR_ID_MONITOR_MODE = 0x01;
    BQR_ID_APPROACH_LSTO = 0x02;
    BQR_ID_A2DP_AUDIO_CHOPPY = 0x03;
    BQR_ID_SCO_VOICE_CHOPPY = 0x04;
}

enum BqrPacketTypeEnum {
    BQR_PACKET_TYPE_UNKNOWN = 0x00;
    BQR_PACKET_TYPE_ID = 0x01;
    BQR_PACKET_TYPE_NULL = 0x02;
    BQR_PACKET_TYPE_POLL = 0x03;
    BQR_PACKET_TYPE_FHS = 0x04;
    BQR_PACKET_TYPE_HV1 = 0x05;
    BQR_PACKET_TYPE_HV2 = 0x06;
    BQR_PACKET_TYPE_HV3 = 0x07;
    BQR_PACKET_TYPE_DV = 0x08;
    BQR_PACKET_TYPE_EV3 = 0x09;
    BQR_PACKET_TYPE_EV4 = 0x0A;
    BQR_PACKET_TYPE_EV5 = 0x0B;
    BQR_PACKET_TYPE_2EV3 = 0x0C;
    BQR_PACKET_TYPE_2EV5 = 0x0D;
    BQR_PACKET_TYPE_3EV3 = 0x0E;
    BQR_PACKET_TYPE_3EV5 = 0x0F;
    BQR_PACKET_TYPE_DM1 = 0x10;
    BQR_PACKET_TYPE_DH1 = 0x11;
    BQR_PACKET_TYPE_DM3 = 0x12;
    BQR_PACKET_TYPE_DH3 = 0x13;
    BQR_PACKET_TYPE_DM5 = 0x14;
    BQR_PACKET_TYPE_DH5 = 0x15;
    BQR_PACKET_TYPE_AUX1 = 0x16;
    BQR_PACKET_TYPE_2DH1 = 0x17;
    BQR_PACKET_TYPE_2DH3 = 0x18;
    BQR_PACKET_TYPE_2DH5 = 0x19;
    BQR_PACKET_TYPE_3DH1 = 0x1A;
    BQR_PACKET_TYPE_3DH3 = 0x1B;
    BQR_PACKET_TYPE_3DH5 = 0x1C;
}
+58 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

syntax = "proto2";
package android.bluetooth.smp;

option java_outer_classname = "BluetoothSmpProtoEnums";
option java_multiple_files = true;

// SMP Pairing command codes
enum CommandEnum {
    CMD_UNKNOWN = 0x00;
    CMD_PAIRING_REQUEST = 0x01;
    CMD_PAIRING_RESPONSE = 0x02;
    CMD_PAIRING_CONFIRM = 0x03;
    CMD_PAIRING_RANDOM = 0x04;
    CMD_PAIRING_FAILED = 0x05;
    CMD_ENCRYPTION_INFON = 0x06;
    CMD_MASTER_IDENTIFICATION = 0x07;
    CMD_IDENTITY_INFO = 0x08;
    CMD_IDENTITY_ADDR_INFO = 0x09;
    CMD_SIGNING_INFO = 0x0A;
    CMD_SECURITY_REQUEST = 0x0B;
    CMD_PAIRING_PUBLIC_KEY = 0x0C;
    CMD_PAIRING_DHKEY_CHECK = 0x0D;
    CMD_PAIRING_KEYPRESS_INFO = 0x0E;
}

enum PairingFailReasonEnum {
    PAIRING_FAIL_REASON_RESERVED = 0x00;
    PAIRING_FAIL_REASON_PASSKEY_ENTRY = 0x01;
    PAIRING_FAIL_REASON_OOB = 0x02;
    PAIRING_FAIL_REASON_AUTH_REQ = 0x03;
    PAIRING_FAIL_REASON_CONFIRM_VALUE = 0x04;
    PAIRING_FAIL_REASON_PAIR_NOT_SUPPORT = 0x05;
    PAIRING_FAIL_REASON_ENC_KEY_SIZE = 0x06;
    PAIRING_FAIL_REASON_INVALID_CMD = 0x07;
    PAIRING_FAIL_REASON_UNSPECIFIED = 0x08;
    PAIRING_FAIL_REASON_REPEATED_ATTEMPTS = 0x09;
    PAIRING_FAIL_REASON_INVALID_PARAMETERS = 0x0A;
    PAIRING_FAIL_REASON_DHKEY_CHK = 0x0B;
    PAIRING_FAIL_REASON_NUMERIC_COMPARISON = 0x0C;
    PAIRING_FAIL_REASON_CLASSIC_PAIRING_IN_PROGR = 0x0D;
    PAIRING_FAIL_REASON_XTRANS_DERIVE_NOT_ALLOW = 0x0E;
}
 No newline at end of file