OSDN Git Service

android-x86/system-bt.git
6 years agoDisable CFI verification for unit tests that are using gtest+gmock
Pavlin Radoslavov [Tue, 9 Jan 2018 20:46:33 +0000 (20:46 +0000)]
Disable CFI verification for unit tests that are using gtest+gmock
am: ee021ef64d

Change-Id: I8de3be780406fae5bb0142d3c51c83d38da4d9d3

6 years agoDisable CFI verification for unit tests that are using gtest+gmock
Pavlin Radoslavov [Tue, 9 Jan 2018 13:36:20 +0000 (05:36 -0800)]
Disable CFI verification for unit tests that are using gtest+gmock

Apparently, the CFI verification crashes unit tests that
are using gtest+gmock. Interestingly, those tests succeed for 32-bit
binaries, and fail for 64-bit binaries.

Bug: 71739588
Test: Running the 64-bit version of the unit tests in test/run_unit_tests.sh
Change-Id: Id1f6b3667b3f9eabb0719e65aea18c6950de63a8

6 years agoPrevent LE CoC from dropping data when remote MPS>8087
Jakub Pawlowski [Mon, 8 Jan 2018 08:35:58 +0000 (08:35 +0000)]
Prevent LE CoC from dropping data when remote MPS>8087
am: 8452b05b1a

Change-Id: Ifae837ba653efab320d5f6b2b7a10fa15444a0c7

6 years agoPrevent LE CoC from dropping data when remote MPS>8087
Jakub Pawlowski [Fri, 5 Jan 2018 10:41:36 +0000 (02:41 -0800)]
Prevent LE CoC from dropping data when remote MPS>8087

When using LE Coc through Java socket, one can read MPS from
getMaxTransmitPacketSize(). If this value is bigger than
local device L2CAP_MAX_SDU_LENGTH, data sent to remote will be
truncated. This patch fixes that by using properly big buffer for
receiving data from socket on native side.

Test: connect with device with MPS bigger than MPS, alternatively set
L2CAP_MAX_SDU_LENGTH to i.e. 30 on device during test and try to write
"remote MPS" of bytes to remote device.
Bug: 68359837
Change-Id: I02bef80f0dd0f0d6850704ac7787c5f3f5b9b3ab

6 years agoHFP: Add APIs for set and get active device (3/3)
Jack He [Sat, 6 Jan 2018 17:52:41 +0000 (17:52 +0000)]
HFP: Add APIs for set and get active device (3/3)
am: 9761185772

Change-Id: I1dc0936d87b7e42f68ab7919f6b8bb245fff905b

6 years agoAdded internal API to get/set the A2DP Active Device
Pavlin Radoslavov [Sat, 6 Jan 2018 17:41:24 +0000 (17:41 +0000)]
Added internal API to get/set the A2DP Active Device
am: 5fd3e62821

Change-Id: Ie5ee734f1e471eebcaa4ce07abe35999a068736e

6 years agoHFP: Use disableinbandringing instead of enableinbandringing
Jack He [Sat, 6 Jan 2018 17:33:13 +0000 (17:33 +0000)]
HFP: Use disableinbandringing instead of enableinbandringing
am: 72804890b6

Change-Id: Ia9187da1a44978410bfcac41eb1b48eb86e2cfaf

6 years agoHFP: Add APIs for set and get active device (3/3)
Jack He [Thu, 7 Dec 2017 02:35:11 +0000 (18:35 -0800)]
HFP: Add APIs for set and get active device (3/3)

* Add set active device APIs to set active device from Java layer
* Set active device to the first connected device if no one set it
  before
* Clear active device on RFCOMM disconnection if active device is the
  one getting disconnected
* Currently, the active device value is not used in any functional code

Bug: 68951996
Test: runtest -j40 bluetooth
Change-Id: Id0c00e89178b0f963ed8642e72c7010160dd1d68

6 years agoAdded internal API to get/set the A2DP Active Device
Pavlin Radoslavov [Tue, 19 Dec 2017 21:26:22 +0000 (13:26 -0800)]
Added internal API to get/set the A2DP Active Device

1. Call BluetoothA2dp.setActiveDevice(BluetoothDevice device) to set
   a connected A2DP device as active.
2. Listen for BluetoothA2dp.ACTION_ACTIVE_DEVICE_CHANGED intent
   that will contain the latest active device (in EXTRA_DEVICE field).
   If the active device could not be changed, the EXTRA_DEVICE
   field could be null.
3. If setActiveDevice() is NOT in-progress, BluetoothA2dp.getActiveDevice()
   can be used. If setActiveDevice() is in-progress, the result is undefined.
4. BluetoothA2dp.setActiveDevice() could be called by some other parts of
   the system, so interested parties should always listen for
   BluetoothA2dp.ACTION_ACTIVE_DEVICE_CHANGED intents and prepared
   for active device updates.

Bug: 71555243
Test: Manual
Change-Id: Ia25465e17a4539e940d09523cb621b230abd31e3

6 years agoHFP: Use disableinbandringing instead of enableinbandringing
Jack He [Thu, 7 Dec 2017 23:15:56 +0000 (15:15 -0800)]
HFP: Use disableinbandringing instead of enableinbandringing

* Use disableinbandringing system property as in-band ringing is enabled
  by default so an active user choice would disable it instead of
  enabling it

