OSDN Git Service

android-x86/system-bt.git
4 years agoRootCanal: Add Classic Connection Management commands
Chienyuan [Wed, 25 Sep 2019 11:23:21 +0000 (19:23 +0800)]
RootCanal: Add Classic Connection Management commands

Bug: 139700781
Test: run_cert.sh
Change-Id: Ic4781d155eec74be98f2d178a60169cc0b360a4d

4 years agoMerge "GD HCI: Classic connection management commands"
Treehugger Robot [Wed, 25 Sep 2019 05:07:38 +0000 (05:07 +0000)]
Merge "GD HCI: Classic connection management commands"

4 years agoGD HCI: Classic connection management commands
Chienyuan [Wed, 11 Sep 2019 08:37:30 +0000 (16:37 +0800)]
GD HCI: Classic connection management commands

Bug: 139700781
Test: run_device_cert.sh
Change-Id: I866237141610213e71ea33c662d977d1cd458387

4 years agoFix BLE device reconnections
Jakub Pawlowski [Mon, 23 Sep 2019 20:27:12 +0000 (22:27 +0200)]
Fix BLE device reconnections

Some BLE devices would advertise using both their RPA and Public
address. If such device was discovered using it's RPA, but later it's
overriden by Public address, we might have trouble reconnecting to it
due to the logic in whitelist handling code. This logic should prefer
Identity Address over any other type of address.

Test: Bond with BLE device, modify the AddrType in bt_config.conf file,
try to reconnect. We should use Address Type stored in LE_KEY_PID
Bug: 141186673
Bug: 139825901
Bug: 140847046
Change-Id: If27032f53dd655983ee5d5bc6d07b55d7458078f

4 years agoMerge "Fix connection_manager dumpsys output"
Jakub Pawlowski [Mon, 23 Sep 2019 19:16:55 +0000 (19:16 +0000)]
Merge "Fix connection_manager dumpsys output"

4 years agoFix connection_manager dumpsys output
Jakub Pawlowski [Mon, 23 Sep 2019 17:03:57 +0000 (19:03 +0200)]
Fix connection_manager dumpsys output

Currently dumpsys does not display apps attempting background
connection. Also, newlines are messed up, output looks ugly.

Test: adb shell dumpsys bluetooth_manager. Perform visual inspection
around connection_manager

Change-Id: I0ed6302fb9b8d9aeda393e9932996ce8eb6bc510

4 years agoMerge changes I6596b3b1,Ifd49de59,I42de064a
Treehugger Robot [Mon, 23 Sep 2019 15:09:58 +0000 (15:09 +0000)]
Merge changes I6596b3b1,Ifd49de59,I42de064a

* changes:
  PDL: Remove unused includes in type, checksum_def
  PDL: Replace abort() calls with ERROR()
  PDL: Remove extra semicolons

4 years agoPDL: Remove unused includes in type, checksum_def
Myles Watson [Thu, 19 Sep 2019 03:27:35 +0000 (20:27 -0700)]
PDL: Remove unused includes in type, checksum_def

Test: bluetooth_packet_parser_test
Change-Id: I6596b3b108d08b8d01d9cf81c27ead30c8ab5193

4 years agoPDL: Replace abort() calls with ERROR()
Myles Watson [Wed, 18 Sep 2019 20:49:34 +0000 (13:49 -0700)]
PDL: Replace abort() calls with ERROR()

Test: bluetooth_packet_parser_test
Change-Id: Ifd49de597dfdc91cd8f35a40ede6b2c90b352127

4 years agoPDL: Remove extra semicolons
Myles Watson [Wed, 18 Sep 2019 16:55:55 +0000 (09:55 -0700)]
PDL: Remove extra semicolons

Test: bluetooth_packet_parser_test
Change-Id: I42de064a0bc5aa2e0953d28b0ecbf500544d7c96

4 years agoGATTC: Support get white list size from controller
Ugo Yu [Fri, 20 Sep 2019 06:50:06 +0000 (14:50 +0800)]
GATTC: Support get white list size from controller

Use maximum BLE white list size reports from controller
instead of define it in build time.

Bug: 141279730
Test: Manual
Change-Id: I7f5f754d0efdced1c7ae643d6e1a3a299f2e8ae6

4 years agoAdd legacy/gd shim hci layer module
Chris Manton [Wed, 11 Sep 2019 16:28:41 +0000 (09:28 -0700)]
Add legacy/gd shim hci layer module

Bug: 140418843
Test: bluetooth_test_gd
Test: Run sdp query on walleye with Gd disabled
Change-Id: I29b36cea79ea1e42a30269731683fc8f6979c88f

4 years agoCreate swappable hci layer connection
Chris Manton [Fri, 13 Sep 2019 00:36:18 +0000 (17:36 -0700)]
Create swappable hci layer connection

Bug: 140418843
Test: Run sdp query on walleye with Gd disabled
Change-Id: Ifb00e8219cb9e937a27a8f4c2e4de9ac5b12b49a

