OSDN Git Service
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
tturney [Tue, 21 Jul 2015 02:28:40 +0000 (19:28 -0700)]
Exclude Polar HR Monitor from secure conn
Bug:
22473630
Change-Id: I1168444a6969532377e1bbcb2b1058d768099c20
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Marie Janssen [Fri, 26 Jun 2015 21:53:46 +0000 (14:53 -0700)]
build: Update osi log functions, use consistently
Update the LOG_* functions to take a tag argument which makes them more
consistent with the Android Log.*(TAG, s) common syntax and removes
some #define-dependency with osi/include/log.h.
Also update to never use Android log functions directly.
Also contains minor cleanup of some header includes.
Bug:
21569831
Change-Id: If07385cafbea062232ecdbc7c673f908d5ef8921
Andre Eisenbach [Thu, 2 Jul 2015 23:14:28 +0000 (16:14 -0700)]
Blacklist Nexus Remote for LE secure connections
The Nexus remote will disconnect during encryption when paired with the
secure connections feature enabled. This patch will blacklist the remote
and mask out the feature during pairing.
This patch introduces a new interop database with the aim of
consolodating various blacklists and interop workarounds into a single
database for code readability and maintainability of the list.
Bug:
21817410
Change-Id: I6f510e1c8c6050ab4e313209122d028e12e5f54f
Nitin Arora [Tue, 9 Jun 2015 22:30:18 +0000 (15:30 -0700)]
Use correct transport type while encrypting link
This patch uses the transport type from the GATT event instead
of using the device type stored in NVRAM, to determine the
transport type while encrypting the link. The issue is seen
with dual mode devices, when the connection on LE transport
causes encryption request on the BR/EDR transport
Bug:
21652097
Change-Id: I895756f9c0048b5a559ea00f633b1100109e52b8
Andre Eisenbach [Mon, 6 Jul 2015 16:56:19 +0000 (16:56 +0000)]
am
d69bef4e: Merge "Prevent LE remote name request during inquiry" into mnc-dev
* commit '
d69bef4e26accb3ed85db244c442a4e028927ea8':
Prevent LE remote name request during inquiry
Andre Eisenbach [Mon, 6 Jul 2015 16:45:30 +0000 (16:45 +0000)]
Merge "Prevent LE remote name request during inquiry" into mnc-dev
Nitin Arora [Fri, 11 Jul 2014 21:33:05 +0000 (14:33 -0700)]
Prevent LE remote name request during inquiry
This change prevents the LE RNR at the end of inquiry. This prevents
extra LE connections created during BT scan, to fetch remote name,
which will be performed later during connections.
Bug:
22228981
Change-Id: Ied61bc192cec611e7b2f41e474c5f032ed9f0981
Priti Aghera [Mon, 6 Jul 2015 16:01:39 +0000 (16:01 +0000)]
am
8e928b4a: Set random identity only if enhanced privacy is supported
* commit '
8e928b4ad152c6b2713147067e02327f3bbedde6':
Set random identity only if enhanced privacy is supported
Priti Aghera [Wed, 1 Jul 2015 20:27:57 +0000 (13:27 -0700)]
Set random identity only if enhanced privacy is supported
Change Own address type to Random identity only if controller supports enhanced
privacy. Check if controller supports enhanced privacy before changing own adress type
and peer address type to 0x02 or 0x03 in auto connection.
Privacy 4.1 only supports Public and Random address.
Bug:
20817308
Change-Id: I9f5531e4e41c824426cd64de517b44355ac2655d
Pavlin Radoslavov [Thu, 2 Jul 2015 00:46:54 +0000 (00:46 +0000)]
am
9345c8fd: Use the correct memory free function within HCI layer shutdown
* commit '
9345c8fd0dae6d1c1954c9d2e29ad57fcf5015ad':
Use the correct memory free function within HCI layer shutdown
Pavlin Radoslavov [Wed, 1 Jul 2015 04:39:11 +0000 (21:39 -0700)]
Use the correct memory free function within HCI layer shutdown
The entries on the "command_queue" are allocated by osi_calloc()
hence they should be deallocated by osi_free()
Bug:
21784321
Change-Id: Ic6e13dbafef2c6ac79ce74ebfc4db702c9ef04c5
Evgenii Stepanov [Tue, 30 Jun 2015 01:53:30 +0000 (01:53 +0000)]
am
df81c3aa: Add missing library dependency.
* commit '
df81c3aaadee7a5f91e5d993cc823d4e65db25db':
Add missing library dependency.
Evgenii Stepanov [Mon, 29 Jun 2015 20:59:44 +0000 (13:59 -0700)]
Add missing library dependency.
Fixes the following link error in SANITIZE_TARGET=address build for
hammerhead:
system/bt/audio_a2dp_hw/audio_a2dp_hw.c:208: error: undefined reference
to 'osi_socket_local_client_connect'
Bug:
21785137
Change-Id: Ie29a2772e7f1a4f697d895eb29b01d39d6f9c651