Bug: 65383086
Test: make, try toggling the preference and verify in-band ringing
      behavior

Change-Id: I9b10743960c933b223481d2efb68af538689c507
Merged-In: I9b10743960c933b223481d2efb68af538689c507
(cherry picked from commit 71de85091506eeeaab6e73cccf0ebd5bb06f2af1)

6 years agoRevert "Use vector instead of raw pointer in l2cap socket write handling"
Jakub Pawlowski [Fri, 5 Jan 2018 11:22:16 +0000 (11:22 +0000)]
Revert "Use vector instead of raw pointer in l2cap socket write handling"
am: a32cfc9406

Change-Id: I82bcb6ba5934527716f86347ab66a924af7d0de7

6 years agoRevert "Use vector instead of raw pointer in l2cap socket write handling"
Jakub Pawlowski [Fri, 5 Jan 2018 09:36:44 +0000 (09:36 +0000)]
Revert "Use vector instead of raw pointer in l2cap socket write handling"

This reverts commit 4da2ff53e694c5bee2973c55bb14eb40f74a9d3d.

Change-Id: Id8a399ec6f7474b92579c4647899e424feeb0d33

6 years agoUse vector instead of raw pointer in l2cap socket write handling
Jakub Pawlowski [Fri, 5 Jan 2018 07:29:10 +0000 (07:29 +0000)]
Use vector instead of raw pointer in l2cap socket write handling
am: 4da2ff53e6

Change-Id: If0bfaed0ee4d1221f9075c94c00c0ef87e756ee9

6 years agoUse vector instead of raw pointer in l2cap socket write handling
Jakub Pawlowski [Tue, 31 Oct 2017 06:15:43 +0000 (23:15 -0700)]
Use vector instead of raw pointer in l2cap socket write handling

Currently, when we receive data from upper layers for LE CoC socket,
we store it in memory and pass a raw pointer around, keeping memory
until the write is acknowledged by controller and event is sent back to
btif layer in on_l2cap_write*_done. If anything goes wrong, we might
loose the pointer to the data and have a memory leak.

From now on, we store the data in std::vector and pass its ownership
down the stack. The moment the data is copied into lower layer buffer,
vector is automatically freed. We no longer pass the data back to
on_l2cap_write*_done callback.

Bug: 68359837
Test: compilation test
Change-Id: If34c0fba8d4a040a242b8c655491b8967a03b96a

6 years agoAdd to receive BTHF_CALL_STATE_DISCONNECTED at HFP
Yasuyoshi Terui [Fri, 5 Jan 2018 05:50:20 +0000 (05:50 +0000)]
Add to receive BTHF_CALL_STATE_DISCONNECTED at HFP
am: c8da011a74

Change-Id: I5d0282479a5129150721baf6c389fafc5a26f9e1

6 years agoAdd to receive BTHF_CALL_STATE_DISCONNECTED at HFP
Yasuyoshi Terui [Fri, 14 Feb 2014 06:07:35 +0000 (15:07 +0900)]
Add to receive BTHF_CALL_STATE_DISCONNECTED at HFP

When the call is disconnected, the BTHF state is changed to IDLE and
SCO connection is disconnected before playing disconnect tone. So the
disconnect tone can't be sound from BTHS.

Add DISCONNECTED state for HFP and keep the state until disconnect tone
sounds from BT.

Test: manual - Checked whether the disconnect tone is sound from the BTHS
Bug: 69645337

Change-Id: Id96385e4ce35cfe7d0d4e14b74a2fc1a63165f82

6 years agoHFP: Use objects for shared library interface and callbacks (1/2)
Jack He [Thu, 4 Jan 2018 19:29:45 +0000 (19:29 +0000)]
HFP: Use objects for shared library interface and callbacks (1/2)
am: 12a576dc5f

Change-Id: I065fcf449afce66b2f10ab75d3aba7a349d4c350

6 years agoHFP: Use objects for shared library interface and callbacks (1/2)
Jack He [Thu, 14 Dec 2017 23:00:39 +0000 (15:00 -0800)]
HFP: Use objects for shared library interface and callbacks (1/2)

* Declare bluetooth::headset::Interface and
  bluetooth::headset::Callbacks instead of using structs
* Put HFP related methods and types into bluetooth::headset namespace
* Rename those methods into CamelStyle according to Google C++ style
  guide
* Remove the usage of HAL_CBACK in HFP as we only need to check if the
  callback object is null and all its methods must be implemented as
  mandated by rules of the pure virtual function
* These classes can be mocked during test to isolate behaviors
* Improved effort handling in btif_hf.cc to log error messages during
  failures

Bug: 70538124
Test: unit tests, testplans/135585
Change-Id: Iba120ef9d0a9701aececd300395b7b18d2d44e7d

6 years agoAdded RawAddress::FromOctets method to copy address from uint8_t pointer
Pavlin Radoslavov [Thu, 4 Jan 2018 02:53:18 +0000 (02:53 +0000)]
Added RawAddress::FromOctets method to copy address from uint8_t pointer
am: c57d93a35f

Change-Id: Id48a1ed16b0150f8c42e2737531c75e8fa1733b5