4 years agoCreate swappable controller connection
Chris Manton [Thu, 12 Sep 2019 17:06:30 +0000 (10:06 -0700)]
Create swappable controller connection

Bug: 140419695
Test: Run sdp query on walleye with Gd disabled
Change-Id: I7f608a06399d38e88282ab85a629085cf2756d26

4 years agoAdd logging indication of legacy/gd stack
Chris Manton [Thu, 12 Sep 2019 02:53:32 +0000 (19:53 -0700)]
Add logging indication of legacy/gd stack

Log early in boot progress if the stack
is operating in legacy or Gd mode.

Bug: 140304485
Test: bluetooth_test_gd
Change-Id: I59457a2b2d13838f160047def6aacab704ab55cd

4 years agoFix Long Read during MTU change
Jakub Pawlowski [Mon, 16 Sep 2019 12:35:58 +0000 (14:35 +0200)]
Fix Long Read during MTU change

When MTU is changed during GATT Read Long procedure, we can receive full
packet using old MTU value, but compare it's length to new MTU. This
would cause us to not issue another read request, and stay with
partially read value.
If the read indeed ended with the length equal to old MTU, we can safely
attempt to read - remote should reply with invalid offset. This means
this fix is harmless, and shouldn't break any existing devices.

Test: none
Bug: 140617318
Change-Id: I29757bef957c94b1abb56d016cded08108047b09

4 years agoPDL: Add big endian test packets
Myles Watson [Sat, 7 Sep 2019 22:11:18 +0000 (15:11 -0700)]
PDL: Add big endian test packets

Bug: 138260498
Test: bluetooth_packet_parser_test
Change-Id: I2c6ef6b70afe38666052f6d70c19342dcf764d81

4 years agoPDL: Use Subrange to avoid endian switches
Myles Watson [Tue, 10 Sep 2019 12:29:08 +0000 (05:29 -0700)]
PDL: Use Subrange to avoid endian switches

Bug: 138260498
Test: bluetooth_packet_parser_test
Change-Id: I369e442a054fe0d1eeee561e61250601b4b85611

4 years agoMerge "PDL: Use little_endian in CustomFieldCheck"
Treehugger Robot [Sat, 14 Sep 2019 05:32:58 +0000 (05:32 +0000)]
Merge "PDL: Use little_endian in CustomFieldCheck"

4 years agoPDL: Use little_endian in CustomFieldCheck
Myles Watson [Mon, 9 Sep 2019 23:50:02 +0000 (16:50 -0700)]
PDL: Use little_endian in CustomFieldCheck

Bug: 138260498
Test: bluetooth_packet_parser_test
Change-Id: I605c5a3c895a8bdcfe9fbf41f7573c16ba08fc50

4 years agoCorrect spec_idx in bta_dm_pm_cfg
Allen-CT Chu [Mon, 3 Jun 2019 06:44:32 +0000 (14:44 +0800)]
Correct spec_idx in bta_dm_pm_cfg

After adding separate sniff mode settings for gamepads,
all the spec_idxes in bta_dm_pm_cfg larger than 6 are
not shifted by 1.
Correct the spec_idx to use the right bta_dm_pm_spec.

Fixes: 134444864
Test: Send data through OPP, data should be large enough
      to send over 30s.
      Before this fix, when we send data through OPP,
      it will enter sniff mode after 30s because of
      using the wrong spec_idx.
      After this fix, it will not enter sniff mode.

Change-Id: I9dcd3e8b075b35fa09a08e32cc8ff1522b8cd6ca

4 years agoMerge "GAP: Dont send RNR and create connection at the same time"
Treehugger Robot [Thu, 12 Sep 2019 22:55:25 +0000 (22:55 +0000)]
Merge "GAP: Dont send RNR and create connection at the same time"

4 years agoGAP: Dont send RNR and create connection at the same time
Venkata Jagadeesh Garaga [Thu, 26 Oct 2017 10:15:18 +0000 (15:45 +0530)]
GAP: Dont send RNR and create connection at the same time

HOST sending create connection, Remote Name Request (RNR) back to back
for same remote due to incorrect conditional logic.
Hence soc not able to respond for create connection,
DUT stuck in pairing state for ever.

Test: RNR is not sent when create connection is in progress

Bug: 137174533
Change-Id: I4801f2a4da4c7b6fead570b545706b8e30b724e4
CRs-Fixed: 2129630

4 years agoSnoopLogger: Always flush for host build
Hansong Zhang [Tue, 10 Sep 2019 22:28:02 +0000 (15:28 -0700)]
SnoopLogger: Always flush for host build

When there is a crash, we can still grab the btsnoop log

Test: add a crash in cert stack and run cert/run_cert.sh
Change-Id: I9b33160d00420c39647e01919ede92a2349aecb6

4 years agoInitial entry for L2CAP data pipeline and cert
Hansong Zhang [Thu, 29 Aug 2019 21:28:40 +0000 (14:28 -0700)]
Initial entry for L2CAP data pipeline and cert

