OSDN Git Service

android-x86/system-bt.git
9 years agoam 82c8b927: Reset LE encryption key size at LE disconnection only
Nitin Arora [Wed, 29 Jul 2015 08:12:14 +0000 (08:12 +0000)]
am 82c8b927: Reset LE encryption key size at LE disconnection only

* commit '82c8b9270ba962d5f271a833a3454baddbc063aa':
  Reset LE encryption key size at LE disconnection only

9 years agoReset LE encryption key size at LE disconnection only
Nitin Arora [Thu, 2 Jul 2015 21:08:39 +0000 (14:08 -0700)]
Reset LE encryption key size at LE disconnection only

This change checks the transport type on receiving the disconnection
and resets the encryption key size only if the LE disconnection
has taken place.
This fixes the issue where read request to characteristics that
require encryption,  fails after cross key derivation due to
disconnection of BR/EDR transport.

Bug: 22515016
Change-Id: If6aad91a628eabbb5a4b7f5c22812fe94d4c5db2

9 years agoam dab356e3: Promote AVCTP version to 1.4
Anubhav Gupta [Wed, 29 Jul 2015 07:13:07 +0000 (07:13 +0000)]
am dab356e3: Promote AVCTP version to 1.4

* commit 'dab356e3b0573303840e63cbafb1065d57a11e2c':
  Promote AVCTP version to 1.4

9 years agoPromote AVCTP version to 1.4
Anubhav Gupta [Tue, 28 Jul 2015 06:32:57 +0000 (12:02 +0530)]
Promote AVCTP version to 1.4

Promoting AVCTP version to 1.4 from 1.2 as Bluedroid stack
already has got support for the same.
Below changes are incorporated as part of this:
 - AVCTP version in SDP entry is upgraded to 1.4 for both AVRCP
   Target and controller role.
 - Service class #1 is added in extra for AVRCP Controller SDP
   entry to be in sync with AVCTP version change.
 - Browsing support is not enabled as that needs corresponding
   profile level implementation, which is currently unavailable.

Change-Id: I72f7f67eb0a789fd321e9468f2a51bb5e9385a89

9 years agoam 1b3a3d82: Add GN files for vendor_libs
Arman Uguray [Wed, 29 Jul 2015 00:17:20 +0000 (00:17 +0000)]
am 1b3a3d82: Add GN files for vendor_libs

* commit '1b3a3d82840fd39e8b43e7cc761155dd1abeb417':
  Add GN files for vendor_libs

9 years agoAdd GN files for vendor_libs
Arman Uguray [Tue, 28 Jul 2015 01:32:05 +0000 (18:32 -0700)]
Add GN files for vendor_libs

Added BUILD.gn files for vendor_libs and vendor_libs/linux.

Bug: 21585592
Change-Id: I33f98421a94a4b4f530e48c94711775d776d02d7

9 years agoam 2ac9ae06: Fix a bug allocating buffers for fragmented AVRC packets
Anubhav Gupta [Tue, 28 Jul 2015 18:09:54 +0000 (18:09 +0000)]
am 2ac9ae06: Fix a bug allocating buffers for fragmented AVRC packets

* commit '2ac9ae06be5091f6f2eef0022a3810752f127d04':
  Fix a bug allocating buffers for fragmented AVRC packets

9 years agoFix a bug allocating buffers for fragmented AVRC packets
Anubhav Gupta [Fri, 24 Jul 2015 17:14:00 +0000 (10:14 -0700)]
Fix a bug allocating buffers for fragmented AVRC packets

Use the correct offset_len when allocating buffers for AVRC
packets that need to be fragmented.

Bug: 22156175

Change-Id: I7db12474c84edacb4f0739d50a43e8cebdcca676

9 years agoam 1500b8d9: Fix for uhid_event size check
Amirhossein Simjour [Mon, 27 Jul 2015 23:21:21 +0000 (23:21 +0000)]
am 1500b8d9: Fix for uhid_event size check

* commit '1500b8d9b301d8d68b2910692ec47d0e5b42c129':
  Fix for uhid_event size check

9 years agoFix for uhid_event size check
Amirhossein Simjour [Mon, 20 Jul 2015 18:29:19 +0000 (14:29 -0400)]
Fix for uhid_event size check

The uhid_event function used to expect that the return value of each
read function call to match with the size of the struct uhid_event.
Since the header file doesn't match the kernel driver, these two size
don't always match. The exact size check is replaced with expecting
the minimum required size.

Bug: 20108348
Change-Id: Ib61537092b109296f8290d802b68fc2efe78888c

9 years agoam 760aa99b: Unpair HID device cleanup
Casper Bonde [Mon, 27 Jul 2015 17:56:55 +0000 (17:56 +0000)]
am 760aa99b: Unpair HID device cleanup

* commit '760aa99b0f1fb7830dd5ff23ec8f5c5630b15989':
  Unpair HID device cleanup

9 years agoam c6137426: Fix the logic for stopping the Power Management timers.
Pavlin Radoslavov [Mon, 27 Jul 2015 17:56:54 +0000 (17:56 +0000)]
am c6137426: Fix the logic for stopping the Power Management timers.

* commit 'c6137426081fc55d8c94cd0e6b55cd0d0a52f12d':
  Fix the logic for stopping the Power Management timers.

9 years agoUnpair HID device cleanup
Casper Bonde [Fri, 3 Oct 2014 08:01:36 +0000 (10:01 +0200)]
Unpair HID device cleanup

When unparing HID devices, the attr_mask was not cleared.
By not clearing this data, some HID device will never be able
to connect again. (E.g. the Apple Magic Mouse)

Bug: 15566403
Change-Id: Ic80909dcecdf48d967c1a936b31554653761fa42
Signed-off-by: Casper Bonde <c.bonde@samsung.com>
9 years agoFix the logic for stopping the Power Management timers.
Pavlin Radoslavov [Sat, 25 Jul 2015 06:41:55 +0000 (23:41 -0700)]
Fix the logic for stopping the Power Management timers.