6 years agoAdded RawAddress::FromOctets method to copy address from uint8_t pointer
Pavlin Radoslavov [Sun, 26 Nov 2017 04:51:36 +0000 (20:51 -0800)]
Added RawAddress::FromOctets method to copy address from uint8_t pointer

Also, added missing unit test for existing constructor

Test: Unit test added
Change-Id: Id642aaf2651c59b87af344c78aafc87aba2898d1

6 years agoAdvertising Filtering: send all filters in one batch (2/2)
Jakub Pawlowski [Wed, 3 Jan 2018 22:35:52 +0000 (22:35 +0000)]
Advertising Filtering: send all filters in one batch (2/2)
am: 0ddfae721a

Change-Id: I36dca21c52968fc4ddb2ef3b1cfd4b7d6106391b

6 years agoAdvertising Filtering: send all filters in one batch (2/2)
Jakub Pawlowski [Tue, 3 Oct 2017 19:31:48 +0000 (12:31 -0700)]
Advertising Filtering: send all filters in one batch (2/2)

Bug: 67371480
Test: sl4a FilteringTest
Change-Id: I93595b5ed4e7cf25cdb6a8b1f9413a7f05e61774

6 years agoMerge "Temporarily remove broken SCO-over-HCI implementation"
Hansong Zhang [Wed, 3 Jan 2018 18:39:19 +0000 (18:39 +0000)]
Merge "Temporarily remove broken SCO-over-HCI implementation"
am: 3d4e3b5861

Change-Id: Id420d440f7692eb37547c01437b387d3b1935113

6 years agoMerge "Temporarily remove broken SCO-over-HCI implementation"
Treehugger Robot [Wed, 3 Jan 2018 18:35:35 +0000 (18:35 +0000)]
Merge "Temporarily remove broken SCO-over-HCI implementation"

6 years agoRemove bytes after first zero length field in legacy advertisements
Jakub Pawlowski [Wed, 3 Jan 2018 12:38:01 +0000 (12:38 +0000)]
Remove bytes after first zero length field in legacy advertisements
am: 5a290f877f

Change-Id: Ie75a131a635e9e9e471ad3e4fdc8781d1127b5a2

6 years agoRemove bytes after first zero length field in legacy advertisements
Jakub Pawlowski [Wed, 3 Jan 2018 09:49:41 +0000 (01:49 -0800)]
Remove bytes after first zero length field in legacy advertisements

This is for compatibility with many existing old devices, that have
non-zero bytes after zero length field. This is currently causing
advertisements to be dropped, rendering those devices invisible.

Bug: 68907583
Test: AdvertiseDataParserTest.RemoveTrailingZerosMalformed
Change-Id: Ib51950f7e0c6a2771f56c6f69108fa10f2517f38

6 years agoMinor style fixes in l2c_main.cc
Jakub Pawlowski [Wed, 3 Jan 2018 08:45:30 +0000 (08:45 +0000)]
Minor style fixes in l2c_main.cc
am: 4883a8cbb2

Change-Id: Id9415750cb309163f81320f3638e962aa8db9420

6 years agoTemporarily remove broken SCO-over-HCI implementation
Hansong Zhang [Tue, 2 Jan 2018 21:48:42 +0000 (13:48 -0800)]
Temporarily remove broken SCO-over-HCI implementation

This is currently not used on known Android platforms and currently does
not compile. To be re-visited when SCO-over-HCI can be re-implemented
based on the new HAL.

Test: make
Bug: 70965527
Change-Id: Iefff5b3fb1599a0cdb2c7fb90b463f3643a2a47e

6 years agoMinor style fixes in l2c_main.cc
Jakub Pawlowski [Thu, 7 Dec 2017 09:21:48 +0000 (01:21 -0800)]
Minor style fixes in l2c_main.cc

Bug: 69623109
Test: compilation
Change-Id: Ie5d744bced1e392d9cfa57ae6c9b4a4664c021c8

6 years agoMerge "BluetoothHidDevice: rename onIntrData to onInterruptData (2/5)"
Hansong Zhang [Thu, 21 Dec 2017 22:08:42 +0000 (22:08 +0000)]
Merge "BluetoothHidDevice: rename onIntrData to onInterruptData (2/5)"
am: 983c79f643

Change-Id: Ia5adefe6cff4338b2ebf6b4a043ca77fdd9e5231

6 years agoMerge "BluetoothHidDevice: rename onIntrData to onInterruptData (2/5)"
Treehugger Robot [Thu, 21 Dec 2017 21:56:11 +0000 (21:56 +0000)]
Merge "BluetoothHidDevice: rename onIntrData to onInterruptData (2/5)"

6 years agoIncrease MPS for LE CoC to one LE Buffer Size
Jakub Pawlowski [Thu, 21 Dec 2017 20:54:27 +0000 (20:54 +0000)]
Increase MPS for LE CoC to one LE Buffer Size
am: f18b31e1e3

Change-Id: I8837cbb289d9138ec21088b9aecc84b4864ab7d8

6 years agoMerge "Increase default SDP_MTU_SIZE to 1024"
Kim Low [Thu, 21 Dec 2017 19:37:39 +0000 (19:37 +0000)]
Merge "Increase default SDP_MTU_SIZE to 1024"
am: 94559ee329

Change-Id: I1c922824d6b6c8a82f69a5584fb023c304d4477e