* Attach data channel to scheduler
* Enable page scan on L2CAP module start
* Add test for L2CAP classic fixed channel connection and data
* Fix GetQueueUpEnd() API for Fixed Channel

Bug: 138261142
Test: cert/run_cert.sh
Change-Id: Ic3035546933a9ad08712e757c65d8455b09dd36a

4 years agoAdd legacy/gd shim controller module
Chris Manton [Tue, 10 Sep 2019 18:23:13 +0000 (11:23 -0700)]
Add legacy/gd shim controller module

Bug: 140419695
Test: bluetooth_test_gd
Test: Run sdp query on walleye with Gd disabled
Change-Id: Ieaa4883b283ea359dda560b57f31bfe6b3ebc4f2

4 years agoL2CAP: Fix and add unit tests for fixed channel acquire and release
Jack He [Tue, 10 Sep 2019 17:23:09 +0000 (10:23 -0700)]
L2CAP: Fix and add unit tests for fixed channel acquire and release

* Fixed a comparison bug in referece counting
* Add unit test to verify that Acquire() will hold an ACL connection
beyond idle timeout limit
* Add unit test to verify that Release() will schedule idle timeout
disconnect

Bug: 138261142
Test: bluetooth_test_gd
Change-Id: I79ca2d641f321226a1ccff191b51351d73fafb78

4 years agoMerge "Initial Entry for shim layer"
Treehugger Robot [Tue, 10 Sep 2019 17:21:25 +0000 (17:21 +0000)]
Merge "Initial Entry for shim layer"

4 years agoMerge "Fix L version ble_vendor_capability sanity check crash."
Jakub Pawlowski [Tue, 10 Sep 2019 15:38:21 +0000 (15:38 +0000)]
Merge "Fix L version ble_vendor_capability sanity check crash."

4 years agoFix L version ble_vendor_capability sanity check crash.
Ted Wang [Wed, 14 Aug 2019 02:31:53 +0000 (10:31 +0800)]
Fix L version ble_vendor_capability sanity check crash.

Bug: 137628509
Test: manual
Change-Id: Ia46d34b8f05de866a1cf275bbf9b69788c34fda2

4 years agoMerge "BLE: Updating the WL if addr_type is not matched for same BDaddr"
Treehugger Robot [Tue, 10 Sep 2019 15:26:21 +0000 (15:26 +0000)]
Merge "BLE: Updating the WL if addr_type is not matched for same BDaddr"

4 years agoBLE: Updating the WL if addr_type is not matched for same BDaddr
Janardhana Rao Bokka [Tue, 10 Sep 2019 04:31:16 +0000 (10:01 +0530)]
BLE: Updating the WL if addr_type is not matched for same BDaddr

Issue:
Connection is not happening with same remote device after BT
reset.

Steps to Repro:
1. Scan and connect to remote device with "Random" address
2. Toggle BT OFF and ON
3. Without scanning, App tries to connect to remote device and
device gets added as default "Public" addr_type in WL
4. Connection doesn't go through (as expected) since remote device
has "Random" address
5. App cancels the attempt or 30 sec direct connection timeout
happens. The device is marked for removal
6. App scans for the device and the correct addr_type (Random)
is now in the inquiry database in stack
7. App initiates connection for the device but the connection
attempt still goes with "Public" address type and hence never
succeeds.

RootCause:
At step 5, stack just marks the device to be removed from whitelist
(pending_removal) but doesn't actually remove it from Controller
until the next WL connection is needed. Later in step 7, when the
WL connection is needed from the App, stack attempts to add the
device to the whitelist, but realizes that the device is already in
the Controller whitelist and hence doesn't do remove and add.
There is no check to see if the device in Controller's WL is with
correct addr_type.

Fix:
When checking for remote addr that needs to be added/removed
from WL, also take into the account the remote addr_type.

Test:
Tested with the fix multiple times. Issue not seen with this fix.

Bug: 140085561
Change-Id: I415b5fa29800b975c2ebcbf95b36cf8879841b3e

4 years agoL2CAP: Classic fixed channel reference counting
Jack He [Wed, 21 Aug 2019 05:07:26 +0000 (22:07 -0700)]
L2CAP: Classic fixed channel reference counting

* Add a mechanism to disconnect ACL after a link is idle for kClassicLinkIdleDisconnectTimeout
  seconds. The current setting is 20.
* Add Acquire() and Release() method to ClassicFixedChannel for user to
  indicate if a fixed channel should hold the current ACL link or should
  it be oportunistic
* Implemented methods to register for disconnection callbacks
* Add tests to verify fixed channel acquire/release and register
  disconnction callback methods
* Add tests to verify classic link idle timeout disconnect methods

Bug: 138261142
Test: bluetooth_test_gd
Change-Id: I78129afb1b988311c56019f87cbb3f78e9a08cc5

4 years agoInitial Entry for shim layer
Chris Manton [Tue, 10 Sep 2019 04:11:59 +0000 (21:11 -0700)]
Initial Entry for shim layer