Previously, the logic for stopping the timers didn't take
into account whether each timer was already running.

Bug: 22666419
Change-Id: Ia99bf8be917e9ea69f478a954085336fc899040a

9 years agoam fbbd2259: Only build bt_service_unittests for linux
Christopher Wiley [Mon, 27 Jul 2015 01:00:30 +0000 (01:00 +0000)]
am fbbd2259: Only build bt_service_unittests for linux

* commit 'fbbd225943c1e97074c61942d3fa29ae8c5fe202':
  Only build bt_service_unittests for linux

9 years agoOnly build bt_service_unittests for linux
Christopher Wiley [Mon, 27 Jul 2015 00:31:00 +0000 (17:31 -0700)]
Only build bt_service_unittests for linux

libchrome-host doesn't build on Mac, and while we get that sorted out,
let us not try and build this for Mac either.

Change-Id: I01d27391539d5c345d29a4ce949d0c3bcc931a7f

9 years agoam 081cba03: Add HCI user channel based bluedroid vendor adaptation
Samuel Ortiz [Sat, 25 Jul 2015 05:28:04 +0000 (05:28 +0000)]
am 081cba03: Add HCI user channel based bluedroid vendor adaptation

* commit '081cba0366ab5dfa11e68676ff5282a8e20e68f0':
  Add HCI user channel based bluedroid vendor adaptation

9 years agoAdd HCI user channel based bluedroid vendor adaptation
Samuel Ortiz [Fri, 24 Jul 2015 21:05:27 +0000 (14:05 -0700)]
Add HCI user channel based bluedroid vendor adaptation

This libbt vendor library creates and binds an HCI user channel
instead of talking to a serial port file descriptor. HCI frames
generated by the Android Bluetooth HAL are passed down as is to the
Linux kernel Bluetooth drivers through those sockets.
By pushing all the hardware dependencies down to the kernel, this
architecture supports all existing Linux Bluetooth drivers with
one single AOSP Bluetooth HAL implementation, Bluedroid.

Change-Id: I7197016b556e5d985843dd4f626db5d0f596f996

9 years agoam 065d0f70: service: Introduce a global Settings object
Arman Uguray [Fri, 24 Jul 2015 21:47:20 +0000 (21:47 +0000)]
am 065d0f70: service: Introduce a global Settings object

* commit '065d0f709343129f82ff3d072dcb36f612038598':
  service: Introduce a global Settings object

9 years agoservice: Introduce a global Settings object
Arman Uguray [Fri, 17 Jul 2015 01:12:13 +0000 (18:12 -0700)]
service: Introduce a global Settings object

Introduced a global Settings object that will store all runtime properties that
would be associated with a config file, Android system properties, etc. Added a
mechanism to parse command-line options which can be used to pass paths to
configuration files, file path for UNIX domain socket based IPC mechanism, and
any other property that is dynamic in nature. This will help us remove hardcoded
paths, strings, and other such values in the future.

Bug: 22532366
Change-Id: I8e790363ed31d44369f7991a8ea7132d1cace70b

9 years agoam f2d6434a: gn-build: Add bluetooth-service target
Arman Uguray [Fri, 24 Jul 2015 21:03:00 +0000 (21:03 +0000)]
am f2d6434a: gn-build: Add bluetooth-service target

* commit 'f2d6434a6b7ad98e20c7a601d2a0950237514837':
  gn-build: Add bluetooth-service target

9 years agoam 196413f5: Fix TX queue overflow detection
Andre Eisenbach [Fri, 24 Jul 2015 19:37:01 +0000 (19:37 +0000)]
am 196413f5: Fix TX queue overflow detection

* commit '196413f5ca088ef97866092f02bb7571d2a44390':
  Fix TX queue overflow detection

9 years agoFix TX queue overflow detection
Andre Eisenbach [Wed, 22 Jul 2015 20:47:28 +0000 (13:47 -0700)]
Fix TX queue overflow detection

- Prevent possible endless loop if |nb_frame| is too high
- Remove off-by-one calculation before sending frames
- Remove log spam and add better debug info

Bug: 22658329
Change-Id: I374ee980aec48763beb49b4f6f8b076124cadf40

9 years agoam 1076b7b0: Customize Bluetooth sniff interval
Pavlin Radoslavov [Thu, 23 Jul 2015 19:01:20 +0000 (19:01 +0000)]
am 1076b7b0: Customize Bluetooth sniff interval

* commit '1076b7b0a642d0f5c5948819bcd07e4bc0fb2738':
  Customize Bluetooth sniff interval

9 years agoCustomize Bluetooth sniff interval
Pavlin Radoslavov [Thu, 23 Jul 2015 05:49:26 +0000 (22:49 -0700)]
Customize Bluetooth sniff interval

Fix an earlier commit that prevents from customizing some of
the Bluetooth sniff parameters - those cannot be overwritten
anymore in the bdroid_buildcfg.h file.

Also, fixed the indexing in tables bta_dm_pm_cfg[]
and bta_dm_pm_spec[]

Bug: 22676670
Change-Id: I3a7074b9a9c91d312dc5d4314b7c304baf4ae20d

9 years agogn-build: Add bluetooth-service target
Arman Uguray [Wed, 8 Jul 2015 22:47:39 +0000 (15:47 -0700)]
gn-build: Add bluetooth-service target

This patch makes the Bluetooth system service (service/) buildable using GN:

1. Added new BUILD.gn file for service/
2. Added conditional compilation for global config paths, with TODOs for
generalizing them later.
3. Added a shim for loading the Bluetooth library that calls hw_get_module on
Android and explicitly calls dlopen on OS_GENERIC.
4. Fixed compile warnings and errors.
5. Did some minor clean up in gatt_server.cpp for better readability.

Bug: 22124644
Change-Id: I3226537a3a5211a6762651a35707638df29956b0

