OSDN Git Service
Pavlin Radoslavov [Fri, 12 May 2017 08:16:10 +0000 (01:16 -0700)]
Set the RTP Header Marker bit selectively per A2DP codec
Add a mechanism to set the RTP Header Marker bit per codec.
Currently, the Marker bit is set only for AAC.
Test: A2DP streaming, PTS AVDTP tests: TC_ACP_SRC_TRA_BTR_BV_01_C,
TC_INT_SRC_SIG_SMG_BV_17_C, TC_INT_SRC_TRA_BTR_BV_01_C
Bug:
37723283
Change-Id: I9b8e77d44c750746c169df9628d5539ad2406b92
Jakub Pawlowski [Tue, 9 May 2017 12:02:38 +0000 (05:02 -0700)]
Improve GATT Server database handling.
- use references instead of pointers where possible. Thanks to it we can
remove some reduntant null checks and simplify the code.
- use directly allocated memory instead of own buffers. Thanks to it the
stack uses around 12kb less of memory after startup.
- use list and vector from std library, instead of some hand-written
implementations.
This patch is a prerequisite for further server refactoring, that will
further reduce the space used, make unit-testing possible, and enable
proper handling of PTS GATT tests.
Test: sl4a GattReadTest
Bug:
38225928
Change-Id: I1620be682259ccb8f0c02754806e355e3f1ad0c1
Joseph Pirozzo [Thu, 11 May 2017 16:36:47 +0000 (09:36 -0700)]
Disable output_sample.pcm
Update include files to include bt_target.h as it has the necessary
defines to correctly allow bdroid_buildcfg.h to enable and disable
dumping to output_sample.pcm.
Bug:
38180732
Test: Stream Bluetooth audio to device and observe that
output_sample.pcm does not get written or appended to.
Change-Id: Ia7926f93a47489686d315e3c9abd1618cb8adda3
Treehugger Robot [Thu, 11 May 2017 02:10:07 +0000 (02:10 +0000)]
Merge "Removed A2DP_GetTrackBitsPerSample() API because it is not needed"
Treehugger Robot [Thu, 11 May 2017 01:53:44 +0000 (01:53 +0000)]
Merge changes from topic 'eSCO'
* changes:
eSCO: Format changes to original vendor patch (4/5)
eSCO: Additional fix to get eSCO working for HFP and HSP (3/5)
eSCO: Remove BTM_WBS_INCLUDED from the stack (2/5)
eSCO: BT 4.1 Enhanced SCO command (1/5)
Andre Eisenbach [Thu, 11 May 2017 00:37:42 +0000 (00:37 +0000)]
Merge "HID: Add support for Set Idle and Get Idle commands (2/4)"
Pavlin Radoslavov [Thu, 11 May 2017 00:09:00 +0000 (17:09 -0700)]
Removed A2DP_GetTrackBitsPerSample() API because it is not needed
The A2DP_GetTrackBitsPerSample() API was replaced in the past
by A2dpCodecConfig::getAudioBitsPerSample() .
* Removed A2DP_GetTrackBitsPerSample() and related codec-specific APIs:
- A2DP_GetTrackBitsPerSampleSbc
- A2DP_GetTrackBitsPerSampleAac
- A2DP_GetTrackBitsPerSampleAptx
- A2DP_GetTrackBitsPerSampleAptxHd
- A2DP_GetTrackBitsPerSampleLdac
NOTE: The removed A2DP_GetTrackBitsPerSampleLdac implementation
had a bug: a2dp_ldac_caps.bits_per_sample -> ldac_cie.bits_per_sample
This bug itself was uncovered when switching to clang-
3960126
- A2DP_VendorGetTrackBitsPerSample()
* Replaced few leftover usages of A2DP_GetTrackBitsPerSample()
A2dpCodecConfig::getAudioBitsPerSample()
* Updated the unit tests
Test: Code compilation, unit tests, A2DP streaming
Bug:
37752547
Change-Id: I7feeda0f32922b8ef888b157673e3e2ade98b179
Jack He [Mon, 8 May 2017 00:27:47 +0000 (17:27 -0700)]
eSCO: Format changes to original vendor patch (4/5)
* Format changes to original vendor patch
* Re-order part of SCO creation code to improve readability
* Make log more concise and usefull
Bug:
19540029
Test: make, HFP PTS test, testplans/86884, testplans/87103
Change-Id: Ie0199519afb30f56568c04fef728fce44a172063
Jack He [Mon, 8 May 2017 00:26:02 +0000 (17:26 -0700)]
eSCO: Additional fix to get eSCO working for HFP and HSP (3/5)
* Removed vendor specific call after codec negotiation and before eSCO
command is sent to Bluetooth chip
* Removed vendor specific call after a SCO connection is requested by
the peer
* Removed vendor specific save audio state methods
Bug:
19540029
Test: make, HFP PTS test, testplans/86884, testplans/87103
Change-Id: I899405a8eaa2f38ee0de04949c5288f9eefa74df
Myles Watson [Fri, 10 Feb 2017 00:26:34 +0000 (16:26 -0800)]
eSCO: Remove BTM_WBS_INCLUDED from the stack (2/5)
All of our platforms support WBS.
Bug:
19540029
Test: make, HFP PTS test, testplans/86884, testplans/87103
Change-Id: I384d49f73935ebb35b17132e71c85174797c435e
Mudumba Ananth [Thu, 9 Feb 2017 17:05:48 +0000 (09:05 -0800)]
eSCO: BT 4.1 Enhanced SCO command (1/5)
Added support for BT 4.1 enhanced SCO feature on the stack.
This feature allows the stack to create a SCO connection with
remote device by using Hci_Enhanced_Setup_Synchronous_Connection
command after checking the controller (4.1) support for
enhanced SCO command.
Added the command parameters to use the command in both wide band
speech(WBS) and narrow band speech(NBS) scenarios.
Number of Broadcom vendor specific commands(VSCs)that are needed
to be sent to Broadcom controllers along with this command have
also been updated accordingly
NOTE: This change would also need a firmware patch for
the feature to work on Broadcom contollers which will
be delivered to Google in a separate change set.
Bug:
19540029
Test: make, HFP PTS test, testplans/86884, testplans/87103
Change-Id: I1014d81be5cbe91078a4484dd072ac3957bfdfe4
Marie Janssen [Fri, 14 Apr 2017 21:07:19 +0000 (14:07 -0700)]
btif: GetItemAttributes can return no attributes
If there are no attributes available, it's possible to return zero
attributes from a GetItemAttributes request.
This is triggered by some carkits who are unhappy when they only get
titles back (the only required item) and ask for the rest of the
attributes (which we don't have).
Test: connect to honda carkit and get snoop logs to confirm
Bug:
36055995
Bug:
35956792
Change-Id: I5a31e206565d212e456111d8c6b542c7a1569e5a
Jakub Pawlowski [Wed, 10 May 2017 11:39:26 +0000 (04:39 -0700)]
GATT Server: check UUID
Characteristic and descriptor can't use UUID equal to GATT Attribute
Types. Using such UUID would result in invalid GATT database, and
crashes during service discovery.
Test: manual
Bug:
38134693
Change-Id: Ide2c21109f885cbc79287452b1dabd3f532de385
Hemant Gupta [Tue, 30 Jul 2013 10:41:33 +0000 (16:11 +0530)]
HID: Add support for Set Idle and Get Idle commands (2/4)
Provides an interface for application to send Set Idle
and Get Idle commands to remote HID Device. Support for these
two commands was missing from existing code, so existing code
design is reused to add support for these two commands.
Without this support following mandatory PTS test cases for HID 1.0
cannot be passed, TC_HOS_HID_BV_05/06.
Test: Executed PTS tests TC_HOS_HID_BV_05/06 and confirmed if they can
pass
Bug:
34344715
Change-Id: I14bc2dc349354fd87ef8aba25357514398532e87
Jack He [Thu, 4 May 2017 20:27:25 +0000 (13:27 -0700)]
Fix broken linux build
* Generic linux does not have property_get_int32. Instead,
osi_property_get_int32() is created to handle OS_GENERIC cases
* Some linux header have sigevent.sigev_notify_attributes typed as
(pthread_attr_t *) whereas others typed it as (void *), as any pointer
can be implicitly casted to (void *), the current casting to (void *)
is unncessary and will break build on systems using (pthread_attr_t *)
Test: make, unit test, no user visible effect
Change-Id: I24b33da453dc9d40656168a3bcd900d9c99219ce
Treehugger Robot [Mon, 8 May 2017 19:27:33 +0000 (19:27 +0000)]
Merge "Swap BTA and HCI queues with message loops"
Andre Eisenbach [Mon, 8 May 2017 19:13:56 +0000 (19:13 +0000)]
Merge "Reject LE COC if cid is duplicated"
Ajay Panicker [Wed, 1 Mar 2017 18:00:30 +0000 (10:00 -0800)]
Swap BTA and HCI queues with message loops
Swapping out the queues with base::MessageLoop allows for an easier refactor
of alarms as we can just replace them with an instance of base::Timer. Also
refactored out the data_dispatcher as most of the code wasn't being used.
Bug:
37245162
Test: Bluetooth sanity test and listening to music
added net_test_btu_message_loop
Change-Id: I73c359f07a225733dc89f51422a6a24ce807c593
Jaganath Kanakkassery [Tue, 2 May 2017 10:54:16 +0000 (16:24 +0530)]
Reject LE COC if cid is duplicated
This is for PTS test TP/LE/CFC/BV-20-C.
The scenario is there is already one COC between DUT and PTS.
Then PTS tries to establish one more COC with same cid which
should be rejected.
Change-Id: I094a4058ac0e7bb9d7344e66d9feafee17bc3d53
Signed-off-by: Jaganath Kanakkassery <jaganathx.kanakkassery@intel.com>
ravishankar srivatsa [Thu, 4 May 2017 04:43:58 +0000 (10:13 +0530)]
Add additional failure modes for SMP PTS test cases
SM/MAS/SCJW/BI-01-C [Just Works, IUT Initiator, Secure Connections -Pairing Failed
For Lower tester to handle step 15.
Lower Tester responds with a Pairing Failed command in phase 2 with reason code
0x0C (Numeric Comparison Failed).
Bug:
37707831
Change-Id: Ia7103330d1d1ecb06e39502c2a0976585b203ba5
Signed-off-by: Ravishankar Srivatsa <Ravishankar.Srivatsa@intel.com>
Test: manual
Martin Brabham [Mon, 1 May 2017 23:30:40 +0000 (16:30 -0700)]
bta_dm: Stop copying garbage
After we reach 7 ACL connections we have 7 peer device records.
Once we reach this then we lose a connection and shrink the list we
copy garbage into the last peer device record. This can cause the flag
remove_dev_pending to be set to something > 0 thus true which causes the
stack to remove the device and its bonding information on the next
acl change event.
ACL Connections can happen from any connection (pairing, SDP, etc...)
Bug:
36598959
Test: Manual
Change-Id: Ifbaa4098edba442274ffde183960ef53169988e7
Ajay Panicker [Fri, 28 Apr 2017 22:26:38 +0000 (15:26 -0700)]
Move hci_thread to a message loop and prevent thread from spinning
Before this patch, if there was a message on the command queue and
there were no command credits, the thread reactor would spin trying
to process the message on the command queue and would continue until
a credit was received. This led to a bug where upon switching users,
hci_thread would spin and try to use 100% of the CPU. This is fixed
by moving over to a message loop and queue system. The message loop
processes all the messages. If there aren't enough command credits,
command messages are deferred to the command queue and popped off
whenever more credits are aquired. The deferred queue has priority
to credits over recently posted messages.
Bug:
37733903
Test: Swap users with the real time scheduling patch applied, and
general Bluetooth usage.
TestTracker: 86249
Change-Id: Ib775e47f6d4810d3d7d8af5b3ba84adc4ada3da5
(cherry picked from commit
ffee0ee8a102101ded1d3fa398f20c4215e0c441)
Jakub Pawlowski [Fri, 28 Apr 2017 21:59:46 +0000 (14:59 -0700)]
LE advertise data parsing refactor
* merge BTM_CheckAdvData and BTM_CheckEirData into GetFieldByType
* check wether AD data is properly formatted when the packet is
received. Some controllers were returning malformed data that
resulted in stack crashes for BT5 packets.
* add tests to verify the helpers work as expected
Test: added net_test_stack_ad_parser
Bug:
37671082
Change-Id: I49e43d7cf7d0a8ace1ee45d9b14b2b8440096b05
Jakub Pawlowski [Fri, 28 Apr 2017 12:15:16 +0000 (05:15 -0700)]
Check device name length
BT spec limits the length of device name to 248 bytes. With the new
LE advertising packets, that can go up to 1650 bytes long, we must check
the length of device name received.
Bug:
37671082
Test: manual
Change-Id: Iad309d638003c2391014c9764605d84ed5717cb1
Treehugger Robot [Thu, 4 May 2017 18:23:50 +0000 (18:23 +0000)]
Merge "Remove 96.0 and 88.2 kHz sample rate from A2DP AAC capability"
Jakub Pawlowski [Tue, 28 Mar 2017 19:58:34 +0000 (12:58 -0700)]
Add supervision timeout workaround for Nexus Remote
The Nexus Remote would report 100ms supervision timeout in its preferred
connection parameters. In some noisy environments, this might cause
connection to be dropped. As a workaround, set the timeout to 3s for the
remote.
Test: manual
Bug:
36645397
Bug:
37717216
Change-Id: I665a854e9d55067ec1aca273c31d06c6114c48be
Pavlin Radoslavov [Thu, 4 May 2017 05:48:28 +0000 (22:48 -0700)]
Remove 96.0 and 88.2 kHz sample rate from A2DP AAC capability
The A2DP AAC Source capabilty should not include 96.0 and 88.2 kHz
sample rate - those were included unintentionally without being tested.
Bug:
37968743
Test: A2DP AAC streaming
Change-Id: Ia3228d4d14d3288acfda42fbaf8ab248ae530b48
Andy Hung [Mon, 1 May 2017 22:04:57 +0000 (15:04 -0700)]
audio_a2dp_hw: fix fd leak on open
Open hal fds can be checked by
adb shell lsof | grep audio@2. | grep socket | wc
Test: connect and disconnect BT, check open fd.
Bug:
37726871
Change-Id: Id446c43515eceb0828cfb33807a4c0b4c6145a6d
(cherry picked from commit
cef156574c9928164b7a5e263a5494cf61ca39d8)
Ajay Panicker [Tue, 13 Dec 2016 18:51:12 +0000 (10:51 -0800)]
Prevent buffer overflow caused by decrementing past zero
Bug:
33555809
Test: Sanity test with Bluetooth
Change-Id: I4c82d3c162ffdc9436f9cd8985061655a055774b
Jakub Pawlowski [Thu, 27 Apr 2017 11:52:34 +0000 (04:52 -0700)]
Fix LE disconnecting right after pairing
When a device connect to android over LE, the default policy is to keep
this connection. If any app "claims" this connnection, and then stop
using it, we'll disconnect from the device after a short timeout.
If pairing is triggered to such device, that is connected but not used
by any app, it will cause disconnect after the pairing is finished. This
is because using SMP over fixed LE L2CAP channel is conseidered as
connecting, using, and disconnecting a channel by the stack. This is
obvious logic error - using fixed channels should not require
"connecting" to them.
As a temporary workaround, do not trigger a timeout when a fixed SMP
channel is closed over LE.
For LE only devices, this means they will stay connected after the
pairing until some app starts using them or they disconnect. For dual
mode devices, Classic connection will be established and SDP will be
performed. The classic connection will be disconnected if no app will
use it, and the LE connection to the device will stay up.
Bug:
37352720
Test: manual
Change-Id: Ic9d688aacf84e0267277b12b28dfa7cc57fdcea6
Ajay Panicker [Tue, 18 Apr 2017 03:53:24 +0000 (20:53 -0700)]
Limit btsnoop file size (5/8)
Limit btsnoop file size by rotating between snoop files. The rotation occurrs
when a fixed number of packets have been logged and will start overwriting
the older file.
Bug:
35998031
Test: Enable snoop logs from developer options and let logs get large
Merged-In: Ia8741223cb31b2c20d9ef5607e9204cc3946b165
Change-Id: Ia8741223cb31b2c20d9ef5607e9204cc3946b165
Jacky Cheung [Wed, 26 Apr 2017 17:27:41 +0000 (10:27 -0700)]
Fix issue with BLE advertising not started when local privacy is not enabled
Bug:
37282500
Test: manual
Change-Id: I44657d0b3315bc241373c8cbaf6a2b6a6e49f31d
Philip Cuadra [Thu, 23 Mar 2017 17:10:34 +0000 (10:10 -0700)]
Make Bluetooth audio threads use RT scheduling
Bluetooth threads that are used in audio have deadline
requirements for glitchless playback. Those threads need to be
scheduled as RT tasks to ensure that they can meet the deadline even if
there is high system load.
Bug
37518404
Test: play Bluetooth audio, check for RT with systrace
Change-Id: I4505fbce55e5a4fe18d00dbda23646a60e482efd
Treehugger Robot [Tue, 25 Apr 2017 10:35:03 +0000 (10:35 +0000)]
Merge "Handle remote not supporting LL_SLAVE_FEATURE_REQ"
Pavlin Radoslavov [Tue, 25 Apr 2017 00:37:20 +0000 (17:37 -0700)]
Add missing library dependency when compiling the unit tests
This fixes a compilation issue when compiling with ASAN enabled.
Bug:
37624756
Test: make -j 40 SANITIZE_TARGET='address coverage' tests
Change-Id: I9caa3d404e60ee105435539744ed2b8ccf353700
Jakub Pawlowski [Mon, 24 Apr 2017 13:34:11 +0000 (06:34 -0700)]
Handle remote not supporting LL_SLAVE_FEATURE_REQ
Test: for PTS
Change-Id: I3030a068c1c4980fa7cbb23b478afbe441584869
Hemant Gupta [Wed, 12 Apr 2017 18:26:15 +0000 (23:56 +0530)]
AVRCP 1.6: Limit GetFolderItemResponse
Usecase:
1) Connect from AVRCP Controller supporting browsing
having low L2CAP MTU eg 672.
2) Request for get folder items with large request items,
response for which will exceed MTU size.
Expected Result:
As per AVRCP 1.6 Spec, section 29.20 pg 178, response should be
limited to number of completed get folder items that can fit in
single AVCTP Browsing channel MTU even if the completed items
are less than actually requested by AVRCP Controller.
Observation:
DUT responding with Internal Error.
Root Cause:
When there is no space to fill complete Get Folder Item response
within MTU size, DUT was returning error.
Fix:
Send max completed items which can fit in single MTU packet.
Test: Checked if the remote device can receive the truncated
response and get folder items succeeds when remote device
reissues get folder item request with updated start list count.
Frequency: 5/5
Bug:
37304477
Change-Id: I1963f97075382fc8333038e3efffaf61a9d84a28
Stanley Tng [Tue, 18 Apr 2017 05:38:38 +0000 (22:38 -0700)]
Allow the Bluetooth MAC address to be updated asynchronously (3/3)
There are intermittent issues where either the returned Bluetooth
MAC address to Java framework is uninitialized or this address update
arrives too late. This fix will do 2 things:
(1) Returns error when MAC address is unavailable in the native code.
(2) Updates the MAC address later by adding a new broadcast event.
Test: Check address for these cases: factory reset, system reboot, and
Bluetooth re-enable.
Bug:
36709382
Change-Id: I7b1c526ee227897c003ac921078f317f96b92604
Jakub Pawlowski [Wed, 19 Apr 2017 14:05:00 +0000 (07:05 -0700)]
Expose LE advertiser address for easier PTS tests (4/6)
This patchset adds a hidden method getOwnAddress, that lets app with
BLUETOOTH_PRIVILEGED permission to lear their own addreess. This is done
exclusively for PTS tests.
Bug:
35147497
Test: manual
Change-Id: I5ad554d872f2b772f2bf91642a9648c4018d935c
Pavlin Radoslavov [Wed, 19 Apr 2017 21:27:56 +0000 (21:27 +0000)]
Merge changes from topics 'bt-a2dp-ldac-abr-adjustments', 'bt-a2dp-ldac-dropped-count'
* changes:
Print the LDAC adaptive bit rate adjustments
Fix/update the computation of the total dropped packets for LDAC and AAC
Treehugger Robot [Wed, 19 Apr 2017 20:31:45 +0000 (20:31 +0000)]
Merge "Remove libbt-vendor from system/bt/main/Android.bp"
Myles Watson [Mon, 17 Apr 2017 20:43:05 +0000 (13:43 -0700)]
test_vendor: Remove unused libbt-vendor files
Bug:
36810308
Test: builds
Change-Id: I50b4a3efaac622959dbf25c0f854d455057e6f3e
Myles Watson [Tue, 7 Mar 2017 12:57:03 +0000 (04:57 -0800)]
Remove libbt-vendor from system/bt/main/Android.bp
Platforms that need libbt-vendor, which is deprecated, should include the
build dependency in device.mk.
Bug:
36810308
Test: Angler Bluetooth starts/stops
Change-Id: I0e37bf48536ca134493aaa3a496bafb3b80cd882
Treehugger Robot [Wed, 19 Apr 2017 20:07:46 +0000 (20:07 +0000)]
Merge "bta_gattc_cache: Initialize gatt_db_elemement_t permissions to 0"
Pavlin Radoslavov [Wed, 19 Apr 2017 18:44:19 +0000 (11:44 -0700)]
Fix line formatting per clang-format
The fix is needed to resolve a merge conflict.
Test: Code compilation
Change-Id: I41cd79db1750b526fafa33e097c56a7cb46ba6af
Pavlin Radoslavov [Wed, 19 Apr 2017 17:50:16 +0000 (10:50 -0700)]
Print the LDAC adaptive bit rate adjustments
A2DP LDAC State:
...
LDAC quality mode : ABR
LDAC transmission bitrate (Kbps) : 990
LDAC saved transmit queue length : 0
LDAC adaptive bit rate encode quality mode index : 0
LDAC adaptive bit rate adjustments : 4
Test: A2DP streaming to headsets that support LDAC
Bug:
37287785
Change-Id: Ife8017ca129fa9b06ea85f6029c553a52a306cc2
Pavlin Radoslavov [Wed, 19 Apr 2017 03:05:39 +0000 (20:05 -0700)]
Fix/update the computation of the total dropped packets for LDAC and AAC
Also:
* Print the "LDAC transmission bitrate (Kbps)"
* Print the "LDAC adaptive bit rate encode quality mode index"
when the LDAC quality mode is ABR
A2DP LDAC State:
...
LDAC quality mode : ABR
LDAC transmission bitrate (Kbps) : 990
LDAC saved transmit queue length : 0
LDAC adaptive bit rate encode quality mode index : 0
Test: A2DP streaming to headsets that support LDAC
Bug:
37287785
Change-Id: I83b22090b087eb8a1e49d1853468b7dbbf9d9ad3
Treehugger Robot [Wed, 19 Apr 2017 06:08:48 +0000 (06:08 +0000)]
Merge "Read by UUID for PTS tests (4/5)"
Bailey Forrest [Wed, 19 Apr 2017 04:04:10 +0000 (21:04 -0700)]
bta_gattc_cache: Initialize gatt_db_elemement_t permissions to 0
Previously this value was uninitialized. Attribute permissions are not
discovable via the attribute protocol.
Bug: None
Test: Build. permissions are 0.
Change-Id: I5fdac3b90683245a0af0d6e27a2873499ca90e6c
Treehugger Robot [Wed, 19 Apr 2017 00:41:26 +0000 (00:41 +0000)]
Merge "AVRCP TG: Get Item Attribute command not working"
Hemant Gupta [Fri, 14 Apr 2017 06:37:37 +0000 (12:07 +0530)]
stack: AVRCP: add missing debug arguments
Fixes a crash while sending AVRCP Get Item Attribute response due to missing
function arguments.
Test: test with BMW kit, Crysler kit which trigger this bug
Bug:
37334553
Fixes:
37474772
Change-Id: Ie129e22e427896028a50e6b0ae8c2cdd151b0ea1
Jakub Pawlowski [Fri, 14 Apr 2017 14:27:49 +0000 (07:27 -0700)]
Read by UUID for PTS tests (4/5)
Add a hidden api for reading characteristic by UUID for PTS.
Bug:
35150313
Test: sl4a GattReadTest.byUuid
Change-Id: I072473c5f7b761707774efd89f8a22bfdf012135
Jacky Cheung [Mon, 17 Apr 2017 20:38:39 +0000 (13:38 -0700)]
Do not GATT_ERROR on MTU change
Bug:
37305498
Test: manual on MSM8909
Change-Id: I07389620efc914d0ece52262edc2c35b498d5564
Pavlin Radoslavov [Fri, 14 Apr 2017 10:45:18 +0000 (03:45 -0700)]
Add missing NULL pointer assignment after fixed_queue_free and alarm_free
Bug:
37285767
Test: Code compilation
Change-Id: I53f759ea477079b0b6aed4bcbeefb645886263d6
Pavlin Radoslavov [Thu, 13 Apr 2017 21:33:30 +0000 (14:33 -0700)]
Fix a race condition during HCI module shutdown
If an HCI event (e.g., incoming event) happens during
HCI module shutdown, and the processing of that event
calls update_command_response_timer() right after
"alarm_free(command_response_timer)" in the beginning
of hci_module_shut_down(), then update_command_response_timer()
will try to schedule an alarm on command_response_timer that is NULL.
Test: Enable/disable Bluetooth, added unit tests
Bug:
37241256
Change-Id: I7fd58446caedc135e906953644201f88b5df32bb
Andre Eisenbach [Thu, 13 Apr 2017 21:49:36 +0000 (14:49 -0700)]
Do not remove device security record on LMP timeout
If an LMP timeout is encountered in the middle of authentication, the
link key is removed from the controller (but not from NVRAM). This can
result in a follow up connction triggering a LINK_KEY_MISSING reply,
which in turn can cause a remote device to initiate pairing which will
then finally remove the link key stored in NVRAM as well.
This change prevents the link key from being removed from the Bluetooth
controller in case of a timeout during link authentication.
Bug:
36798442
Test: manual
Change-Id: Ic89a16b45756e3d40b2e374c645c8f245f6ce3fc
Hemant Gupta [Thu, 13 Apr 2017 14:34:36 +0000 (20:04 +0530)]
AVRCP TG: Get Item Attribute command not working
Usecase:
1) Connect from carkit supporting AVRCP 1.4/1.5 CT to DUT
2) Issue get item attribute command with valid attribute list.
Expected behaviour:
Get item attribute command succeeds and returns the requested
attributes of particular item
Observed result:
Get Item attribute command fails with BAD Param Error
Root Cause:
Wrong structure from tAVRC_COMMAND was being passed to fill_attribute_id_array
which was leading to error being returned.
Fix:
Use get_attrs of type tAVRC_GET_ATTRS_CMD instead of get_elem_attrs of type
tAVRC_GET_ELEM_ATTRS_CMD when remote device requests for get item attributes.
Test: Checked that now bad param error is not returned in response for
get item attribute command from remote device.
Bug:
37302234
Change-Id: I9245f726f37ffd666d143d2232dac868a2cc3268
Pavlin Radoslavov [Wed, 5 Apr 2017 23:38:42 +0000 (16:38 -0700)]
Reduce the audio A2DP HAL output audio stream buffer size
Reduce the audio A2DP HAL output audio stream buffer size
(per constant AUDIO_STREAM_OUTPUT_BUFFER_PERIODS) from 4 to 2.
After the change, the output buffer size is double the buffer period.
Bug:
35849921
Test: A2DP streaming with various codec settings. Testplans/83305.
Change-Id: I2a15d468e748a03b481bf2117903ab06cddd02a3
Treehugger Robot [Tue, 11 Apr 2017 20:09:18 +0000 (20:09 +0000)]
Merge "HFP: Disable BTRH feature"
liuchao [Tue, 11 Apr 2017 12:41:29 +0000 (20:41 +0800)]
Fix log record after return
Put log before the returned BUSY
Test: mm -j8
Change-Id: Ic3fb15a35adac363519cabecfcf8a2d3da60107c
Yoshiharu Kurita [Wed, 25 Nov 2015 09:00:30 +0000 (18:00 +0900)]
HFP: Disable BTRH feature
Fluoride does not notify application layer upon AT+BTRH, and always
sends error response (BTRH is not supported) to remote device.
That is, Fluoride does not support BTRH feature.
But BTRH is enabled by default, so OK is sent to remote device by mistake
before the error response is sent. This makes some carkits unstable.
Bug:
29587048
Change-Id: If1aa32291491982851ecd480c4ba8390f39a27a2
Jack He [Mon, 10 Apr 2017 22:47:54 +0000 (22:47 +0000)]
Merge "Add support for inband ringing feature"
Pavlin Radoslavov [Thu, 6 Apr 2017 22:13:16 +0000 (15:13 -0700)]
Add A2DP codec-specific information to dumpsys output
Now we print the following information:
* Current codec name
* Info for each supported codec:
- Priority
- Encoder interval (ms)
- Codec Config: Sampling rate, Bits per sample, Channel mode (MONO/STEREO)
- Selectable codec configuration
- Codec's local capability
- Packet counts (expected/dropped)
- PCM read counts (expected/actual)
- PCM read bytes (expected/actual)
* LDAC codec-specific info:
- LDAC quality mode: HIGH/MID/LOW/ABR
- LDAC saved transmit queue length [used in ABR mode]
* SBC codec-specific info:
- Frames counts (expected/dropped)
Sample of the new format is below:
---
A2DP Codecs State:
Current Codec: LDAC
A2DP LDAC State:
Priority:
1000000
Encoder interval (ms): 20
Config: Rate=96000 Bits=32 Mode=STEREO
Selectable: Rate=44100|48000|88200|96000 Bits=16|24|32 Mode=MONO|STEREO
Local capability: Rate=44100|48000|88200|96000 Bits=16|24|32 Mode=MONO|STEREO
Packet counts (expected/dropped) : 596 / 161
PCM read counts (expected/actual) : 2488 / 2488
PCM read bytes (expected/actual) :
2547712 /
2547712
LDAC quality mode : ABR
LDAC saved transmit queue length : 0
A2DP aptX-HD State:
Priority: 4001
Encoder interval (ms): 0
Config: Invalid
Selectable: Invalid
Local capability: Rate=44100|48000 Bits=24 Mode=STEREO
Packet counts (expected/dropped) : 0 / 0
PCM read counts (expected/actual) : 0 / 0
PCM read bytes (expected/actual) : 0 / 0
A2DP aptX State:
Priority: 3001
Encoder interval (ms): 0
Config: Rate=44100 Bits=16 Mode=STEREO
Selectable: Rate=44100|48000 Bits=16 Mode=STEREO
Local capability: Rate=44100|48000 Bits=16 Mode=STEREO
Packet counts (expected/dropped) : 0 / 0
PCM read counts (expected/actual) : 0 / 0
PCM read bytes (expected/actual) : 0 / 0
A2DP AAC State:
Priority: 2001
Encoder interval (ms): 20
Config: Rate=44100 Bits=16 Mode=STEREO
Selectable: Rate=44100|48000 Bits=16 Mode=STEREO
Local capability: Rate=44100|48000|88200|96000 Bits=16 Mode=STEREO
Packet counts (expected/dropped) : 0 / 0
PCM read counts (expected/actual) : 0 / 0
PCM read bytes (expected/actual) : 0 / 0
A2DP SBC State:
Priority: 1001
Encoder interval (ms): 20
Config: Rate=44100 Bits=16 Mode=STEREO
Selectable: Rate=44100 Bits=16 Mode=STEREO
Local capability: Rate=44100 Bits=16 Mode=STEREO
Packet counts (expected/dropped) : 580 / 0
PCM read counts (expected/actual) : 2900 / 2900
PCM read bytes (expected/actual) :
1484800 /
1484800
Frames counts (expected/dropped) : 3724 / 0
---
Bug:
36567128
Test: Stream A2DP and "adb shell dumpsys bluetooth_manager"
Change-Id: Idd86005b842a4e569b7df91b8bbaf0632ed7f7c9
Jakub Pawlowski [Mon, 10 Apr 2017 20:00:27 +0000 (13:00 -0700)]
Build fix for BLE_PRIVACY_SPT == FALSE
Bug:
30622771
Test: manual
Change-Id: I9a418b8c0477ac50ec2a81e318895c2788e5ceec
Jack He [Fri, 3 Feb 2017 01:42:40 +0000 (17:42 -0800)]
Add support for inband ringing feature
* Change HFP init API so that the HFP feature bit field depends on
whether in-band ringing is supported on the device
* Feature disabled by default unless system property enables it
Bug:
19171297
Test: mm -j 40, HFP regression test, testplans/82144
Change-Id: Ib8ba28ac6e70eb23b2a2ad11c5805793911a4e43
Treehugger Robot [Mon, 10 Apr 2017 19:32:29 +0000 (19:32 +0000)]
Merge "AVRC: Configure absolute volume to false if remove device not supprot it"
Tsuyoshi Kamata [Tue, 7 Mar 2017 06:46:34 +0000 (15:46 +0900)]
AVRC: Configure absolute volume to false if remove device not supprot it
Some AVRCP(ver>1.4) devices don't support absolute volume, when connected
to such device, volume control doesn't work properly on phone.
This patch fix the problem as bellow:
- check category of remote device
when add absolute volume feature flag.
- remove absolute volume feature flag
if remote device responses REJECT or NOT_IMPLEMENT.
Bug:
33441894
Change-Id: Icfd6f61699490efd937fa6d2383f333eb0f0144a
Jakub Pawlowski [Tue, 4 Apr 2017 11:08:19 +0000 (04:08 -0700)]
Advertising manager improvements
* Keep track wether advertiser is enabled.
* Make sure that random address for connectable advertisers is updated
when advertising is disabled, as per ESR11-E7716.
* Make sure that the local variable holding the address is properly
updated after the address is pushed to the controller.
* Use "LE Remove Advertising Set" command to free advertiser after use.
Bug:
35935853
Bug:
30622771
Test: manual
Change-Id: I1415f7272dd99e5e81ce1e2b7ef2bf98f7229cf9
Jakub Pawlowski [Mon, 10 Apr 2017 09:19:29 +0000 (02:19 -0700)]
Linux build fix
Test: manual
Change-Id: I5c86e96b9bb1cee5b535ea1fa6ba0b6d078a9b09
Jakub Pawlowski [Fri, 7 Apr 2017 13:19:50 +0000 (06:19 -0700)]
Use device privacy mode as default
This change configures device privacy mode for each
remote device added to the resolving list.
Before exercising the privacy command it confirms
whether the set privacy HCI command is supported.
This patch is based on CAF patch by niarora@codeaurora.org
36fa3c528d2ae58e0b3f969665e3d25986dcdbaa
Test: manual
Bug:
35935853
Change-Id: I839045ccc3ddb73dc9c0cbe05d87c25dae9b9236
Jakub Pawlowski [Fri, 7 Apr 2017 12:50:16 +0000 (05:50 -0700)]
ESR11-E7716: Disable scans while setting local RPA
This change is required to disable any ongoing classic
advertisement or any scan before setting the RPA for the
DUT, and reenable them after the Set RPA command.
If a direct connection is ongoing, the RPA is not set.
A background connection is suspended and resumed for
sending the "Set RPA" HCI command.
This patch is based on CAF patch by niarora@codeaurora.org
690c2db21f650f74c202fd380cca4ca74cbdf83c
Test: manual
Bug:
35935853
Change-Id: Ifbc90d0c52c8f1fa627ac80c20a69149e89cb794
Jakub Pawlowski [Mon, 20 Mar 2017 22:38:56 +0000 (15:38 -0700)]
Support for H7 function for key derivation
This change sets bit 5 of the auth req to 1 to display
the support for H7 function, for key derivation.
Also, it adds the implementation of the h7 function as
defined in the spec (ERRATA E7301]
H7 is used if both host and remote devices exhibit
their support for H7 function in the auth request,
else the key derivation falls back to the H6
implementation.
The method is similar for derivation from either
transports with the only difference being in the first
byte of the SAL used in h7.
This patch is based on CAF patch by niarora@codeaurora.org
70668ad34ff15d0a53aea612d3c488fa575176ca
Test: manual
Bug:
35935853
Change-Id: I2fa29b2f3d2b3ac007b2f5f024871f81220237d8
Pavlin Radoslavov [Wed, 5 Apr 2017 23:18:26 +0000 (16:18 -0700)]
Create unit test framework for audio_a2dp_hw
Create unit test framework for audio_a2dp_hw and implement a unit test
for function audio_a2dp_hw_stream_compute_buffer_size()
Also:
* Remove obsolete check for mixer unit size inside out_get_buffer_size()
* Reorganize the file structure inside directory audio_a2dp_hw/ :
- Moved the source code files *.cc to audio_a2dp_hw/src/
- Moved the header file(s) *.h to audio_a2dp_hw/include/
- The unit test file(s) are stored in audio_a2dp_hw/test/
Bug:
35849921
Test: This is the unit test. Code compilation and unit test succeed
Change-Id: I3dcc508cb6799462b7103cb2ee452b4399843899
Jakub Pawlowski [Thu, 6 Apr 2017 13:59:20 +0000 (06:59 -0700)]
Fix "LE Read Maximum Advertising Data Length" response parsing
The value is uint16_t, not uint8_t
Bug:
30622771
Test: manual
Change-Id: I93e8687fa74cb0f5877f9921a860b2ba83106691
Treehugger Robot [Wed, 5 Apr 2017 23:36:40 +0000 (23:36 +0000)]
Merge "Add default AVRCP version to prevent confusing log message"
Dan Shi [Wed, 5 Apr 2017 16:29:14 +0000 (16:29 +0000)]
Merge "Add test config to net_test_hci"
Dan Shi [Wed, 5 Apr 2017 16:28:39 +0000 (16:28 +0000)]
Merge "Add test config to net_test_device"
Treehugger Robot [Wed, 5 Apr 2017 08:14:16 +0000 (08:14 +0000)]
Merge "Add test config to net_test_btcore"
Dan Shi [Sat, 1 Apr 2017 00:12:46 +0000 (17:12 -0700)]
Add test config to net_test_hci
This change allows TradeFederation to run the test directly.
Refer to b/
35882476 for design and discussion of this change.
Bug:
35882476
Test: local test
tradefed.sh run template/local --template:map test=net_test_hci
Change-Id: Ifbac48ad8b425f43e6c919696cc72d5997e614db
Treehugger Robot [Wed, 5 Apr 2017 02:30:35 +0000 (02:30 +0000)]
Merge "Compute the audio data buffer size based on stream characteristics"
Treehugger Robot [Wed, 5 Apr 2017 02:07:44 +0000 (02:07 +0000)]
Merge "Add test config to net_test_bluetooth"
Pavlin Radoslavov [Tue, 4 Apr 2017 18:31:29 +0000 (11:31 -0700)]
Compute the audio data buffer size based on stream characteristics
Use the audio data stream characteristics (sample rate, bits per sample,
channel mode) to compute the audio stream output buffer size from
the Audio A2DP HAL to the Bluetooth stack.
Previously, the buffer size was pre-computed based on the original
(44.1kHz, 16 bits per sample, Stereo) PCM audio stream used by SBC.
NOTE: We cannot change the buffer size on the receiver side (Bluetooth),
because SO_RCVBUF option does not have effect for Domain Sockets.
Also, removed uipc_linux.h header file, because it is not used.
Test: A2DP streaming and switching the codecs, sample rate, bits per sample
Bug:
35849921
Change-Id: Ib6772f7564442ac18a02876a5aa5e3208e5aade1
Dan Shi [Thu, 30 Mar 2017 20:41:12 +0000 (13:41 -0700)]
Add test config to net_test_bluetooth
This change allows TradeFederation to run the test directly.
Refer to b/
35882476 for design and discussion of this change.
Bug:
35882476
Test: local test
Change-Id: I45100b2be22906f2b631d3377749b86f8f1b6ecd
Myles Watson [Tue, 7 Mar 2017 13:00:04 +0000 (05:00 -0800)]
Finish conversion to Android.bp
Bug:
35651902,
35672576,
36810308
Test: build, Android Cloud Bluetooth net_test_bluetooth
Change-Id: Ie99966d610ea35ab8caf8a084d92c43618e90b94
Myles Watson [Tue, 7 Mar 2017 12:28:51 +0000 (04:28 -0800)]
test: Add a simulated Bluetooth HAL implementation
Bug:
35672576
Test: Angler Bluetooth starts/stops with test HAL
Android Cloud net_test_bluetooth tests pass
Change-Id: I104e0dd3946f0efff9709e05c056bee3538394f7
Andy Hung [Mon, 3 Apr 2017 18:55:30 +0000 (18:55 +0000)]
audio_a2dp_hw: add device lock
am:
2328b5754d
Change-Id: Ia27886aed87b2e7076d92f68b303d34cfd22df66
Andy Hung [Thu, 30 Mar 2017 23:28:46 +0000 (16:28 -0700)]
audio_a2dp_hw: add device lock
Prevent conflict between closing a stream (adev_close_output_stream)
and setting parameters (adev_set_parameters).
Test: Manual - Bluetooth A2DP streaming and changing codec parameters
Bug:
36723276
Change-Id: Id8b9fcdf594e3d5fde139719d324420468c4c0aa
(cherry picked from commit
b1a900fcc9903f0988b6f8c1a470b9c718aedf1f)
Dan Shi [Sun, 2 Apr 2017 05:52:24 +0000 (05:52 +0000)]
Merge "Add test config to bluetoothtbd_test"
am:
615b7cdd98
Change-Id: If1f5c7a9aee317a14d26d2f3d384d0336aee6b97
Dan Shi [Sun, 2 Apr 2017 05:49:24 +0000 (05:49 +0000)]
Merge "Add test config to net_test_osi"
am:
4f9e3c6376
Change-Id: Iffa7f3862d25d09735cd69bd891554efc85f5dc4
Treehugger Robot [Sun, 2 Apr 2017 05:48:36 +0000 (05:48 +0000)]
Merge "Add test config to bluetoothtbd_test"
Treehugger Robot [Sun, 2 Apr 2017 05:46:57 +0000 (05:46 +0000)]
Merge "Add test config to net_test_osi"
Jakub Pawlowski [Sat, 1 Apr 2017 04:42:53 +0000 (04:42 +0000)]
Bluetooth 5 advertising duration refactoring (1/4)
am:
5204c62f13
Change-Id: I5aa32aae1934ef4116f2bcf6160a075252aa335d
Jakub Pawlowski [Fri, 31 Mar 2017 03:41:02 +0000 (20:41 -0700)]
Bluetooth 5 advertising duration refactoring (1/4)
Expose both duration and maximum extended advertising events to limit
advertising time.
Test: manual
Bug:
30622771
Change-Id: I4475c322347899946b39e65026d8009e02c93759
Bailey Forrest [Sat, 1 Apr 2017 00:32:46 +0000 (00:32 +0000)]
AVRCP CT: Only call handle_rc_features if target registered
am:
7745e29576
Change-Id: I68e25e8a3bc03fe3b739e9ca62df82655a2cf1e0
Dan Shi [Sat, 1 Apr 2017 00:13:12 +0000 (17:13 -0700)]
Add test config to bluetoothtbd_test
This change allows TradeFederation to run the test directly.
Refer to b/
35882476 for design and discussion of this change.
Bug:
35882476
Test: local test
tradefed.sh run template/local --template:map test=bluetoothtbd_test
Change-Id: I6a243fc0245e4c3aa0fc51f3ded40c63492e31e8
Dan Shi [Sat, 1 Apr 2017 00:12:55 +0000 (17:12 -0700)]
Add test config to net_test_btcore
This change allows TradeFederation to run the test directly.
Refer to b/
35882476 for design and discussion of this change.
Bug:
35882476
Test: local test
tradefed.sh run template/local --template:map test=net_test_btcore
Change-Id: I336af9f5360540cec5fb406d38c90706891af5be
Dan Shi [Sat, 1 Apr 2017 00:12:37 +0000 (17:12 -0700)]
Add test config to net_test_osi
This change allows TradeFederation to run the test directly.
Refer to b/
35882476 for design and discussion of this change.
Bug:
35882476
Test: local test
tradefed.sh run template/local --template:map test=net_test_osi
Change-Id: I5e26b7a9047e44aeeed12c4bcfce1f998183b597
Dan Shi [Sat, 1 Apr 2017 00:12:28 +0000 (17:12 -0700)]
Add test config to net_test_device
This change allows TradeFederation to run the test directly.
Refer to b/
35882476 for design and discussion of this change.
Bug:
35882476
Test: local test
tradefed.sh run template/local --template:map test=net_test_device
Change-Id: Ie3e287aba9cd38cbfceef36885c863ba2d34b31a
Bailey Forrest [Fri, 31 Mar 2017 04:43:28 +0000 (21:43 -0700)]
AVRCP CT: Only call handle_rc_features if target registered
If target is not registered, handle_rc_features would clear feature
flags before handle_rc_ctrl_features can use them.
Bug: b/
35807779
Test: AVRCP controller track info works on iOS.
Change-Id: Iee781f2fc926a053ba9cf30089d3a49e56b94539
Ajay Panicker [Fri, 31 Mar 2017 16:53:12 +0000 (09:53 -0700)]
Add default AVRCP version to prevent confusing log message
Test: Log message shows more info
Change-Id: Ic042d1cf1489e391fe6e9cc3d6239acb79917b01