Test: Build and run sdp query on target walleye with Gd disabled
Bug: 140304485

Change-Id: I1628e44f7916528ec83d8d1fac4bf3b6e08e1583

4 years agoHCI: Change commands naming to avoid misunderstanding
Oleh Cherpak [Wed, 4 Sep 2019 08:03:58 +0000 (11:03 +0300)]
HCI: Change commands naming to avoid misunderstanding

Naming of Android specific HCI commands misleads
developers of what called OCF.

Example: HCI_BLE_VENDOR_CAP_OCF should be 0x153
but we have 0xFD53 instead. So we should rename it to HCI_BLE_VENDOR_CAP.

Signed-off-by: Oleh Cherpak <oleh.cherpak@globallogic.com>
Change-Id: I59d1cf1f52ae0c077c281728831bcc976c0d0d01

4 years agoMerge "PDL: Constrain Structs with end_index"
Treehugger Robot [Sat, 7 Sep 2019 02:39:45 +0000 (02:39 +0000)]
Merge "PDL: Constrain Structs with end_index"

4 years agoMerge "GD: Test LE connections with the white list"
Treehugger Robot [Sat, 7 Sep 2019 02:17:31 +0000 (02:17 +0000)]
Merge "GD: Test LE connections with the white list"

4 years agoMerge "L2CAP: Add a packet test for G frame"
Treehugger Robot [Sat, 7 Sep 2019 02:11:51 +0000 (02:11 +0000)]
Merge "L2CAP: Add a packet test for G frame"

4 years agoMerge "RootCanal: Initialize connecting states to false"
Treehugger Robot [Sat, 7 Sep 2019 01:20:30 +0000 (01:20 +0000)]
Merge "RootCanal: Initialize connecting states to false"

4 years agoMerge "Revert "Cert: Get rid of signal socket""
Treehugger Robot [Sat, 7 Sep 2019 00:32:50 +0000 (00:32 +0000)]
Merge "Revert "Cert: Get rid of signal socket""

4 years agoPDL: Constrain Structs with end_index
Myles Watson [Fri, 6 Sep 2019 21:51:02 +0000 (14:51 -0700)]
PDL: Constrain Structs with end_index

Make sure that struct parsing doesn't go past the end of the packet.

Test: bluetooth_packet_parser_test
Change-Id: Iaa9254b49f121b42ec670594532515a787b3170d

4 years agoL2CAP: Add a packet test for G frame
Hansong Zhang [Fri, 6 Sep 2019 23:01:25 +0000 (16:01 -0700)]
L2CAP: Add a packet test for G frame

Test: bluetooth_test_gd
Change-Id: I2d5bca8935a83b8c3db086eba4ecfdc4e16afba9

4 years agoMerge "Remove libhwbinder/libhidltransport deps"
Treehugger Robot [Fri, 6 Sep 2019 21:59:13 +0000 (21:59 +0000)]
Merge "Remove libhwbinder/libhidltransport deps"

4 years agoMerge "GD: HAL: Factor out packet serialization"
Treehugger Robot [Fri, 6 Sep 2019 21:32:03 +0000 (21:32 +0000)]
Merge "GD: HAL: Factor out packet serialization"

4 years agoMerge "AVDTP: Reject the start request while SCO is up"
Treehugger Robot [Fri, 6 Sep 2019 18:51:11 +0000 (18:51 +0000)]
Merge "AVDTP: Reject the start request while SCO is up"

4 years agoRevert "Cert: Get rid of signal socket"
Hansong Zhang [Wed, 4 Sep 2019 19:25:34 +0000 (12:25 -0700)]
Revert "Cert: Get rid of signal socket"

This reverts commit 3f3c0ed7c06a8ac6e4721358ccea777a4ef38672.

When running on Android device, gRPC can't wait for channel open.

Test: Run cert on device

Change-Id: Iefe3adc43f8441e87908e6d0accb7e72ad67a6a1

4 years agoRootCanal: Initialize connecting states to false
Myles Watson [Fri, 6 Sep 2019 18:34:10 +0000 (11:34 -0700)]
RootCanal: Initialize connecting states to false

Test: cert/run_cert.sh
Change-Id: I16b442566dacab72669422abc88922920cff46cf

4 years agoGD: Test LE connections with the white list
Myles Watson [Fri, 6 Sep 2019 18:29:00 +0000 (11:29 -0700)]
GD: Test LE connections with the white list

Test: cert/run_cert.sh
Change-Id: I3cbdd5bf2651691bb2966fa9fb704f8c8ab0fb74

4 years agoMerge changes I29bc30f6,Ic5f7c49d,I1948fbda
Jakub Pawlowski [Fri, 6 Sep 2019 18:08:51 +0000 (18:08 +0000)]
Merge changes I29bc30f6,Ic5f7c49d,I1948fbda

* changes:
  Packets improvements for SMP
  crypto_toolbox: add c1 and s1 crypto functions for LE Legacy Pairing
  HCI: return non-const security interfaces