9 years agoam 197ee685: Fix a crash for a race condition during Bluetooth shutdown
Pavlin Radoslavov [Wed, 22 Jul 2015 20:19:17 +0000 (20:19 +0000)]
am 197ee685: Fix a crash for a race condition during Bluetooth shutdown

* commit '197ee6856b43d8eea137a7f37798ee2a012ce518':
  Fix a crash for a race condition during Bluetooth shutdown

9 years agoam ac72840a: Update device type correctly in the NVRAM at inquiry result
Nitin Arora [Wed, 22 Jul 2015 20:18:04 +0000 (20:18 +0000)]
am ac72840a: Update device type correctly in the NVRAM at inquiry result

* commit 'ac72840a3d7409adbb3ee4904ab1ed5de2d66586':
  Update device type correctly in the NVRAM at inquiry result

9 years agoFix a crash for a race condition during Bluetooth shutdown
Pavlin Radoslavov [Wed, 22 Jul 2015 01:09:19 +0000 (18:09 -0700)]
Fix a crash for a race condition during Bluetooth shutdown

This race condition is triggered when A2DP audio is streaming on shutdown:
"btif_a2dp_on_stopped() -> btif_media_task_aa_tx_flush_req()" is called
to stop the particular audio stream, and this happens right after
the "cleanup() -> btif_a2dp_stop_media_task()" processing during
the shutdown of the Bluetooth stack.

Bug: 22602117
Change-Id: I5de6a8f15b6a2771dde2e299a5b60554063696a2

9 years agoUpdate device type correctly in the NVRAM at inquiry result
Nitin Arora [Sat, 27 Jun 2015 01:09:37 +0000 (18:09 -0700)]
Update device type correctly in the NVRAM at inquiry result

This patch checks for the NVRAM data when inquiry result
is received from the remote device. In case the device is
marked as LE only or BR/EDR only, and inquiry result is
received from the alternate transport, the device type is
marked as Dual mode in the NVRAM

Bug: 22604450
Change-Id: Id925e8bad152a33c2bd3c371ca42a6f9c694e3b0

9 years agoam 1da48a36: Use pseudo address while re-pairing peripheral
Nitin Arora [Tue, 21 Jul 2015 21:15:40 +0000 (21:15 +0000)]
am 1da48a36: Use pseudo address while re-pairing peripheral

* commit '1da48a3600c980fe4ba825d287ff0ac5038be3ff':
  Use pseudo address while re-pairing peripheral

9 years agoam b4365c55: Adding transport type while initiating remote discovery
Nitin Arora [Tue, 21 Jul 2015 21:08:18 +0000 (21:08 +0000)]
am b4365c55: Adding transport type while initiating remote discovery

* commit 'b4365c55ccb2e985d00619c30dc14d5c156771b7':
  Adding transport type while initiating remote discovery

9 years agoUse pseudo address while re-pairing peripheral
Nitin Arora [Sat, 18 Jul 2015 01:38:01 +0000 (18:38 -0700)]
Use pseudo address while re-pairing peripheral

In case of pairing to an already paired device (in an instance
where the central remote has removed the keys), the change
makes sure that the correct address is used when LTK key
request occurs at the peripheral.

Bug: 22605510
Change-Id: I959003f39f70281ff1e6af8d4c4549138bc1682c

9 years agoam 280368c7: Fix potential crash when transcoding legacy config files
Andre Eisenbach [Tue, 21 Jul 2015 21:01:36 +0000 (21:01 +0000)]
am 280368c7: Fix potential crash when transcoding legacy config files

* commit '280368c7aa3b3e1dc5236a824f1f6c765967e253':
  Fix potential crash when transcoding legacy config files

9 years agoAdding transport type while initiating remote discovery
Nitin Arora [Fri, 26 Jun 2015 01:30:09 +0000 (18:30 -0700)]
Adding transport type while initiating remote discovery

This change ensures that the completion of SMP pairing for LE
devices specifically requests remote device discovery based on
transport type set to LE to prevent initiation of BR/EDR
connection due to incorrect transport type info

Bug: 22515456
Change-Id: Id1e5603d3cc53ca3dff427b93059a00f8d9150a7

9 years agoam ccd37fa0: Enable enhanced connection complete event
Nitin Arora [Tue, 21 Jul 2015 20:52:39 +0000 (20:52 +0000)]
am ccd37fa0: Enable enhanced connection complete event

* commit 'ccd37fa0fed142dae2491212ec72e20d74560b59':
  Enable enhanced connection complete event

9 years agoFix potential crash when transcoding legacy config files
Andre Eisenbach [Tue, 21 Jul 2015 20:02:57 +0000 (13:02 -0700)]
Fix potential crash when transcoding legacy config files

Bug: 22634292
Change-Id: I64745671f3b69fc7e6913213aeec55267e9bc49b

9 years agoEnable enhanced connection complete event
Nitin Arora [Thu, 2 Jul 2015 21:13:45 +0000 (14:13 -0700)]
Enable enhanced connection complete event

This change enables the enhanced connection complete event in order
to receive the local rpa address while connection is completed
with a paired peripheral. This is required if central tries to
repair or key upgrade an already paired device so that the confirm
or the DHKey Check values match during the pairing process

Bug: 22515703
Change-Id: If27f3b22bc568df6f081f8ad13dfc6783a83ae47

9 years agoresolved conflicts for merge of 65f9c04a to mnc-dev-plus-aosp
Pavlin Radoslavov [Tue, 21 Jul 2015 04:14:46 +0000 (21:14 -0700)]
resolved conflicts for merge of 65f9c04a to mnc-dev-plus-aosp

Change-Id: I4d7f657175347b2625f222b3cf6ab60fd37fb238

9 years agoam fb229d8b: Exclude Polar HR Monitor from secure conn
tturney [Tue, 21 Jul 2015 03:39:09 +0000 (03:39 +0000)]
am fb229d8b: Exclude Polar HR Monitor from secure conn