6 years agoIncrease MPS for LE CoC to one LE Buffer Size
Jakub Pawlowski [Tue, 19 Dec 2017 21:22:27 +0000 (13:22 -0800)]
Increase MPS for LE CoC to one LE Buffer Size

This should improve throughtput, and reduce number of LE-U PDUs needed
to send message over LE channel.

Test: compilation
Change-Id: Ic1e203eaec0b8012984f27d3c488ea6eb0945399

6 years agoMerge "Increase default SDP_MTU_SIZE to 1024"
Treehugger Robot [Thu, 21 Dec 2017 15:11:56 +0000 (15:11 +0000)]
Merge "Increase default SDP_MTU_SIZE to 1024"

6 years agoBluetoothHidDevice: rename onIntrData to onInterruptData (2/5)
Hansong Zhang [Mon, 18 Dec 2017 23:22:22 +0000 (15:22 -0800)]
BluetoothHidDevice: rename onIntrData to onInterruptData (2/5)

Bug: 63384609
Test: make
Merged-In: I76a149f1c7f30ac3eec31d57053231f7f6dac01d
Change-Id: I76a149f1c7f30ac3eec31d57053231f7f6dac01d
(cherry picked from commit 0fa9df6938dfe7dafa10601ea904cd6f1d2e95c2)

6 years agoMinor GATT logging fixes
Jakub Pawlowski [Wed, 20 Dec 2017 12:19:50 +0000 (12:19 +0000)]
Minor GATT logging fixes
am: fdae46505f

Change-Id: Ic2d7530c2650139a0c648e90aa716b691feb9768

6 years agoIncrease default SDP_MTU_SIZE to 1024
Kim Low [Mon, 11 Dec 2017 22:38:01 +0000 (14:38 -0800)]
Increase default SDP_MTU_SIZE to 1024

This fixes a problem where older DualShock4 controllers would
not connect with SDP_MTU_SIZE < 1024.

Fixes: 70356237
Change-Id: I96a6ee0536547b93f2ae411eb1d8860292855c31

6 years agoMinor GATT logging fixes
Jakub Pawlowski [Wed, 13 Dec 2017 18:12:39 +0000 (10:12 -0800)]
Minor GATT logging fixes

Test: compilation
Bug: 70297056
Change-Id: If71bbb19a08abbbb30b5ce5027aed97e03b3baaa

6 years agoHFP: Add interface to disable in-band ringing through BSIR (1/2)
Jack He [Mon, 18 Dec 2017 23:18:02 +0000 (23:18 +0000)]
HFP: Add interface to disable in-band ringing through BSIR (1/2)
am: b55bc83c9e

Change-Id: I352b392a83f14bdd07a318b451a5426601cebf3d

6 years agoHFP: Add interface to disable in-band ringing through BSIR (1/2)
Jack He [Mon, 4 Dec 2017 22:13:01 +0000 (14:13 -0800)]
HFP: Add interface to disable in-band ringing through BSIR (1/2)

* Add send_bsir(bool, RawAddress*) to turn
  in-band ringtone feature ON and OFF dynamically during a service
  level connection with a headset

Bug: 70173881
Test: make
Change-Id: I358e39a9176d75dfb8682e77cf567f87eb417d1a

6 years agobt: Update libchrome APIS to r456626.
Hidehiko Abe [Mon, 18 Dec 2017 10:34:35 +0000 (10:34 +0000)]
bt: Update libchrome APIS to r456626.
am: aeca7aa7a7

Change-Id: I9b90c9be75ae4e7d1ed3f3602298eb29d6407e35

6 years agobt: Update libchrome APIS to r456626.
Hidehiko Abe [Wed, 13 Dec 2017 09:57:10 +0000 (18:57 +0900)]
bt: Update libchrome APIS to r456626.

The new libchrome has been ported from Chromium and some APIs
have changed. Make necessary changes at call sites.

Test: Build.
Change-Id: I4c904a9e8b76f1ee72e14d62740cb0d88963b270
Merged-In: I0cc2cf8521caf5f6f69346bb3ce3dc1c59b95cc6

6 years agoMerge "Add extra log message to print output codec config"
Pavlin Radoslavov [Sat, 16 Dec 2017 00:20:15 +0000 (00:20 +0000)]
Merge "Add extra log message to print output codec config"
am: 12389b46c9

Change-Id: I11ba8ff9116754794153bd2d70436b7332259f54

6 years agoMerge "Add extra log message to print output codec config"
Treehugger Robot [Sat, 16 Dec 2017 00:09:34 +0000 (00:09 +0000)]
Merge "Add extra log message to print output codec config"

6 years agoMerge "HFP: Use do_in_jni_thread to avoid btif_transfer_context"
Jack He [Fri, 15 Dec 2017 19:17:50 +0000 (19:17 +0000)]
Merge "HFP: Use do_in_jni_thread to avoid btif_transfer_context"
am: 193c654fef

Change-Id: I765ef7fcb7dd358563f77a1f76058657297c54b6

6 years agoMerge "HFP: Use do_in_jni_thread to avoid btif_transfer_context"
Treehugger Robot [Fri, 15 Dec 2017 19:09:36 +0000 (19:09 +0000)]
Merge "HFP: Use do_in_jni_thread to avoid btif_transfer_context"