4 years agoMerge "RootCanal: Add LE connection packets"
Treehugger Robot [Fri, 6 Sep 2019 18:07:51 +0000 (18:07 +0000)]
Merge "RootCanal: Add LE connection packets"

4 years agoGD: HAL: Factor out packet serialization
Myles Watson [Wed, 4 Sep 2019 22:37:23 +0000 (15:37 -0700)]
GD: HAL: Factor out packet serialization

Test: ./cert/run_cert.sh
Change-Id: I640a91462bb728252218f0b4c8109e1a0e10f510

4 years agoMerge "GD: implement GetVendorCapabilities command"
Treehugger Robot [Fri, 6 Sep 2019 16:14:59 +0000 (16:14 +0000)]
Merge "GD: implement GetVendorCapabilities command"

4 years agoMerge "PDL: Parse with pointers instead of vectors"
Treehugger Robot [Fri, 6 Sep 2019 15:40:08 +0000 (15:40 +0000)]
Merge "PDL: Parse with pointers instead of vectors"

4 years agoPackets improvements for SMP
Jakub Pawlowski [Fri, 6 Sep 2019 14:27:18 +0000 (16:27 +0200)]
Packets improvements for SMP

Add HCI packets definitions necessary for LE Pairing implementation.
Loosen the definitions of SMP packets, for easier bit handling.

Test: none
Bug: 139138713
Change-Id: I29bc30f651d72b6dfd827857b57b624d209c55a1

4 years agocrypto_toolbox: add c1 and s1 crypto functions for LE Legacy Pairing
Jakub Pawlowski [Fri, 6 Sep 2019 14:12:21 +0000 (16:12 +0200)]
crypto_toolbox: add c1 and s1 crypto functions for LE Legacy Pairing

Bug: 139138713
Change-Id: Ic5f7c49d1424f0c221f729c5af74cedcf58e6a17

4 years agoHCI: return non-const security interfaces
Jakub Pawlowski [Fri, 6 Sep 2019 14:01:33 +0000 (16:01 +0200)]
HCI: return non-const security interfaces

If we return pointer to const, we can't call any of the methods in the
interface, as they are not marked const. Remove the qualifier.

Test: Try calling any method on LeSecurityInterface
Bug: 139138713
Change-Id: I1948fbda55b3c21ad613b5a79aff5caba75fa029

4 years agoPDL: Parse with pointers instead of vectors
Myles Watson [Thu, 22 Aug 2019 21:11:00 +0000 (14:11 -0700)]
PDL: Parse with pointers instead of vectors

Bug: 138260498
Test: bluetooth_packet_parser_test
Change-Id: I65385e3a63b8e67f1aab7dfd89e9410709e94eaf

4 years agoRootCanal: Remove unregistered devices from Phys
Myles Watson [Thu, 5 Sep 2019 22:39:03 +0000 (15:39 -0700)]
RootCanal: Remove unregistered devices from Phys

Move Phy creation to the model.
Add an ID for phy factories.

Test: cert/run_cert.sh
Change-Id: If6fe1c6f9f6bfed60c1595dc229d4a9c87072023

4 years agoRootCanal: Add LE connection packets
Myles Watson [Mon, 2 Sep 2019 21:52:46 +0000 (14:52 -0700)]
RootCanal: Add LE connection packets

- Add an event stream to the cert device
- Add LinkLayer packets for LeConnections
- Update AclConnection to track address types for LE
- Fix serialization of LE meta events

Bug: 138260116
Test: cert/run_cert.sh
Change-Id: I838ab86bb1b9cd45229126b06efceb017ccd4559

4 years agoGD: implement GetVendorCapabilities command
Chienyuan [Tue, 3 Sep 2019 06:24:26 +0000 (14:24 +0800)]
GD: implement GetVendorCapabilities command

* implement GetVendorCapabilities command
* add check status function for write commands

Bug: 139329371
Test: run_device_cert.sh
Change-Id: I29fdfb1aea91c7fad877c29c37824f57b684eedd

4 years agoMerge "RootCanal: Wrap schedule_task_ for null check"
Treehugger Robot [Fri, 6 Sep 2019 03:47:18 +0000 (03:47 +0000)]
Merge "RootCanal: Wrap schedule_task_ for null check"

4 years agoMerge "RootCanal: Remove redundant SendLinkLayerPacket"
Treehugger Robot [Fri, 6 Sep 2019 03:36:12 +0000 (03:36 +0000)]
Merge "RootCanal: Remove redundant SendLinkLayerPacket"

4 years agoRootCanal: Remove redundant SendLinkLayerPacket
Myles Watson [Thu, 5 Sep 2019 16:39:37 +0000 (09:39 -0700)]
RootCanal: Remove redundant SendLinkLayerPacket

Test: build
Change-Id: Iff6229edcf07f557771870abdc703b8ab8e935e6