* commit 'fb229d8bb57070f708b0018578ca2cf94b33b2a1':
  Exclude Polar HR Monitor from secure conn

9 years agoFix the logic for removing bonded devices
Pavlin Radoslavov [Fri, 17 Jul 2015 00:40:28 +0000 (17:40 -0700)]
Fix the logic for removing bonded devices

* Removed btif_storage_is_device_bonded(), because it is not needed,
  and it was giving the wrong answer in use cases like Smart Setup
  with BR/EDR connections.

* Added a call to btif_storage_remove_ble_bonding_keys()
  within btif_storage_remove_bonded_device() so the bonded device
  state is properly removed.

* Don't save the BLE bonding keys if it is temporary bonding

Bug: 22233299
Change-Id: I33d9f76a124acc60173f0acaa517bc29ee6603e8

9 years agoExclude Polar HR Monitor from secure conn
tturney [Tue, 21 Jul 2015 02:28:40 +0000 (19:28 -0700)]
Exclude Polar HR Monitor from secure conn

Bug: 22473630
Change-Id: I1168444a6969532377e1bbcb2b1058d768099c20

9 years agoam 6670e315: Fix multi-advertising when LE Privacy is not available
Arman Uguray [Mon, 20 Jul 2015 21:17:25 +0000 (21:17 +0000)]
am 6670e315: Fix multi-advertising when LE Privacy is not available

* commit '6670e3157c8510bc4b944c6a16d92db56adbb76c':
  Fix multi-advertising when LE Privacy is not available

9 years agoFix multi-advertising when LE Privacy is not available
Arman Uguray [Sat, 18 Jul 2015 07:00:50 +0000 (00:00 -0700)]
Fix multi-advertising when LE Privacy is not available

This patch fixes a bug that caused all multi-advertising instances to be
initialized with Instance ID 0 (which is not allowed by the stack), if LE
privacy is not available. The problem was that the internal data structures that
represent advertising instances were not getting their |inst_id| field
initialized where it's supposed to.

Although far from clean, this code worked before. The culprit for the regression
is "f9fdf890 Random address does not get written properly", which moved the
initialization of instance IDs from the loop in BTM_BleEnableAdvInstance to
btm_ble_multi_adv_enb_privacy. The latter never gets called if privacy is not
available, which leads to partially initialized structures.

Obviously both of these places were wrong to begin with. I saw the word
"init" in a function called btm_ble_multi_adv_init. I figured this might have
something to do with initializing, so I moved the logic there.

Bug: 21267281

Change-Id: I38b9a2a71cd3f45feb267a13bf29f93564ee6075

9 years agoam f0e9c466: Add Moto Key Link to blacklist for LE secure connections
Nitin Arora [Fri, 17 Jul 2015 00:33:53 +0000 (00:33 +0000)]
am f0e9c466: Add Moto Key Link to blacklist for LE secure connections

* commit 'f0e9c46646bf49db05a1dcbecdc0bd64d086f623':
  Add Moto Key Link to blacklist for LE secure connections

9 years agoAdd Moto Key Link to blacklist for LE secure connections
Nitin Arora [Fri, 10 Jul 2015 18:24:47 +0000 (11:24 -0700)]
Add Moto Key Link to blacklist for LE secure connections

This change allows the host to mask the Cross key bit in
the key distribution fields of the pairing request and
response while pairing with the Moto key link. This is
needed since this specific remote device performs
calculations of the pairing confirm after masking the
cross key bit in the key distribtuin field which results
in a mismatch of the pairing confirm calcualted by the host
DUT and the remote.

Bug: 22539807
Change-Id: I7d758b05023cf346c97939883edda9d3adb08e1a

9 years agoam 50333a25: Properly disconnect GATT connection during noisy scans
Arman Uguray [Thu, 16 Jul 2015 18:28:14 +0000 (18:28 +0000)]
am 50333a25: Properly disconnect GATT connection during noisy scans

* commit '50333a25ba3dac54033738d1e2a2688e2977ff2e':
  Properly disconnect GATT connection during noisy scans

9 years agoProperly disconnect GATT connection during noisy scans
Arman Uguray [Wed, 15 Jul 2015 23:05:32 +0000 (16:05 -0700)]
Properly disconnect GATT connection during noisy scans

This patch fixes an issue that is reproducible in highly noisy environments
(massive deployment of BLE beacons), through repeated connect/disconnect
attempts on a remote peripheral while scanning for beacons in the background.
The state machine in bta/gatt has a special control flow for handling disconnect
requests during discovery, which in this case failed to resolve the original
request by issuing an HCI_Disconnect command. This is now fixed by always
explicitly triggering the connection close sequence once the discovery state has
been cleaned up.

This patch also includes a fix for a crash that occurred as a side-effect of the
scenario described above.

Bug: 22350508
Change-Id: Ie9cbd3c8f54239b142bfb8dde80d9581ae70ed43

9 years agoam 165332bc: Cleanup alarm_get_remaining_ms
Andre Eisenbach [Wed, 15 Jul 2015 22:01:54 +0000 (22:01 +0000)]
am 165332bc: Cleanup alarm_get_remaining_ms

* commit '165332bc6795049754fafe35024c2c605796c96a':
  Cleanup alarm_get_remaining_ms

9 years agoCleanup alarm_get_remaining_ms
Andre Eisenbach [Wed, 15 Jul 2015 19:35:15 +0000 (12:35 -0700)]
Cleanup alarm_get_remaining_ms

This function is used for PM sniff mode timers - at least until we can
re-factor those not to rely on this function.

Bug: 22040710
Change-Id: Ibe6f49440228732b2bd8242db4a44e481b00b62e

9 years agoam ac1399a7: Use correct own address type for batch scan
Nitin Arora [Wed, 15 Jul 2015 19:30:53 +0000 (19:30 +0000)]
am ac1399a7: Use correct own address type for batch scan