6 years agoHCI: Fix use after free in hci_transmit
Myles Watson [Fri, 15 Dec 2017 02:07:20 +0000 (02:07 +0000)]
HCI: Fix use after free in hci_transmit
am: 199dee1f8c

Change-Id: I8e325585fb2b90246ed90db7797adab48d70530a

6 years agoAdd extra log message to print output codec config
Pavlin Radoslavov [Fri, 15 Dec 2017 00:35:28 +0000 (16:35 -0800)]
Add extra log message to print output codec config

Test: Code compilation and log observation
Change-Id: Iee41fe0566b1d635431a9535099a3601c8de11b6

6 years agoHCI: Fix use after free in hci_transmit
Myles Watson [Thu, 14 Dec 2017 20:20:40 +0000 (12:20 -0800)]
HCI: Fix use after free in hci_transmit

Bug: 70626623
Test: Sanity Bluetooth on/off
Change-Id: Ie8c857f8bdf3897fd3776772a4198bab823c6115

6 years agoHFP: Use do_in_jni_thread to avoid btif_transfer_context
Jack He [Tue, 12 Dec 2017 04:21:36 +0000 (20:21 -0800)]
HFP: Use do_in_jni_thread to avoid btif_transfer_context

* Use do_in_jni_thread and base::Bind() to pass callbacks to JNI thread
* Remove unnecessary code after the refactoring

Bug: 70538124
Test: make, conntect to HFP-enabled car kits
Change-Id: Iea8f19732d40bf40b056fea760ee5cf785a5812b

6 years agoMerge "btif_sock_rfc: Use %u for uint32_t"
Yi Kong [Thu, 14 Dec 2017 21:40:06 +0000 (21:40 +0000)]
Merge "btif_sock_rfc: Use %u for uint32_t"
am: c30ff64348

Change-Id: I93406b27af75662f0d5f58b9438eeffa1c547f07

6 years agoMerge "btif_sock_rfc: Use %u for uint32_t"
Treehugger Robot [Thu, 14 Dec 2017 21:27:12 +0000 (21:27 +0000)]
Merge "btif_sock_rfc: Use %u for uint32_t"

6 years agoMerge "Fix Bluetooth crash on user switching"
Jakub Pawlowski [Thu, 14 Dec 2017 19:55:03 +0000 (19:55 +0000)]
Merge "Fix Bluetooth crash on user switching"
am: 7dba951c61

Change-Id: Iee0f6698d762c0a88d5140c3fd9a9893c7370aaf

6 years agoFix GATT discovery service fail over BR/EDR
Chao Quan [Thu, 14 Dec 2017 19:54:35 +0000 (19:54 +0000)]
Fix GATT discovery service fail over BR/EDR
am: b00872797a

Change-Id: Ib2b8a7cfe8757942a1eb25dd14c298a15809d5c5

6 years agoMerge "Fix Bluetooth crash on user switching"
Treehugger Robot [Thu, 14 Dec 2017 19:36:56 +0000 (19:36 +0000)]
Merge "Fix Bluetooth crash on user switching"

6 years agoFix GATT discovery service fail over BR/EDR
Chao Quan [Mon, 23 Oct 2017 11:41:13 +0000 (19:41 +0800)]
Fix GATT discovery service fail over BR/EDR

According to the current gattc state machine, stack queues
discovery services request comes from framework when gattc
is in BTA_GATTC_DISCOVER_ST state. This request is re-scheduled
after discovery on server finished in bta_gattc_disc_cmpl
and return the discovery results to framemwork. But now, stack
assumed LE transport in code, which prevents discovery services
executing. This error can be detected by ACTS GATTOverBrEdrTest:
test_gatt_bredr_connect_trigger_on_services_discovered

Fix assumed transport to actual situantion

Test: ACTS GATTOverBrEdrTest:
test_gatt_bredr_connect_trigger_on_services_discovered
Change-Id: I110a0a3c19595fb76c3bb15b092ce18ebf7b11bf

6 years agoFix Bluetooth crash on user switching
Jakub Pawlowski [Thu, 14 Dec 2017 17:26:43 +0000 (09:26 -0800)]
Fix Bluetooth crash on user switching

Test: compilation
Fixes: 70634701
Change-Id: I571bb8dde1317b2a7e4a73a1316c4c26d0f19466

6 years agobtif_sock_rfc: Use %u for uint32_t
Yi Kong [Wed, 6 Dec 2017 00:25:56 +0000 (16:25 -0800)]
btif_sock_rfc: Use %u for uint32_t

Discovered by the upcoming compiler update.

Test: build
Change-Id: If1497232b8f74bfc95194126a398e62f6eda7672

6 years agoHFP: Fix static check errors
Jack He [Thu, 14 Dec 2017 00:18:36 +0000 (00:18 +0000)]
HFP: Fix static check errors
am: 6545d3f346

Change-Id: I94c8a817b847f7a4136d5c150db6044c55188893

6 years agoHFP: Fix static check errors
Jack He [Tue, 12 Dec 2017 03:49:30 +0000 (19:49 -0800)]
HFP: Fix static check errors

* In bta/ag and btif/btif_hf.cc
* Simplify boolean values
* Use nullptr intead of NULL
* Use C++ style include headers instead of C style ones
* Remove unused struct definitions
* Remove unused code from bta_ag_ci.h/cc
* Use range based for-loop when it can be converted automatically
* Use C++ style zero-initialization instead of memset so that non-POD
  members of structs can be initialized properly