4 years agoRootCanal: Wrap schedule_task_ for null check
Myles Watson [Thu, 5 Sep 2019 16:01:00 +0000 (09:01 -0700)]
RootCanal: Wrap schedule_task_ for null check

Test: manually create an LE connection
Change-Id: Ic82d4d7b326ff6d82a34fa2ef84e713efc74c659

4 years agoPDL: workaround for end_index unused
Chienyuan [Thu, 5 Sep 2019 23:48:55 +0000 (07:48 +0800)]
PDL: workaround for end_index unused

Test: build pass
Change-Id: I774eaedcfed02ead3ac7287dbcf931158e5ce11d

4 years agoRemove libhwbinder/libhidltransport deps
Steven Moreland [Thu, 5 Sep 2019 21:17:34 +0000 (14:17 -0700)]
Remove libhwbinder/libhidltransport deps

Since these were combined into libhidlbase.

Bug: 135686713
Test: build only (libhwbinder/libhidltransport are empty)
Change-Id: I49a890e581979d01d820d17db11436e07c1ee907

4 years agoDO NOT MERGE - Merge Android 10 into master
Xin Li [Wed, 4 Sep 2019 20:35:25 +0000 (13:35 -0700)]
DO NOT MERGE - Merge Android 10 into master

Bug: 139893257
Change-Id: I2167af704406e5ac96ee4c388c91c2ff2214f6cc

4 years agoRootCanal: Support LE 4.1 advertising
Myles Watson [Tue, 3 Sep 2019 20:56:15 +0000 (13:56 -0700)]
RootCanal: Support LE 4.1 advertising
am: 99aea892f9

Change-Id: I4347c329a9a2986dd407d15fa0a64e77af63cb95

4 years agoRootCanal: Remove dependency on btm
Myles Watson [Tue, 3 Sep 2019 19:45:56 +0000 (12:45 -0700)]
RootCanal: Remove dependency on btm
am: 48cc9c9e90

Change-Id: I2f0a90bc157c67118acdbe69a0f34f90cea7cf13

4 years agoRootCanal: Support LE 4.1 advertising
Myles Watson [Mon, 2 Sep 2019 22:54:08 +0000 (15:54 -0700)]
RootCanal: Support LE 4.1 advertising

Bug: 139080884
Test: Start and stop advertising with root_canal desktop

Window #1:
$ ./root_canal

Window #2:
$ python test_channel.py 6401
 $ add_device_to_phy 1 2
 $ add sniffer 00:00:00:00:00:00
 $ add_device_to_phy 2 2

Window #3:
  # Connect a new HCI device
$ python3 simple_stack.py 6402
  # Set the Random address to 1 2 3 4 5 6
 $ send 01 05 20 06 01 02 03 04 05 06
  # Enable BLE advertising
 $ send 01 0A 20 01 01
  # Disable BLE advertising
 $ send 01 0A 20 01 00 
  # Configure advertising (interval 0x06-0x50, random address, peer 01:02:03:04:05:06)
 $ send 01 06 20 0F 06 00 50 00 00 01 00 01 02 03 04 05 06 07 00

Change-Id: I5922d88792803847822e5d56aa57a49140c8363f

4 years agoRootCanal: Remove dependency on btm
Myles Watson [Mon, 2 Sep 2019 16:48:34 +0000 (09:48 -0700)]
RootCanal: Remove dependency on btm

Test: root_canal desktop executable
Change-Id: I7d1d01a13c10cd626474ce0ec2293aa3a6e22384

4 years agoMerge "AVRCP: Keep the device in the map on disconnect"
Joonghong Park [Mon, 2 Sep 2019 16:10:53 +0000 (09:10 -0700)]
Merge "AVRCP: Keep the device in the map on disconnect"
am: 7c1e86e1b7

Change-Id: Id7181bda9cb3c107a42226a4a90f73e8638af8dd

4 years agoMerge "AVRCP: Keep the device in the map on disconnect"
Treehugger Robot [Mon, 2 Sep 2019 15:52:34 +0000 (15:52 +0000)]
Merge "AVRCP: Keep the device in the map on disconnect"

4 years agoAVRCP: Keep the device in the map on disconnect
Joonghong Park [Sun, 21 Apr 2019 23:26:58 +0000 (08:26 +0900)]
AVRCP: Keep the device in the map on disconnect

Fixes a stack crash when disconnecting AVRCP

If an AVRCP connection, established by AVRC_OPEN_IND_EVT, is disconnected
by calling DisconnectDevice() in Connection Handler, there is a corner
case that does not clear Connection Control Block (CCB) entirely of a
opened handle.
So when there is re-connection trials, partially cleared CCBs causes
a critical stack crash.

When calling DisconnectDevice() in Connection Handler, there are issues.
-Keeping removed CCB info partially, such as member variable "allocated",
even though receiving AVRC_CLOSE_IND_EVT followed by clearing
Link Control Block (LCB).
-Keeping remote device address in feature_map_

This commit fixes the issue of above scenario, by keeping handle in
device_map_ and removing to send disconnected notification
when calling DisconnectDevice().
So when receiving AVRC_CLOSE_IND_EVT, normal procedure is conducted.