* commit 'ac1399a7aab6051f984235971573d62ddf76891d':
  Use correct own address type for batch scan

9 years agoUse correct own address type for batch scan
Nitin Arora [Fri, 19 Jun 2015 02:09:01 +0000 (19:09 -0700)]
Use correct own address type for batch scan

This patch ignores the input parameter and used the own
address type from address management block while setting
the batch scan parameters.

Bug: 22227689
Change-Id: I23fc80b68cfbd91d718c1094ef2483eaccda3ae1

9 years agoam 76356aee: Bug fix PM changes and LE connectivity mode fixes
VenkatRaghavan VijayaRaghavan [Wed, 15 Jul 2015 06:10:35 +0000 (06:10 +0000)]
am 76356aee: Bug fix PM changes and LE connectivity mode fixes

* commit '76356aee883af67898ddc1aa3b628195f396d42a':
  Bug fix PM changes and LE connectivity mode fixes

9 years agoBug fix PM changes and LE connectivity mode fixes
VenkatRaghavan VijayaRaghavan [Tue, 21 Apr 2015 18:32:29 +0000 (11:32 -0700)]
Bug fix PM changes and LE connectivity mode fixes

Allow PM to support multiple delay timer for different profiles and
power mode requests. And set correct connectivity mode.

Bug: 22040710
Change-Id: Idabd9ea944f0c5a89ce542d85db9f103fa7d1816

9 years agoam 21331c62: Store the link key derived from cross tranport link key
Srinu Jella [Wed, 15 Jul 2015 05:03:10 +0000 (05:03 +0000)]
am 21331c62: Store the link key derived from cross tranport link key

* commit '21331c62310dda2f523712c536da3e65afce0f38':
  Store the link key derived from cross tranport link key

9 years agoStore the link key derived from cross tranport link key
Srinu Jella [Tue, 16 Jun 2015 14:08:45 +0000 (19:38 +0530)]
Store the link key derived from cross tranport link key

Use case: PTS test case for cross transport link key
derivation

Steps to reproduce:
1. Start Test case GAP TP/LEP/DM/BV-15 in PTSv6.0

Failure: PTS test case TP/LEP/DM/BV-15 fails as the link
key is not stored when the key is derived from other
transport key. So it will again go for pairing even though
it has link key but not stored.

Root cause: Link key is stored only when bond type is
presistent, but it sets the bond type to persistent only
when it receives SSP request but not link key is derived.

Fix: So making the solution generic to store always when the
link key type is authenticated combination key with P-256.

Bug: 22486860
Change-Id: I3eb201262f72c86a9438351cad14a6698065fa90

9 years agoam fd4745ec: service: Some fixes from end-to-end/user testing.
Ian Coolidge [Tue, 14 Jul 2015 22:52:52 +0000 (22:52 +0000)]
am fd4745ec: service: Some fixes from end-to-end/user testing.

* commit 'fd4745ec554a95ea98230fcede779421ad89e363':
  service: Some fixes from end-to-end/user testing.

9 years agoam 115c6b1d: service: Remove local copies of base and modp_b64
Arman Uguray [Tue, 14 Jul 2015 22:28:04 +0000 (22:28 +0000)]
am 115c6b1d: service: Remove local copies of base and modp_b64

* commit '115c6b1dbd43e8c390483f537dfb0c477d449269':
  service: Remove local copies of base and modp_b64

9 years agoam 0ca99052: gn-build: Add BUILD files for libchrome
Arman Uguray [Tue, 14 Jul 2015 22:28:03 +0000 (22:28 +0000)]
am 0ca99052: gn-build: Add BUILD files for libchrome

* commit '0ca99052be04bfd85c9c1ae2601214bedf90b238':
  gn-build: Add BUILD files for libchrome

9 years agoam 9f0fa1b6: Add additional BDA ranges for Nexus Remote workaround
Andre Eisenbach [Tue, 14 Jul 2015 18:45:05 +0000 (18:45 +0000)]
am 9f0fa1b6: Add additional BDA ranges for Nexus Remote workaround

* commit '9f0fa1b60e20a1fa3f0845d72dac740e06b245d7':
  Add additional BDA ranges for Nexus Remote workaround

9 years agoAdd additional BDA ranges for Nexus Remote workaround
Andre Eisenbach [Tue, 14 Jul 2015 16:49:37 +0000 (09:49 -0700)]
Add additional BDA ranges for Nexus Remote workaround

As per feedback from manufacturer.

Bug: 21817410
Change-Id: I4b5b3d8d99f9299754221968a5e1ca5f21cb9478

9 years agoservice: Some fixes from end-to-end/user testing.
Ian Coolidge [Tue, 14 Jul 2015 01:22:46 +0000 (18:22 -0700)]
service: Some fixes from end-to-end/user testing.

* Send responses to ExecWrite requests.
* Provide valid data on write responses.
* Properly destruct Gatt::Server objects.
* Synchronize CoreStack 'enable' calls properly.

Change-Id: I4e9eed1979b10abccc7ae487e2c7d90d491e38d9

9 years agoservice: Remove local copies of base and modp_b64
Arman Uguray [Wed, 8 Jul 2015 22:33:05 +0000 (15:33 -0700)]
service: Remove local copies of base and modp_b64

Since libbase is now available on AOSP (under libchrome) Bluetooth code can
depend on it rather than maintain its own copy a subset of base sources (and
modp_b64 dependencies).

Dependent CL: http://r.android.com/158335

Bug: 22175181
Change-Id: I3a301e49353598633ad857ac4345d0361c273beb

9 years agogn-build: Add BUILD files for libchrome
Arman Uguray [Wed, 8 Jul 2015 00:00:09 +0000 (17:00 -0700)]
gn-build: Add BUILD files for libchrome