* Use "" to initliaze char array since the rest of the array will be
  zero padded if the array is assigned to a shorter string than its
  length

Bug: 68340193
Test: make, connect to HFP enabled device
Change-Id: I25c1e48ca1cb40629b9b60243ec462f498d8fc24

6 years agoMerge "Bump GATT cache file version marker"
Jakub Pawlowski [Wed, 13 Dec 2017 21:58:44 +0000 (21:58 +0000)]
Merge "Bump GATT cache file version marker"
am: 4edb5857bc

Change-Id: Ie2636872c56069c558e236fda9877d2be5d049cc

6 years agoMerge "Bump GATT cache file version marker"
Treehugger Robot [Wed, 13 Dec 2017 21:54:02 +0000 (21:54 +0000)]
Merge "Bump GATT cache file version marker"

6 years agoBump GATT cache file version marker
Jakub Pawlowski [Wed, 13 Dec 2017 18:02:32 +0000 (10:02 -0800)]
Bump GATT cache file version marker

In commit 819e2ecb84, the type used for UUID in the GATT cache was changed
from tBT_UUID to bluetooth:Uuid. This changed the binary representation of
this field. 18 bytes were used previously, now only 16 bytes are used.
This change made GATT cache file format incompatible between Android
versions, and requires an increment of cache file format version.

Fixes: 70297056
Test: added GattCacheTest
Change-Id: I4bceada300dbe3aab10d14df2aa853e4573c536e

6 years agoMerge "Fix callback type mismatches in Bluetooth"
Vishwath Mohan [Wed, 13 Dec 2017 21:05:02 +0000 (21:05 +0000)]
Merge "Fix callback type mismatches in Bluetooth"
am: f527f08e4f

Change-Id: I8963109fe921b84fcfa31f096a26ffd420af182a

6 years agoAdded check to know the status of any ongoing pairing status.
Matadeen Mishra [Wed, 13 Dec 2017 21:04:37 +0000 (21:04 +0000)]
Added check to know the status of any ongoing pairing status.
am: 6cc4234169

Change-Id: If0868cfe6d496027199f040ba72175a603353776

6 years agoMerge "Fix callback type mismatches in Bluetooth"
Vishwath Mohan [Wed, 13 Dec 2017 21:00:31 +0000 (21:00 +0000)]
Merge "Fix callback type mismatches in Bluetooth"

6 years agoAdded check to know the status of any ongoing pairing status.
Matadeen Mishra [Tue, 21 Jun 2016 12:27:31 +0000 (17:57 +0530)]
Added check to know the status of any ongoing pairing status.

Use Case: Host allows incoming pairing even though outgoing pairing
is in process.

Steps:
1. Initiate bonding from Mecapp and provide pin key at Mecapp pairing
pop-up.
2. Start pairing for Logitech mouse from DUT and click on accept
pairing at mecapp pairing pop-up.
3. Give the same pin key for mecapp pairing pop-up at DUT side and
observe the behavior.

Failure: Incoming request is getting from remote and got a pop-up
for PIN request.

Root Cause: Pairing was auto accepted for remote device while
pairing was in progress with another remote device leading to
inconsistent behavior.

Fix: Rejects incoming pairing request from remote device
if already in pairing state.

Test: Tested with HID Logitech Mouse

Fixes: 35417665

Change-Id: I19a2a98e4ceb51cabaef279a2e3f8224fbed9ea1

6 years agoFix callback type mismatches in Bluetooth
Vishwath Mohan [Mon, 4 Dec 2017 21:28:06 +0000 (13:28 -0800)]
Fix callback type mismatches in Bluetooth

This CL fixes some mismatches between defined callback signatures and
the signatures of the functions that are actually passed in as that
type.

Bug: 67507323
Test: lunch walleye_cfi && m -j50

Change-Id: Ia5c22ac614c34cc8bd8a370861d988bb9f8034a6

6 years agoMerge "BLE: Don't set SC bit in AuthReq for Legacy Devices"
Hemant Gupta [Wed, 13 Dec 2017 01:58:11 +0000 (01:58 +0000)]
Merge "BLE: Don't set SC bit in AuthReq for Legacy Devices"
am: 9d4686bd2f

Change-Id: I8613157bff638cef511af4b29cf0adc5902a7911

6 years agoMerge "Check MT call setup state before starting ring timer"
Satish Kodishala [Wed, 13 Dec 2017 01:57:44 +0000 (01:57 +0000)]
Merge "Check MT call setup state before starting ring timer"
am: 964542b8e6

Change-Id: I9e2be9fba8c802e933ea853dc0130d8271ba252f

6 years agoMerge "BLE: Don't set SC bit in AuthReq for Legacy Devices"
Treehugger Robot [Wed, 13 Dec 2017 01:21:23 +0000 (01:21 +0000)]
Merge "BLE: Don't set SC bit in AuthReq for Legacy Devices"

6 years agoMerge "Check MT call setup state before starting ring timer"
Treehugger Robot [Wed, 13 Dec 2017 00:31:35 +0000 (00:31 +0000)]
Merge "Check MT call setup state before starting ring timer"