Note that AVRC_CLOSE_IND_EVT is occurred by both
AVCT_DISCONNECT_IND_EVT and AVCT_DISCONNECT_CFM_EVT.
And when calling avrc_->Close() in DisconnectDevice(), it just requests
to unbind LCB instead of dealloc CCB.
And when receiving AVRC_CLOSE_IND_EVT avrc_->Close() dealloc CCB.

Bug:139642151
Test: Test on phone with some products which has A/V Remote Control
such as Britz(BE-ME350) and airpod
Change-Id: Ic8bc3459afd4518447d6d52b1f8afb7b3e09a8b5
Signed-off-by: Joonghong Park <joonghong.park@samsung.com>
4 years agoL2CAP ClassicLink: Don't delete channel before scheduler
Hansong Zhang [Fri, 30 Aug 2019 20:45:29 +0000 (13:45 -0700)]
L2CAP ClassicLink: Don't delete channel before scheduler
am: 30d377b01b

Change-Id: I7fd2077ffac3ad3be1ddc8c6725909129244c082

4 years agoL2CAP ClassicLink: Don't delete channel before scheduler
Hansong Zhang [Fri, 30 Aug 2019 18:20:03 +0000 (11:20 -0700)]
L2CAP ClassicLink: Don't delete channel before scheduler

The order of data members should be consistent with their dependency.
The Scheduler depends on ClassicFixedChannelAllocator because the
pointers inside the Scheduler points to channels in ChannelAllocator.

On dtor, the members are destructed in reverse order. We must delete the
Scheduler first.

Test: bluetooth_test_gd and cert/run_cert.sh
Change-Id: I2ec8c8de26dbb8741e15f57744f352ecb58aca8a

4 years agoMerge "Cert: set default snoop path for real device"
Chienyuan [Fri, 30 Aug 2019 02:25:53 +0000 (19:25 -0700)]
Merge "Cert: set default snoop path for real device"
am: 62cd179f0e

Change-Id: Iabc0a294e00e87498ec614d2e932a1107f619d43

4 years agoMerge "Cert: set default snoop path for real device"
Treehugger Robot [Fri, 30 Aug 2019 02:11:12 +0000 (02:11 +0000)]
Merge "Cert: set default snoop path for real device"

4 years agoCert: Move Read local MAC address to a special server
Hansong Zhang [Fri, 30 Aug 2019 01:05:08 +0000 (18:05 -0700)]
Cert: Move Read local MAC address to a special server
am: e0a997f180

Change-Id: I7ba21067dce4a9511e5ccf6fd1dffb76a4f13087

4 years agoCert: Move Read local MAC address to a special server
Hansong Zhang [Thu, 29 Aug 2019 21:27:11 +0000 (14:27 -0700)]
Cert: Move Read local MAC address to a special server

Reading local MAC address will be used in all tests. Currently only HCI
facade exposes this API. Instead we should move it to another server and
let all tests be able to use it.

Test: cert/run_cert.sh
Change-Id: Id2a17476670a4c56ff1a5f2d7edfd95dba126285

4 years agoHCI: Add pairing facade proto
Hansong Zhang [Thu, 29 Aug 2019 20:00:03 +0000 (13:00 -0700)]
HCI: Add pairing facade proto
am: 6ef57712c8

Change-Id: If0ef3ff8a2e864af6b70dba33b80d3acb7375a18

4 years agoHCI: Add pairing facade proto
Hansong Zhang [Wed, 28 Aug 2019 22:07:42 +0000 (15:07 -0700)]
HCI: Add pairing facade proto

Just add the facade definition for pairing tests

Test: manual
Change-Id: I95bb08d190eb326c0de9a3aeb46f80fb1f465745

4 years agoHCI: Add LE support to AclManager
Myles Watson [Thu, 29 Aug 2019 16:24:32 +0000 (09:24 -0700)]
HCI: Add LE support to AclManager
am: 35123feafa

Change-Id: I3a7ee34e4de92bf7281e9d148f522d4194e0a801

4 years agoCert: set default snoop path for real device
Chienyuan [Thu, 29 Aug 2019 14:15:31 +0000 (22:15 +0800)]
Cert: set default snoop path for real device

Test: cert/run_device_cert.sh
Change-Id: Ie12eeddc46545ca26c9e23efbc87960d9e84a098

4 years agoHCI: Add LE support to AclManager
Myles Watson [Sat, 24 Aug 2019 00:06:11 +0000 (17:06 -0700)]
HCI: Add LE support to AclManager

Bug: 138260114
Test: build
Change-Id: I5c17b3a69b4318fd97007d68d83bd953d312f884

4 years agoAVDTP: Reject the start request while SCO is up
Cheney Ni [Tue, 27 Aug 2019 11:42:21 +0000 (19:42 +0800)]
AVDTP: Reject the start request while SCO is up