This CL adds GN build files for libchrome, which is the ChromeOS/Brillo library
for many C++ tools, include libbase. I added a new GN build target for "base"
under secondary sources with a GN build file for libchrome which currently lives
in platform/external/libchrome in AOSP.

To build, clone libchrome into third_party/libchrome and remove
third_party/libchrome/base/BUILD.gn. Also clone external/modp_b64 into
third_party/modp_b64. Eventually I will have scripts set up to do
this automatically.

This means that we can start developing against libbase while running GN builds
on Goobuntu but this would break the tree until libchrome is buildable within
the Android build system (http://r.android.com/158392). So Brillo/Android builds
will depend on libchrome using the conventional Android.mk means.

Bug: 22175181
Change-Id: I9a737aa785488e5bc0ca1adc087d1d5dfcdf3bea

9 years agoam e53454f7: Additional BDA range for Nexus Remote secure connections blacklist
Andre Eisenbach [Mon, 13 Jul 2015 17:30:29 +0000 (17:30 +0000)]
am e53454f7: Additional BDA range for Nexus Remote secure connections blacklist

* commit 'e53454f71c1c894fa3976cfe5f5a22d50b2ff28b':
  Additional BDA range for Nexus Remote secure connections blacklist

9 years agoresolved conflicts for merge of 27c4e634 to mnc-dev-plus-aosp
Andre Eisenbach [Mon, 13 Jul 2015 17:06:52 +0000 (10:06 -0700)]
resolved conflicts for merge of 27c4e634 to mnc-dev-plus-aosp

Change-Id: Id6d78e484d58042e93e4d4ea34522d15a6e1ba59

9 years agoAdditional BDA range for Nexus Remote secure connections blacklist
Andre Eisenbach [Mon, 13 Jul 2015 16:36:03 +0000 (09:36 -0700)]
Additional BDA range for Nexus Remote secure connections blacklist

Bug: 21817410
Change-Id: I5c5f6da9e8326e4c9424907337331b39fb67b444

9 years agoMove pairing auto-retry workaround to new interop db
Andre Eisenbach [Mon, 6 Jul 2015 22:43:15 +0000 (15:43 -0700)]
Move pairing auto-retry workaround to new interop db

Change-Id: I7177aaa0e2d0c3b0fa79ae655c0171f0703c54f3

9 years agoam 71334dcd: Do not reject valid connection parameter updates
Andre Eisenbach [Fri, 10 Jul 2015 17:35:03 +0000 (17:35 +0000)]
am 71334dcd: Do not reject valid connection parameter updates

* commit '71334dcd2c58564a195dade1f862f052ecd07b50':
  Do not reject valid connection parameter updates

9 years agoam 08c08fc0: Fix a bug when responding to AVRCP UNIT_INFO and SUBUNIT_INFO
Pavlin Radoslavov [Fri, 10 Jul 2015 17:33:18 +0000 (17:33 +0000)]
am 08c08fc0: Fix a bug when responding to AVRCP UNIT_INFO and SUBUNIT_INFO

* commit '08c08fc0015c3c5e864da080dba0712ee89a6712':
  Fix a bug when responding to AVRCP UNIT_INFO and SUBUNIT_INFO

9 years agoDo not reject valid connection parameter updates
Andre Eisenbach [Fri, 10 Jul 2015 07:37:45 +0000 (00:37 -0700)]
Do not reject valid connection parameter updates

As a side-effect to increasing BTM_BLE_CONN_INT_MIN, valid connection
parameter updates can be rejected if the requested minimum is < 11.25ms,
but the requested maximum is >= 11.25ms.

This patch introduces a new parameter "BTM_BLE_CONN_INT_LIMIT" and
resets BTM_BLE_CONN_INT_MIN to the HCI spec defined minimum.

Bug: 22245224
Change-Id: I6a2e4d18488b63570f7d0070413d00f16a7fdba1

9 years agoam 26c3dd41: Fail LE secure pairing for secure only peripherals
Nitin Arora [Fri, 10 Jul 2015 17:00:32 +0000 (17:00 +0000)]
am 26c3dd41: Fail LE secure pairing for secure only peripherals

* commit '26c3dd41b294b7f6d0ca7198b00ed1e1ef32dfb9':
  Fail LE secure pairing for secure only peripherals

9 years agoam 8f766350: Reset the ACL connection data on ACL disconnection
Srinu Jella [Fri, 10 Jul 2015 17:00:31 +0000 (17:00 +0000)]
am 8f766350: Reset the ACL connection data on ACL disconnection

* commit '8f766350bbb7026ddf34b73c9d87967decff792b':
  Reset the ACL connection data on ACL disconnection

9 years agoam 549c64d1: Fix security vulnerabilities in string operations
Miao Chou [Fri, 10 Jul 2015 16:59:45 +0000 (16:59 +0000)]
am 549c64d1: Fix security vulnerabilities in string operations

* commit '549c64d1eb96f8096915a39c2a3447190c851bce':
  Fix security vulnerabilities in string operations

9 years agoFix a bug when responding to AVRCP UNIT_INFO and SUBUNIT_INFO
Pavlin Radoslavov [Fri, 10 Jul 2015 00:57:20 +0000 (17:57 -0700)]
Fix a bug when responding to AVRCP UNIT_INFO and SUBUNIT_INFO

Assign appropriately the p_rsp_data pointer to point in the
buffer with the response.

Bug: 22307858
Change-Id: I2f77f290ff2c62c09b3be18ff047167a48c7c9d4

9 years agoFail LE secure pairing for secure only peripherals
Nitin Arora [Thu, 25 Jun 2015 17:48:56 +0000 (10:48 -0700)]
Fail LE secure pairing for secure only peripherals

This change allows the host peripheral which initiates the pairing
to reject the pairing in case the remote does not support
secure LE connections and the host DUT is in secure connections
only mode.

Bug: 22203134
Change-Id: If58f791cb575d6b66c361f58e574b613d5686047

9 years agoReset the ACL connection data on ACL disconnection
Srinu Jella [Fri, 3 Jul 2015 10:01:11 +0000 (15:31 +0530)]
Reset the ACL connection data on ACL disconnection

Use case: Reconnection of legacy mouse.

Failure: Not able to reconnect with mouse if the previous
connection rejected was with SC enabled device.

Test Steps:
1. Pair and connect remote devices.
2. Start streaming music over headset and Disconnect HID
   mouse.
3. Inquire and try to pair with any DUT which supports
   secure connection.
4. Cancel pairing and Turn OFF remote headset.
5. Now try reconnection from HID mouse.

Root Cause: When the secure connection is established, it will
have the 3 pages filled, and when the same acl entry is reused
for next mouse reconnection, only one page is getting over
written because legacy HID will have only one page supported
and remaining 2 pages still holds the previous device's data.

Fix: Fixed it by resetting the ACL entry when the ACL is
disconnected so that even though one page is copied and
remaining pages will not contain valid data.

Bug: 22249108
Change-Id: Icd96f22fe0787ef5845ee02940c2b0eacf7a2bbd

9 years agoFix security vulnerabilities in string operations
Miao Chou [Thu, 9 Jul 2015 19:21:27 +0000 (12:21 -0700)]
Fix security vulnerabilities in string operations

This CL prevents functions, bta_ag_hfp_result and bta_hf_client_send_atd, from
the potential strings overflowing.

Bug: 20674686,20677309
Change-Id: Iaef720fc784e020f237feb86e17857bddf57bbfc

9 years agoam 680959b0: Add missing data initialization
Pavlin Radoslavov [Thu, 9 Jul 2015 19:32:54 +0000 (19:32 +0000)]
am 680959b0: Add missing data initialization

* commit '680959b0914cc32a4f30dbef2fcc95dd980dd96b':
  Add missing data initialization

9 years agoAdd missing data initialization
Pavlin Radoslavov [Thu, 9 Jul 2015 06:17:44 +0000 (23:17 -0700)]
Add missing data initialization

A local struct variable is not initialized (memset to 0)
when sending GET_REPORT_EVT to an application.
As a result, field hs_data.rsp_data.p_rpt_data might be used
uninitialized.

Bug: 22352578
Change-Id: I72141117187c392bc0502a17bf71859e67c8da54

9 years agobuild: fixes for LOG_* message build errors.
Marie Janssen [Wed, 8 Jul 2015 02:37:14 +0000 (19:37 -0700)]
build: fixes for LOG_* message build errors.

Differences in aosp and master mean these were missed before.

Change-Id: Ieedffa62ca0c175637947eb190ead579eb55ff58
(cherry picked from commit fcd814a35c862e46f82332ca203d17f280b33d2f)

9 years agoam 49120dc8: build: Fix LOG_TAG define breakage, macro usage
Marie Janssen [Wed, 8 Jul 2015 01:44:36 +0000 (01:44 +0000)]
am 49120dc8: build: Fix LOG_TAG define breakage, macro usage

* commit '49120dc867c7818511b5afec461dfc97d17eef58':
  build: Fix LOG_TAG define breakage, macro usage

9 years agobuild: Fix LOG_TAG define breakage, macro usage
Marie Janssen [Tue, 7 Jul 2015 23:47:20 +0000 (16:47 -0700)]
build: Fix LOG_TAG define breakage, macro usage

Fixes build breakages related to r.android.com/156982

Change-Id: Ib1143c41fe05a17c296226998afdb41a8cb6294a

9 years agoam db554581: build: Update osi log functions, use consistently
Marie Janssen [Tue, 7 Jul 2015 18:57:01 +0000 (18:57 +0000)]
am db554581: build: Update osi log functions, use consistently

* commit 'db554581079863974af8e1289646f5deea6fc044':
  build: Update osi log functions, use consistently

9 years agoam fd0e9f19: Properly handle outgoing connection requests in opening/opened state
Anubhav Gupta [Tue, 7 Jul 2015 16:17:42 +0000 (16:17 +0000)]
am fd0e9f19: Properly handle outgoing connection requests in opening/opened state

* commit 'fd0e9f1915dab624282c9d11ac6a1c7228c18c75':
  Properly handle outgoing connection requests in opening/opened state

9 years agoam 905c72de: Incorrect address type in ADV end on reconnection
Satya Calloji [Tue, 7 Jul 2015 16:17:41 +0000 (16:17 +0000)]
am 905c72de: Incorrect address type in ADV end on reconnection

* commit '905c72de29add7963b48e016b87e5ebe1a5f8503':
  Incorrect address type in ADV end on reconnection

9 years agoam 9c5d0727: Override remote suspend flag on local play state changes
Anubhav Gupta [Tue, 7 Jul 2015 16:17:40 +0000 (16:17 +0000)]
am 9c5d0727: Override remote suspend flag on local play state changes

* commit '9c5d0727dd4cd09e44c032506c28ab4120ad3b88':
  Override remote suspend flag on local play state changes

9 years agoam 42f37840: SDP: Validate input UUID\'s length
Srinu Jella [Tue, 7 Jul 2015 16:17:02 +0000 (16:17 +0000)]
am 42f37840: SDP: Validate input UUID\'s length

* commit '42f37840a891eddfee0943fbdf84c2e4f0d765c5':
  SDP: Validate input UUID's length

9 years agoam 97269982: Remove extraneous patch from secure connections workaround
Andre Eisenbach [Tue, 7 Jul 2015 16:17:02 +0000 (16:17 +0000)]
am 97269982: Remove extraneous patch from secure connections workaround

* commit '97269982095f2da252d667542688d98e5fee128f':
  Remove extraneous patch from secure connections workaround

9 years agoam f1029c7a: Remove stored link key for temporarily paired devices
Srinu Jella [Tue, 7 Jul 2015 16:17:01 +0000 (16:17 +0000)]
am f1029c7a: Remove stored link key for temporarily paired devices

* commit 'f1029c7afb9b4c9fcf95b3f98ce9c68b10d5a02c':
  Remove stored link key for temporarily paired devices

9 years agoProperly handle outgoing connection requests in opening/opened state
Anubhav Gupta [Wed, 4 Sep 2013 10:20:39 +0000 (15:50 +0530)]
Properly handle outgoing connection requests in opening/opened state

This happens in race conditions when we try to connect to a remote
A2DP device from Bluetooth Settings UI and simultaneously there is incoming
connection request from previously connected remote. This fix addresses
the scenario where because of first A2DP connection btif moves to opening/
opened state and then the second connect request is received.
This scenario is handled by gracefully rejecting the second connect request
from btif layer if it is already connected or about to be connected by the
first connect request.

Bug: 22028876
Change-Id: I53be400d1d7c9a84ca9d9a75b6b6f010975cf0cf

9 years agoIncorrect address type in ADV end on reconnection
Satya Calloji [Tue, 23 Jun 2015 22:21:19 +0000 (15:21 -0700)]
Incorrect address type in ADV end on reconnection

Handled the issue of incorrect address type and value
(on Privacy 1.1 chipsets) on reconnection by setting
the correct device type and address value on advertiser end

Original author: Chaojing Sun <cjsun@broadcom.com>

Bug: 22100659
Change-Id: I009888cc9ebd0b631543027d6e34b6c7ecbd0ce8

9 years agoOverride remote suspend flag on local play state changes
Anubhav Gupta [Sat, 27 Jul 2013 09:16:29 +0000 (14:46 +0530)]
Override remote suspend flag on local play state changes

- Remote device may initiate AVDTP Suspend within 3s of AVRCP pause,
  which sets remote suspend flag. Later on resumption of local playback
  A2DP packets can not be processed further as Remote suspend flag
  remains set. current change overrides remote suspend flag if local
  suspend is triggered later.
- This change covers the usecase where play is pressed from DUT UI
  before local suspend triggers in such scenarios current change takes
  care of resetitng remote suspend flag on AVRCP play state change event.
- Moreover this change will drop A2DP packets when the setparameter
  is called with A2dpSuspended=true and resumes when the mentioned parameter
  is reset.

This change along with corresponding app change helps mitigating
issues reported due to A2Dp, HFP synchronizations and local and remote
device initiated AVDTP suspend handling.

Bug: 22028876
Change-Id:  I3bb334373414170254744d9233cbd2e66219bfa0

9 years agoSDP: Validate input UUID's length
Srinu Jella [Thu, 24 Jul 2014 14:24:32 +0000 (19:54 +0530)]
SDP: Validate input UUID's length

Use case: Crash observed during BT IOT testing

1. Try to pair to the remote device.
2. Connect  to the remote device's audio profiles.
3. Remote device has given the wrong UUID's length.This will leads to crash.

Failure: crash observed during profile connection

Root cause: Remote sent invalid UUID length,which is causing crash
in comparison logic.

Fix: Validate input UUID's length before going for actual comparison.

Bug: 19417758
Change-Id: I8216d17e3f6cc22dfbeca4b31972b5b5584a73ea

9 years agoRemove extraneous patch from secure connections workaround
Andre Eisenbach [Tue, 7 Jul 2015 05:27:00 +0000 (22:27 -0700)]
Remove extraneous patch from secure connections workaround

Bug: 21817410
Change-Id: I55b3753b0ae9f389f1531bb588c4868e96842aeb

9 years agoRemove stored link key for temporarily paired devices
Srinu Jella [Tue, 2 Sep 2014 10:12:11 +0000 (15:42 +0530)]
Remove stored link key for temporarily paired devices

Problem: Device shows up in paired list during just work pairing

1. Create a connection from DUT to remote.
2. Remove the link key in remote.
3. Send a file from remote to DUT.
4. Turn OFF BT. Turn ON.

Failure: Device should not move to paired list after BT on/off
as device removed from UI during just work pairing

Root cause: remote device is not removed from btif but
its removed from UI during justworks pairing

Fix: remote device is removed from btif during justworks
pairing to sync up UI and btif paired list

Bug: 19417758
Change-Id: I73de0a94c4f7ada644d258790a9e3e4bf11fc4e5

9 years agoam 1192df9f: Save all snoop logs when BtSnoopSaveLog=true
Tucker Sylvestro [Tue, 7 Jul 2015 00:40:41 +0000 (00:40 +0000)]
am 1192df9f: Save all snoop logs when BtSnoopSaveLog=true

* commit '1192df9f7e709b9d9508ac86cbf5099a3a7ffa0e':
  Save all snoop logs when BtSnoopSaveLog=true

9 years agoSave all snoop logs when BtSnoopSaveLog=true
Tucker Sylvestro [Mon, 6 Jul 2015 23:29:06 +0000 (19:29 -0400)]
Save all snoop logs when BtSnoopSaveLog=true

Previously, only the last snoop log was saved, which was often not
enough if the bluetooth stack was in a crash loop or an app was
resetting it frequently.

Bug: 22202788
Change-Id: I74622ceabe9ce12d5ba03c640c37f697d5a5bb01

9 years agoam 7927f68b: Blacklist Nexus Remote for LE secure connections
Andre Eisenbach [Mon, 6 Jul 2015 23:01:25 +0000 (23:01 +0000)]
am 7927f68b: Blacklist Nexus Remote for LE secure connections

* commit '7927f68bb2d9b963288261e1e858463b43c52a2d':
  Blacklist Nexus Remote for LE secure connections

9 years agoam 4f6c9b4f: Use correct transport type while encrypting link
Nitin Arora [Mon, 6 Jul 2015 23:01:25 +0000 (23:01 +0000)]
am 4f6c9b4f: Use correct transport type while encrypting link

* commit '4f6c9b4f68d152baf7aa029cbe9b570994584101':
  Use correct transport type while encrypting link