6 years agoBLE: Don't set SC bit in AuthReq for Legacy Devices
Hemant Gupta [Wed, 6 Dec 2017 10:05:20 +0000 (15:35 +0530)]
BLE: Don't set SC bit in AuthReq for Legacy Devices

Disable SC bit for legacy LE devices (< 4.2) since as per earlier
spec, this BIT should be 0 and ignored by remote device. Some remote
legacy devices which don't follow the approach of ignoring these bits
(if set) go in bad state and result in SMP pairing failure.

Test: Pairing succeeds with remote device after resettings SC bit.

Fixes: 70259025
Change-Id: I35838c60fb08916a141f764b3e1922d277b99f28

6 years agoAVRCP: Flush the command queue in AVRC_Close
Myles Watson [Tue, 12 Dec 2017 19:46:49 +0000 (19:46 +0000)]
AVRCP: Flush the command queue in AVRC_Close
am: a701c777af

Change-Id: I1fdbe972e912ca1a06e6b83e336080733a0b5cf1

6 years agoAVRCP: Flush the command queue in AVRC_Close
Myles Watson [Tue, 12 Dec 2017 00:23:21 +0000 (16:23 -0800)]
AVRCP: Flush the command queue in AVRC_Close

Test: toggle BR/EDR, manually inspect open files using lsof
Change-Id: I7bdc3a3840e7cc31894a9050dd5b7c29f863bb30

6 years agoMerge "Make BluetoothPbap implement BluetoothProfile (3/3)"
Hansong Zhang [Tue, 12 Dec 2017 19:12:15 +0000 (19:12 +0000)]
Merge "Make BluetoothPbap implement BluetoothProfile (3/3)"
am: eb9d2cff70

Change-Id: I3e129b74d7cb224754d35e0be01c1f73be361ea4

6 years agoMerge "Make BluetoothPbap implement BluetoothProfile (3/3)"
Treehugger Robot [Tue, 12 Dec 2017 19:02:26 +0000 (19:02 +0000)]
Merge "Make BluetoothPbap implement BluetoothProfile (3/3)"

6 years agobinder: Call writeParcelFileDescriptor()
Myles Watson [Sat, 9 Dec 2017 03:02:04 +0000 (03:02 +0000)]
binder: Call writeParcelFileDescriptor()
am: be797989f1

Change-Id: I642871e90d7c3350a21f2b2641b6a1575c68a326

6 years agobinder: Call writeParcelFileDescriptor()
Myles Watson [Fri, 8 Dec 2017 23:50:49 +0000 (15:50 -0800)]
binder: Call writeParcelFileDescriptor()

Fixes: 69678755
Test: manual inspection using lsof
Change-Id: Ifcb5af2d5797e667c20d4c41ad836cf7626e9909

6 years agoMake BluetoothPbap implement BluetoothProfile (3/3)
Hansong Zhang [Sat, 9 Dec 2017 00:08:34 +0000 (16:08 -0800)]
Make BluetoothPbap implement BluetoothProfile (3/3)

Change AIDL method signatures:
* Removed connect()
* Add BluetoothDevice parameter for disconnect()
* Rename other method names to be consistent with BluetoothProfile
methods

Test: test with PBAP carkits
Bug: 69417672
Change-Id: Ide81254d71128b9d204b63aa60bc39752add6edd

6 years agoMerge "HFP: Remove dead code in native interface"
Jack He [Fri, 8 Dec 2017 01:37:44 +0000 (01:37 +0000)]
Merge "HFP: Remove dead code in native interface"
am: 2fbb2e982e

Change-Id: Id8a4f4b3446b77f4ea57b3af8e900c48065c3f45

6 years agoMerge "HFP: Remove dead code in native interface"
Treehugger Robot [Fri, 8 Dec 2017 01:14:59 +0000 (01:14 +0000)]
Merge "HFP: Remove dead code in native interface"

6 years agoMerge "Make LE CoC Maximum PDU Size configurable"
Jakub Pawlowski [Thu, 7 Dec 2017 22:32:01 +0000 (22:32 +0000)]
Merge "Make LE CoC Maximum PDU Size configurable"
am: bde88fa29c

Change-Id: I5a898bd5f71dcaf00674125ee25d6e80247660d1

6 years agoMerge "Make LE CoC Maximum PDU Size configurable"
Treehugger Robot [Thu, 7 Dec 2017 22:20:51 +0000 (22:20 +0000)]
Merge "Make LE CoC Maximum PDU Size configurable"

6 years agoMake LE CoC Maximum PDU Size configurable
Jakub Pawlowski [Tue, 5 Dec 2017 07:17:49 +0000 (23:17 -0800)]
Make LE CoC Maximum PDU Size configurable

Hearing Aid will need to modify this value. For existing code keep the
value as is.

Test: none
Bug: 69623109
Change-Id: I8c97882b5dd08a049d3a958c51163bad41df4d6a

6 years agoMerge "BTIF: Fix return types of interface getters"
Jack He [Thu, 7 Dec 2017 20:34:30 +0000 (20:34 +0000)]
Merge "BTIF: Fix return types of interface getters"
am: 946ddd2770

Change-Id: I9121c1a99c593b2b27e15695121ed667f64008b8