Some Bluetooth headsets can't handle AVDTP media and SCO at the same
time, and we have checked the call state to prevent such case. However,
if there was a voice recognition running over the Bluetooth SCO, it was
call idle. Now we listen to the SCO status, so AVDTP media won't be
started at the same time.

Bug: 139520575
Test: manually
Change-Id: I70377cf531bf6c4b56dc51a84d2c8ead6a7fdc39

4 years agoCert: remove redundant comma in config json
Chienyuan [Wed, 28 Aug 2019 20:26:46 +0000 (13:26 -0700)]
Cert: remove redundant comma in config json
am: 194f278e02

Change-Id: Ie29a7d541ca76966248f7f7bd7835a235b11b31b

4 years agoCert: remove redundant comma in config json
Chienyuan [Wed, 28 Aug 2019 14:07:16 +0000 (22:07 +0800)]
Cert: remove redundant comma in config json

the redundant comma will cause run_device_cert fail to execute

Test: cert/run_device_cert.sh
Change-Id: I79825fb3919cde7670e14088688dd6297f0e3ced

4 years agoMerge "Add the package name to setBluetoothTethering"
Mark Chien [Wed, 28 Aug 2019 10:12:44 +0000 (03:12 -0700)]
Merge "Add the package name to setBluetoothTethering"
am: dd6a345211

Change-Id: I10ec18047287fe7b82cde5d267474a9ee3dbc041

4 years agoMerge "Add the package name to setBluetoothTethering"
Mark Chien [Wed, 28 Aug 2019 09:59:27 +0000 (09:59 +0000)]
Merge "Add the package name to setBluetoothTethering"

4 years agoRemove log with uint64_t
Chienyuan [Wed, 28 Aug 2019 08:20:23 +0000 (01:20 -0700)]
Remove log with uint64_t
am: 8c86496ffd

Change-Id: I655ec9b2d740568728ec9298a6eb6d1ada654615

4 years agoRemove log with uint64_t
Chienyuan [Wed, 28 Aug 2019 03:47:14 +0000 (11:47 +0800)]
Remove log with uint64_t

Bug: 140128528
Test: build pass
Change-Id: I2da11d6abf8038eb60fc4993239c16a4b75570a0

4 years agoCert: Get rid of signal socket
Hansong Zhang [Wed, 28 Aug 2019 00:13:10 +0000 (17:13 -0700)]
Cert: Get rid of signal socket
am: 3f3c0ed7c0

Change-Id: I1608eed1ebea4fb324328cb83bffae2df660e960

4 years agoCert: Get rid of signal socket
Hansong Zhang [Tue, 27 Aug 2019 21:33:08 +0000 (14:33 -0700)]
Cert: Get rid of signal socket

Use gRPC channel_ready_future to wait for channel ready, instead of using
another socket.

Test: cert/run_cert.sh
Change-Id: I97f405323d92bf7526eb174fb5e4b305e052a4e9

4 years agoGD: Implement internal HCI commands
Chienyuan [Tue, 27 Aug 2019 20:43:33 +0000 (13:43 -0700)]
GD: Implement internal HCI commands
am: a7ad3fb7fb

Change-Id: I46f586f0cf7eead51a002c641e20a2853d74ef4b

4 years agoGD: Implement internal HCI commands
Chienyuan [Thu, 15 Aug 2019 10:04:32 +0000 (18:04 +0800)]
GD: Implement internal HCI commands

Bug: 139329371
Test: run run_cert.sh
Change-Id: Ia9100bab1c1a212fd9031a8049dfd97e469ebad5

4 years agoMerge "Revert "Turn off the new pass manager for coverage builds""
Yi Kong [Mon, 26 Aug 2019 06:29:02 +0000 (23:29 -0700)]
Merge "Revert "Turn off the new pass manager for coverage builds""
am: 4aa9aa7a93

Change-Id: Ie0110bbef0e118220fc699f427fcc228bd92db13

4 years agoMerge "Revert "Turn off the new pass manager for coverage builds""
Yi Kong [Mon, 26 Aug 2019 06:16:36 +0000 (06:16 +0000)]
Merge "Revert "Turn off the new pass manager for coverage builds""

4 years agoRevert "Turn off the new pass manager for coverage builds"
Yi Kong [Mon, 26 Aug 2019 01:19:07 +0000 (01:19 +0000)]
Revert "Turn off the new pass manager for coverage builds"

This reverts commit 4dd3d1c50abfbfa8bec174f88b2513f27606b7fd.

The updated compiler has fixed the issue that new PM and
-fprofile-instr-generate cannot work together.

Change-Id: I1668afe65f633fddb71ac1a0c94c563cb94f1327
Test: presubmit
Bug: 131132095

4 years agoMerge "PDL: Autogenerate packet tests"
Myles Watson [Sat, 24 Aug 2019 08:23:55 +0000 (01:23 -0700)]
Merge "PDL: Autogenerate packet tests"
am: eb0b2fa08e

Change-Id: I802b82c16f334a19c3e409f3b09644b38b223485