6 years agoMerge "BTIF: Fix return types of interface getters"
Treehugger Robot [Thu, 7 Dec 2017 20:21:54 +0000 (20:21 +0000)]
Merge "BTIF: Fix return types of interface getters"

6 years agoGATT cache memory corruption fix
Jakub Pawlowski [Thu, 7 Dec 2017 20:13:22 +0000 (20:13 +0000)]
GATT cache memory corruption fix
am: 6918d40fd9

Change-Id: I7b5d4804d17675198c5995fa18faff74f0a2efae

6 years agoHFP: Remove dead code in native interface
Jack He [Thu, 7 Dec 2017 19:19:06 +0000 (11:19 -0800)]
HFP: Remove dead code in native interface

The following hidden API methods are not implemented by the stack and
should be removed:
  - getBatteryUsageHint()
  - acceptIncomingConnect()
  - rejectIncomingConnect()

The following hidden API methods are no longer needed due to lack of
usage and should be removed:
  - enableWBS()
  - disableWBS()
  - bindResponse()

Bug: 70336991
Test: make
Change-Id: Ifa0d3cbdf4487465782144b84a2bed5e4f7acc4e

6 years agoGATT cache memory corruption fix
Jakub Pawlowski [Tue, 5 Dec 2017 12:05:46 +0000 (04:05 -0800)]
GATT cache memory corruption fix

When doing GATT discovery, we interleave adding elements to vector,
and storing pointers to them. This can cause memory corruption, because
vector can reallocate the memory when adding element, leaving the pointers
invalid. To fix that, never store pointers to mutable vector elements.

Bug: 70041392
Test: manual, connected to HID device
Change-Id: I6bb3fec61afa742f446b66e3291c5f326738ee17

6 years agoBTA GATT operation queue
Jakub Pawlowski [Thu, 7 Dec 2017 18:22:40 +0000 (18:22 +0000)]
BTA GATT operation queue
am: 80c1e1c494

Change-Id: I771d06a5fb93f7a02a1cad8e70a158c2a523a5d0

6 years agoBTA GATT operation queue
Jakub Pawlowski [Thu, 30 Nov 2017 05:49:32 +0000 (21:49 -0800)]
BTA GATT operation queue

Currently, HID BTA app have own GATT queue for scheduling reads/writes
during device setup. Such queue will also be needed for Hearing Aid.
This patch makes the GATT queue code generic and clean it up.

Test: manual, bond HID device
Bug: 69623109
Change-Id: Ic893d630ab5154f7c1875748f3e275cbad02a7b2

6 years agoBTIF: Fix return types of interface getters
Jack He [Mon, 4 Dec 2017 22:30:42 +0000 (14:30 -0800)]
BTIF: Fix return types of interface getters

* They should return const pointer to interface structs
* Fixed return type for btif_rc_ctrl_get_interface, it should be
  "const btrc_ctrl_interface_t*" but was "btrc_interface_t*". Later
  casting masked this error, but it may hurt us in the future if not
  fixed

Test: make
Change-Id: I41b2366cce68b1338761d84cef9ab986fd3334df

6 years agoMerge "Log BT Trace levels per profile"
Eagle Kang [Wed, 6 Dec 2017 21:04:38 +0000 (21:04 +0000)]
Merge "Log BT Trace levels per profile"
am: 792a202b39

Change-Id: If37fac010c209f8bab22a6a3837db019e142b3fa

6 years agoMerge "Log BT Trace levels per profile"
Treehugger Robot [Wed, 6 Dec 2017 20:51:42 +0000 (20:51 +0000)]
Merge "Log BT Trace levels per profile"

6 years agoMerge "Remove BluetoothHidDeviceAppConfiguration (1/4)"
Hansong Zhang [Wed, 6 Dec 2017 20:34:01 +0000 (20:34 +0000)]
Merge "Remove BluetoothHidDeviceAppConfiguration (1/4)"
am: ad8c5197e2

Change-Id: If7ac469d6047883aa00efc267f9123b41205ddda

6 years agoMerge "Remove BluetoothHidDeviceAppConfiguration (1/4)"
Treehugger Robot [Wed, 6 Dec 2017 19:34:22 +0000 (19:34 +0000)]
Merge "Remove BluetoothHidDeviceAppConfiguration (1/4)"

6 years agoRemove the remote from paired list when auth fails
Venkata Jagadeesh Garaga [Wed, 6 Dec 2017 19:06:40 +0000 (19:06 +0000)]
Remove the remote from paired list when auth fails
am: dae4076bcb

Change-Id: I5c0d47a55b13e2b4bf13678edcb45e01584d8cad

6 years agoRemove the remote from paired list when auth fails
Venkata Jagadeesh Garaga [Sun, 30 Jul 2017 11:05:54 +0000 (16:35 +0530)]
Remove the remote from paired list when auth fails

Problem:
Remote stuck in connecting state during reconnection.

Steps:
1.Pair and connect the remote.
2.disconnect the remote and try to connect again from the DUT. In few trial authentication failure observed.

Root Cause:
During profile re connection scenario stack not posting
bond state change call back with bond none state if any
authentication failure. Any profile connection triggered
after this can stuck in security procedure and
never recovers.

Fix:
Hence remove the remote from paired list when auth fails

Test: manual
Bug:69028610
Change-Id: I6ac627e733f8b0b191c600153542acbb07f8c7a8