OSDN Git Service
Sharvil Nanavati [Tue, 15 Mar 2016 20:13:45 +0000 (13:13 -0700)]
Don't send AT+BCC if local device doesn't support codec negotiation.
The current code only checked if the peer supported codec negotiation
before sending AT+BCC. But if codec negotation is disabled on the
local device, we should definitely not send AT+BCC.
Bug:
27213013
Change-Id: Id372a32a61a3d96d5c093bc50594ef0b8c2eff2e
Navin Kochar [Wed, 9 Mar 2016 17:41:53 +0000 (23:11 +0530)]
Add LE L2CAP Connection Oriented Channel
This implementation for LE L2CAP Connection Oriented Channel (a Bluetooth
Core Spec 4.1 feature) has been tested on the following formal and informal
IOP events conducted by BT SIG Sport and Fitness Working Group.
* Informal IOP – Tokyo 2014
* UPF 49 – Berlin 2014
* Formal IOP – Tokyo 2014
* Formal IOP – Santa Clara 2015
Bug:
27852645
Change-Id: Ia6de62f9321a78b98930629f65078884157a9c0d
Signed-off-by: Navin Kochar <navin.kochar@intel.com>
Srinu Jella [Tue, 15 Mar 2016 11:06:19 +0000 (16:36 +0530)]
Allocate sufficient memory for FCS
Use Case: Hit LeakCanary detection during HDP
Failure: Crash while running LeakCanary detection.
Root cause: Did not have sufficient memory for data frame
which lead to crash.
Fix: Allocating sufficient memory for the data frame
which includes FCS in the header field.
Bug:
27852645
Change-Id: I3bb862f29ecc854423796dc89820ba21c5db6050
Marie Janssen [Thu, 10 Mar 2016 19:27:53 +0000 (11:27 -0800)]
osi: add osi_rand()
Provide a replacement for rand() which has a better random source.
Change-Id: I38a8c74d86b89ec160b43b0f648f53b463be89bb
Pavlin Radoslavov [Mon, 14 Mar 2016 16:45:24 +0000 (09:45 -0700)]
Removed unused function bta_sys_vs_hdl()
Change-Id: Iaf199d418aafc0b518df2f7febfa1c9e29f1fa42
Pavlin Radoslavov [Mon, 14 Mar 2016 17:06:45 +0000 (10:06 -0700)]
Removed duplicate (re)define of BTA_DM_SDP_DB_SIZE
Removed conditional duplicate re-define of BTA_DM_SDP_DB_SIZE.
BTA_DM_SDP_DB_SIZE has been already (conditionally) defined to 8000
in file include/bt_target.h
The conditional re-define of BTA_DM_SDP_DB_SIZE to a smaller
value (250) in file bta/dm/bta_dm_int.h should be removed, because
it is confusing and error-prone.
Change-Id: Id10a45562c7c57fd0a9131ef50b7b7a5c2801ec5
Jakub Pawlowski [Thu, 10 Mar 2016 17:25:48 +0000 (09:25 -0800)]
Linux vendor driver linkage fixes
Linux driver depends on osi, so it must be linked with it.
It also must export bt_vendor_interface_t, and named properly,
otherwise it is not being recognized as vendor library.
Bug:
27589244
Change-Id: Ib6817b11e4226f2e289ff0d521daca059ca9aca6
Jakub Pawlowski [Wed, 9 Mar 2016 19:22:00 +0000 (11:22 -0800)]
Add missing log tag
Change-Id: Icae6cf63de8d298fb12451887594abe24b026c77
venkata Jagadeesh [Tue, 15 Dec 2015 07:30:01 +0000 (13:00 +0530)]
SDP: Restrict attribute length to SDP_MAX_ATTR_LEN
Use case:
Bluetooth crash during the SNS testing.
Root Cause:
In sdpu_build_partial_attrib_entry there is no length check, it can
exceed the maximum allowable value and lead to a crash in memcpy.
Fix:
Restrict remaining attribute length to SDP_MAX_ATTR_LEN
in sdpu_build_partial_attrib_entry.
Bug:
27852645
Change-Id: I5bde6868b82e50b3c09cf94277dabb4862f0a2a8
Marie Janssen [Fri, 22 Jan 2016 02:45:53 +0000 (18:45 -0800)]
bluetooth-cli: add support for --exec
Adds the --exec and -e arguments, which execute commands when the
cli starts.
This also adds support for chaining commands at the command line by
separating them with ';' characters.
Change-Id: Ic2bf8a908fbb7fb4cf775810754571fa96d75e87
Subramanian Srinivasan [Thu, 23 Jul 2015 22:05:05 +0000 (15:05 -0700)]
Update device type in NVRAM correctly during inquiry
If the NVRAM device type for a device is not dual mode and the inquiry
result is received for BLE or BR/EDR transport, then this patch updates
the NVRAM device type to dual mode.
Bug:
27852645
Change-Id: I688e7c5e3bd8d844288d095cb97c2e55ddf652c6
Jacky Cheung [Fri, 4 Mar 2016 21:29:02 +0000 (13:29 -0800)]
Default missing DevType and DevClass in NVRAM.
Missing DevType and DevClass in NVRAM were not properly set to a
default values previously.
Bug:
27852645
Change-Id: I79fbc333d7b6dda0fb795776b2dbe1e1e101352c
venkata Jagadeesh [Thu, 26 Nov 2015 08:44:00 +0000 (14:14 +0530)]
GATT: Initiate L2CAP disconnect only when the channel is open
Use case:
Crash found during L2CAP disconnect from faulty BLE APP.
Steps:
Run SNS testing.
Failure:
Crash during L2CAP disc.
Root cause:
Faulty BLE application triggering GATT disconnection
which internally triggering L2CAP disconnection without checking
proper state of channel.
Fix:
- Initiate L2CAP disconnect only when the channel is open
- Validate LCB during disconnection from upper layers
Bug:
27852645
Change-Id: Ic9d065f095feba659c861828732647e968c20db8
Jakub Pawlowski [Fri, 4 Mar 2016 21:20:05 +0000 (13:20 -0800)]
Remove btla-specific comments
Change-Id: I91a19b2cfbc96d7567e0e0914058619ea364c1d4
Matadeen Mishra [Mon, 1 Feb 2016 13:50:54 +0000 (19:20 +0530)]
Correcting sniff behaviour in multi-connection scenario
Use case: When multiple profiles are connected on same link and if any one of the
profiles deregisters with powermanager, powermanager will initiate a sniff when it
removes the timer for one profile, even if a timeout did not trigger for other profiles.
Steps:
1. Turn on BT
2. Pair with Mi band (Wearable device)
3. Pair with carkit
4. Turn off BT
5. Turn on BT
HF and A2DP connection should successful after BT on to carkit.
Failure: HF connection fails.
Root Cause: powermanager initiates a sniff when it removes the timer for one profile
Even if a timeout did not trigger for other profiles.
Fix: When multiple profiles connect on the same link and if any one profile
deregisters with powermanager, pm should stop the timer for that profile
and restart the other profiles timers.
Bug:
27852645
Change-Id: I8e215a9d868291976c70ff32b61145b4360a7f8f
Srinu Jella [Mon, 21 Sep 2015 06:30:48 +0000 (12:00 +0530)]
Cleanup L2CAP socket properly on close
Use case:
1. Sometimes pairing pop up occurs during Android beam
transfer though it is not required.
2. No OPP Tx request over OBEX if we cancel during file transfer.
Precondition
1. WIFI ON and conneted with AP.
Steps:
1. Pair and connect from DUT to remote.
2. Go to gallery and send a file.
3. Accept same file and stop it from remote during transfer.
4. Repeat step 2-4 10 times.
Failure:
OPP Tx should not fail.
Root cause:
Close request was not properly handled from BT-IF layer.
Fix:
1. Handled the close request properly from BT-IF layer
to close the socket variables and instruct the BTA layer
close from there as well.
2. Clean up L2CAP socket properly on closure to free
the entry registered with security manager to avoid
leak in security manager records.
Bug:
27852645
Change-Id: I4f5d6ac92317bcaee5f9285ba71d13eea84c737c
Balraj Selvaraj [Thu, 11 Feb 2016 08:16:02 +0000 (13:46 +0530)]
GAP Setting remove device pending status as FALSE
Use case: DUT deletes Link key and failed to initiate
authentication request after remote headset turned Off and ON
steps:
- Pair the DUT and HS. (Link Keys get established.)
- Now Switch OFF BT on DUT. (DUT still has the Link key of HS)
- Reset the paired devices memory in HS and keep HS in
pairing mode. (HS loses DUT's link key)
- Now switch ON BT on DUT. (DUT starts reconnection with HS,
but as HS lost DUT's key, PIN or KEY missing event will
come to host)
- DUT reconnects to HS (Using newly established link keys)
- Now power OFF and ON the HS.
- HS will try reconnection with DUT.
- While there is an incoming connection from HS to DUT,
host is giving negative link key reply always for the
multiple link key requests from HS.
- HS sends disconnection with "Authentication failure"
Failure: DUT should not delete Link key and DUT should
initiate Authenticatin request.
Root cause: pending status was not FALSE from security device
DB, which will causing Authentication Failure.
Fix: Setting the remove device pending status to FALSE from
security device DB, when the link key notification event
comes. Basically it will avoid deleting the device from
security device DB, Which is solving the reconnection
initated from remote when we remove the link key at
remote side.
Bug:
27852645
Change-Id: Ic164d8d5b5c2e0b9cc5f04f993047fb0a8e5d9a9
Srinu Jella [Tue, 16 Feb 2016 14:52:16 +0000 (20:22 +0530)]
Track TX empty event to manage sniff timer
Use case:
OPP TX while inquiry is in progress.
Steps:
1. Send any file from DUT to remote using BT.
2. Accept file on remote.
3. During file transfer, start inquiry on DUT and
observe behaviour.
Failure:
DUT sends sniff command in the middle of the transfer
though it is not required. eventually OPP Tx over
L2CAP file transfer fail.
Root Cause:
As per the current implementation, for tx it will
immediately starts idle timer without checking
for the completion status of tx.
Fix:
Handled the tx complete event from L2CAP properly
to start the idle timer to manage the sniff properly.
Bug:
27852645
Change-Id: I298075590042e82a2f33837f6df6af0b2fd8179a
Srinu Jella [Wed, 22 Jul 2015 12:00:32 +0000 (17:30 +0530)]
Read local supported codecs as part of boot sequence
Add support to read local supported codecs as part of
controller module initialization.
Also added an API from controller interface to get the
local supported codecs.
Bug:
27852645
Change-Id: I37a4ab9e6a20ed057ca794dbdd4f99c2a8c65a6e
Srinu Jella [Tue, 11 Aug 2015 13:46:52 +0000 (19:16 +0530)]
Added fd for monitoring when the channel is not congested
Use case:
Skips and Media Audio Loss are Observed During PAN Connection
Steps:
1. Launched Local Music and Media Audio was in Headset.
2. Paired and Connected to other Phone to DUT Over BT Tethering.
3. While Listening to Media Audio in DUT, Started Watching
Youtube in other phone.
4. Observed Below Observations During Some 30mins of PAN Connection.
Failure:
Skips and Media Audio Loss are Observed During PAN Connection
Root Cause:
socket monitor thread keeps polling for PAN fd, eventually
it will make the BTU thread also busy, inturn NOCP processing
gets delayed.
Fix:
Add PAN fd for monitoring only when L2CAP channel related to
PAN profile is not congested. It will break loop by checking the
congestion status to put the fd for polling.
Bug:
27852645
Change-Id: I2119c6c86d8e4798e516c512ad7aac7630b85a6a
Hemant Gupta [Fri, 11 Dec 2015 14:39:22 +0000 (20:09 +0530)]
HID: Handle collisions during incoming and outgoing connections
- This patch handles cases when incoming HID connection is in progress, and
there is an outgoing connection attempt from upper layers. This was leading
to a case when ougoing connection would fail as connection was already in
progress, which triggered cleanup of connection states, which was not proper
leading to issues in future connection attempts, as disconnection during
ongoing connection was not handled properly in existing code.
- Reset the incoming flags during open failure to prevent any possible issues
during further outgoing connections.
Bug:
27852645
Change-Id: I6fb0c6156482d2da41ca0d2d280091d73c27f292
Hemant Gupta [Fri, 4 Mar 2016 17:19:55 +0000 (22:49 +0530)]
HID: Reset outgoing connection retry to 1
Reduce the retry time from host to 1 from 3 to prevent collision scenarios
when remote also tries to connect which could lead to potential authentication
issues in SoC.
Bug:
27852645
Change-Id: I3b5db4a4c4aa985cb9c0537499ce608f9e5d5522
Hemant Gupta [Fri, 11 Dec 2015 10:17:45 +0000 (15:47 +0530)]
HID: Remove bond for device in case Virtual unplug is ongoing
Remove bond for remote device in case virtual unplug was initiated from
local device, and ACL got disconnected while processing the VUP request.
this can happen when aaplication is sending disconnect and remove bond
in quick succession. Without this fix it was observed that device was
getting disconnected, but was not getting unpaired even when user
tried to unpair from UI.
Bug:
27852645
Change-Id: Ife1fc99ed59b13daf0bcf0dce3e0a59c7d9e87d7
Matadeen Mishra [Wed, 3 Feb 2016 15:20:31 +0000 (20:50 +0530)]
Shorten local name in EIR data according to UTF encoding rules
Use case:
Test short name after setting the name with maximum length
Steps to reproduce:
1) Phone A: Rename bluetooth into a 60 character Chinese name
2) Phone B: Discover phone A.
3) The short name of phone A will display in phone B and the short
name cantains unrecognizable chars.
Root cause:
As Chinese characters are encoded in different
length in UTF, if shorten BT name in fixed length,
there will be unrecognized characters
Fix:
Shorten BT name according to UTF encoding rule and decrease
the length.
Bug:
27852645
Change-Id: I5f1e49c1b5d87d5e220538c90e297c50ccc790ff
Subramanian Srinivasan [Thu, 29 Oct 2015 00:05:22 +0000 (17:05 -0700)]
Use correct transport type for GATT client and server connections
Use correct transport type for GATT client and server connect
API calls. This change uses the transport used while calling
the connect frameworks API instead of relying on the NVRAM to
find the transport on which the connect call needs to be sent
to the BT stack.
Bug:
27852645
Change-Id: Idf5817b8980e848c6ebebf1e9a79dbce61d8cfc8
Satya Calloji [Wed, 2 Mar 2016 19:25:49 +0000 (11:25 -0800)]
Update OCF values per 0.96 spec
HCI command values are updated as per Google HCI
BLE requirements v0.96
Bug:
27069512
Change-Id: I30e0046c5d3198f0986e03baf697bad2be99c06e
Eri Kasamatsu [Tue, 9 Feb 2016 14:11:51 +0000 (15:11 +0100)]
OCF for LE Extended Set Scan Parameters Cmd is not correct
OCF for LE Extended Set Scan Paramaters Cmd is defined as 0x15A
in documentation but it is defined as 0x160 in stack.
This results in command failing due to unknown hci command error.
Bug:
27852645
Change-Id: Ia779164b7c03daa8053fb65e4fc8281235904031
Satish Kodishala [Thu, 25 Jun 2015 07:48:35 +0000 (13:18 +0530)]
Handle unknown codecs sent by HF
Use case:
1. Connect to headset supporting CVSD, mSBC and other codecs.
2. Verify if headset sending AT+BAC with supported codecs.
3. Check if SCO is established with mSBC codec.
Failure:
SCO is established with CVSD codec.
Root cause:
When parsing AT+BAC command, if unknown codec is received,
we are falling back to CVSD although mSBC is supported in HF.
Fix:
AT+BAC parsing function modified to return correct codecs
supported by HF when it encounters unknown codecs in arguments
of AT+BAC.
Bug:
27852645
Change-Id: I9ac7675c9d863e7362f85e3b7b8d9a42462bd5e9
Srinu Jella [Tue, 29 Dec 2015 08:00:19 +0000 (13:30 +0530)]
Avoid double-free on SDP search failure
Use case: BT transfer fails in Doze mode.
Pre-condition:
1. Device is in Doze mode.
2. Device is in Active state.
Steps to reproduce:
1. On test device and support device, turn on Bluetooth and keep test device in Bluetooth on screen.
2. Put device in Doze mode:
adb shell dumpsys battery unplug
adb shell dumpsys deviceidle step
3. From support device send pair request to test device.
4. Pair two devices.
5. Put test device in Doze mode again.
6. Share one picture from support device to test device by Bluetooth.
7. Accept Bluetooth file transferring request.
Failure: From DUT, BT transfer is failed.
Root cause: Free buffer is called twice for the SDP search failure case.
Fix: Added null check for p_sdp_db to avoid freeing same buffer
again on SDP search failure.
Bug:
27852645
Change-Id: Ic7776e842c52418c2b0fb6d6479233d01c709dc2
Andre Eisenbach [Fri, 4 Mar 2016 06:36:51 +0000 (22:36 -0800)]
Remove bluedroidtest
Use bluetooth-cli/bluetoothtbd instead.
Bug:
25369253
Change-Id: I485919dce4bf3229733c85e6a33c754b9cbd62fc
Sharvil Nanavati [Thu, 11 Jun 2015 06:20:24 +0000 (23:20 -0700)]
Delete unused function declarations from sdp_api.h.
Change-Id: I8db02d557fdfc138f2ec8de2b2d45049175fd999
Nitin Arora [Thu, 28 Jan 2016 01:07:55 +0000 (17:07 -0800)]
Avoid SMP process if another pairing is in progress
This change prevents the incoming pairing/security request
from a remote device when pairing with another remote has
been initiated by the host and has not yet begun.
The pairing request by the second remote will be rejected
Bug:
22525598
Change-Id: I676c85af39d5418c699161ad11eee5951f9203d7
Srinu Jella [Tue, 25 Aug 2015 13:12:32 +0000 (18:42 +0530)]
Increase the number of security slots for other new profiles
Use case: MAP Sanity Test fail in multi-profile scenario.
Steps:
1. Connect to Instance 1 - Email Sanity Test Case
2. Connect to Instance 0&1 - Email & SMS Sanity Test Case
Failure: MAP sanity fail in multi-profile scenario.
Root Cause: some profile coonnection may fail in multi
profile scenario due to non availability of security id.
Fix: Increased the security slots to 75 to accomadate new
profiles introduced.
Bug:
27852645
Change-Id: Ic7c0268aea654cba2dee0c323ca0342e71ebc577
Srinu Jella [Fri, 22 Jan 2016 10:04:16 +0000 (15:34 +0530)]
Correct the max SDU length used in BTIF layer
Use case: OPP Tx over L2CAP are failing due to invalid PUT packet from DUT.
Steps:
1. Make the Remote device setup with OPP server which supports MTU
of more than 8k.
2. Send file from DUT to Remote device.
3. Transfer always fails.
Failure: OPP Tx over L2CAP file transfer fail. It will always fail
if remote supports more than 8076 as the MTU.
Root Cause: Max SDU of L2CAP layer will be communicated to the upper
layers, and same length of SDU being sent from upper layer
to BTIF layer, but because of change in the max SDU of
BTIF, it will receive less bytes than expected will lead
to form incomplete PUT request.
Fix: Correct the max SDU length used from BTIF layer to be in
sync with max SDU calculation from L2CAP layer.
Bug:
27852645
Change-Id: Ie037c85e798bebf6a71c56488aae37455725028c
Srinu Jella [Sun, 13 Sep 2015 12:54:52 +0000 (18:24 +0530)]
Reconstruct new packet to accomodate extra header length
Use case: Bluetooth process crash problem in the middle of RFCOMM
test cases due to buffer corruption detected while freeing it.
Root Cause: RFCOMM layer trying to reuse the same packet to send
to the lower layer but it will fail due to strick buffer
corruption checks.
Failure: Bluetooth process crash.
Fix: created a new packet to accomadate new header
and copied the same payload to the new packet.
Bug:
27852645
Change-Id: I5d12b76229d11480f7f37bbcd3561de97c80a0c1
Srinu Jella [Tue, 1 Mar 2016 11:29:35 +0000 (16:59 +0530)]
Enable debug logs for bluetooth process threads, modules
Use case: Debug enhancement for bluetooth threads,
modules
- Most of the bluetooth process threads,modules uses
APIs provided from the OSI layer.
- This patch enables the debug logs to know when the
thread, module is created and exited.
- This would be useful while debugging the ON/OFF,
ANR issues.
Bug:
27852645
Change-Id: I17f4f583d2c431725a8c44c586b29980b4bdab3f
Srinu Jella [Tue, 1 Mar 2016 14:15:41 +0000 (19:45 +0530)]
Corrected the stream for error checking
Replace event_stream with acl_stream
Bug:
27852645
Change-Id: I9ceb75ee05bad5d2ef1af819b3930216cc750507
Ayan Ghosh [Tue, 3 Dec 2013 09:22:22 +0000 (14:52 +0530)]
Peer support of Absolute Volume to be updated only if device supports A2DP
Peer support of absolute Volume feature should be updated to Audio
frameworks only for device which supports A2DP Sink and AVRCP Absolute
Volume TG roles together.
Audio manager need not be updated for AVRCP only peer devices as
that would cause sudden rise in ongoing stream volume when avrcp only
device connects, if it is set to some lower value with other device
connected for A2DP.
Bug:
27852645
Change-Id: I75509d0b0fd1b06fa08390940a327dd2887d7562
Ayan Ghosh [Fri, 26 Dec 2014 12:48:28 +0000 (18:18 +0530)]
Limit Max Bitpool value to SPEC recommended one
Preferred bipool for 44.1 KHz sampling rate for SBC
codec is considered as 53. Hence limit Max Bitpool
value to 53 in setconfig request to have it same as
the one DUT sets in getConfig response and in encoding
pcm packets.
few BMW series of CKs does not connect unless DUT
configures max bitpool in setconfig request to 53.
Bug:
27852645
Change-Id: Ie7ca504c23f6bae8fda997cdeb3e0ff0733defb0
Ayan Ghosh [Wed, 7 Aug 2013 14:35:29 +0000 (20:05 +0530)]
Allow Carkit to trigger play immediately after call
Removing check in stack where AVRCP Play and Pause commands
are being dropped if carkit initiates play or pause within
six seconds.
This addresses the scenario where JCI-Mazda CK pauses the
streaming by initiating Avrcp Pause right before making call
and can not resume the streaming by sending Avrcp Play right
after call ends.
Bug:
27852645
Change-Id: Ibb04223de746f528b356e78bd65130d3fd526a44
Satish Kodishala [Thu, 27 Aug 2015 05:21:45 +0000 (10:51 +0530)]
Initialize sco codecs supported with CVSD
Usecase:
1. Connect headset/carkit supporting codec negotiation
but does not send AT+BAC with available codecs.
2. Make a call and create SCO connection.
3. Transfer audio to AG from headset/carkit.
4. Transfer audio back to carkit.
Failure:
AG will not establish SCO connection with remote.
Rootcause:
We initialize codecs supported by remote as 0 and update
it with codecs received as part of AT+BAC. When AG sends
+BCS to start codec negotiation, it received AT+BCS=1 from
remote. Since 1 is not in the list of remote supported codecs
(0), AG will not create SCO connection in step#4.
Fix:
Initialize sco codecs supported by remote with mandatory
codec, CVSD.
Bug:
27852645
Change-Id: Ibe0e1a7bd3e59e8618568d320acfbde88f3fc11e
Satish Kodishala [Tue, 15 Sep 2015 14:16:41 +0000 (19:46 +0530)]
Ignore empty optional parameters in CLCC response
Usecase:
Pair and connect with AG that sends the optional parameters
in CLCC response.
Failure:
When optional parameters in CLCC response from AG is empty,
HF client is not parsing the empty optional parameters.
User may not be see the phone number on UI properly on
hf client device.
Root cause:
AGs like iPhone sends optional parameters in the CLCC response.
HF client is returning NULL when it encounters empty optional parameters.
Fix:
Ignore empty optional parameters in CLCC Response from AG.
Bug:
27852645
Change-Id: Ia90986ccc4c9c9f1a6fb3a914bc1df8b0a75ba0f
Satish Kodishala [Thu, 25 Jun 2015 08:53:17 +0000 (14:23 +0530)]
Clear remote BD address if SDP search fails
Use case:
1. Enable multi hf.
2. Pair and connect to a headset.
3. Turn off headset and try connecting to headset from AG.
4. After the connection fails, turn on headset.
5. Make sure headset initiates HF connection to AG.
6. Make MO/MT call, switch from headset to AG, vice versa using headset.
Failure:
When call is transferred from AG to headset, headset initiated
SCO connection request is rejected by AG.
Root cause:
For outgoing connection in step 3, SDP search fails. BD address of
remote headset is stored in scb[0]. BD address of headset with which
we tried to connect is not cleared in scb[0].
When incoming HF connection request is accepted in step 5, BD address
of headset is stored in scb[1]. Now, BD address of the same headset is
stored in both scb[0], scb[1].
When SCO connection request is received from headset, we get scb
information using BD address. However, since BD address in scb[0]
is not cleared, we end up selecting scb[0] for which there is no
headset connected. This makes us think that remote is initiating
SCO connection without SLC and we reject the SCO connection.
Fix:
Clear the BD address of remote when SDP search fails.
Bug:
27852645
Change-Id: I21a0b83fcd47fed91e28fe27bdfd6d541b6a527c
Satish Kodishala [Tue, 2 Feb 2016 11:52:15 +0000 (17:22 +0530)]
Do not reset Sniff Subrating parameters on SCO link
Usecase:
1. Pair and connect to BT headset
2. Pair and connect to a watch
3. Pair and connect a LE device
4. Make a call and reset BT on phone
5. Verify devices connect back and SCO is established
Failure:
After BT reset, devices connect and SCO is up. After some time,
SCO and ACL link disconnects due to connection timeout.
Rootcause:
When Headset is connected during active call, HFP is connected
first. Due to active call, SCO is also established. When SCO is
established, we disable sniff subrating(SSR). When A2DP is
connected after SCO connection, it enables SSR. This enabling
of SSR is causing ACL disconnect.
Fix:
When there is new profile connection for the same device which
has SCO, we should not enable SSR. It should be enabled only
when there is no SCO.
Bug:
27852645
Change-Id: I7815dba90851366ecc0523447c2394631c10ede1
Mallikarjuna GB [Tue, 23 Jun 2015 09:49:29 +0000 (15:19 +0530)]
Update the sniff policy when SCO is active
Use case:
1. Connect BT headset.
2. Make an outgoing call or receive a call on BT headset.
3. Check if sniff parameters are taking affect when SCO is active.
Failure:
Sniff parameters when SCO is active are not taking affect.
Root cause:
SCO link was not checked when updating power manager(PM)
about idle or busy states.
Fix:
During AG tx/rx activity, update PM based on SCO state.
Bug:
27852645
Change-Id: I4c09406395998bacf13471a273402a60f3b77f89
Jakub Pawlowski [Fri, 26 Feb 2016 00:13:31 +0000 (16:13 -0800)]
Fix broken formatting in README.md
Markdown formatter at:
https://android.googlesource.com/platform/system/bt/
interpret some things differently than other formatters.
This patch fixes badly formatted parts.
Change-Id: Ibe8a9c159d9d47396ef073f6555f06720bc3e661
Jakub Pawlowski [Thu, 25 Feb 2016 20:16:31 +0000 (12:16 -0800)]
Build on linux: final changes and instructions.
After this patch anyone should be able to build Fluoride on Linux.
Bug:
27324453
Change-Id: I7776be12591b8fed6d38fc0375019606d311ddb9
Jakub Pawlowski [Wed, 24 Feb 2016 18:39:46 +0000 (10:39 -0800)]
Move properties get/set code to osi
Currently we use Android-specific property_get and property_set
through the code. This patch adds osi_property_get and osi_property_set
that is encapsulating all external dependencies. This is step further
for errorless compilation on linux.
Bug:
27324453
Change-Id: I97c34344617a5855b683328bcd196a21a2fae6f9
Jakub Pawlowski [Wed, 24 Feb 2016 23:40:27 +0000 (15:40 -0800)]
Add missing file to BUILD.gn
This patch adds missing osi_module.c file. Without it Fluoride
on Linux compiles, but fails to run.
Bug:
27324453
Change-Id: I08eb6bc55149d1b70580643fdf131b197c027caf
Jakub Pawlowski [Tue, 23 Feb 2016 02:04:24 +0000 (18:04 -0800)]
Update build files for Fluoride on Linux
uprev build/secondary/third_party/**/BUILD.gn"
Other BUILD.gn files were updated to match current state of project.
Change-Id: Ie895d25680d510f5e69e6f15553311f6671cdce3
Jakub Pawlowski [Tue, 23 Feb 2016 23:28:35 +0000 (15:28 -0800)]
Add Linux-specific version of metrics.
This patch adds empty metrics implementation for Linux in
order to fix build errors.
Bug:
27324453
Change-Id: I2f45db6147689bf295176b7ad30a613a7f5a8d9f
Joe Onorato [Fri, 18 Mar 2016 20:38:44 +0000 (13:38 -0700)]
Turn down excess logging in bt hci
Bug:
27744135
Change-Id: I30c975ceac7b4f7d74ab77e2279b080b049ece1b
Ying Wang [Wed, 23 Mar 2016 18:41:15 +0000 (11:41 -0700)]
Tell the build system this is a host module.
We need to tell the build system this is a host module before calling
local-generated-sources-dir.
Change-Id: Ie36ad938c0c7124865148f20fcb70d5187f158b8
(cherry-pick from commit
df515a46dd4fe27040c39d35b14b3e071319156d)
Jakub Pawlowski [Thu, 17 Mar 2016 19:05:54 +0000 (12:05 -0700)]
Use handles to identify GATT attributes (1/4)
Bug:
27778668
Change-Id: Id7454450c1ce2164001a1f9ca0b91f18d84e3fd6
Jakub Pawlowski [Tue, 15 Mar 2016 22:35:38 +0000 (15:35 -0700)]
HID service discovery refactor
This patch changes how HID is initialized.
Up till now, HID discovery was intricately chained,
to make sure two operations are not scheduled at same time.
From now on, all discovery is done and all operations are
scheduled for execution right away. There is separate set
of functions making sure all operations will be executed
without collisions.
This patch also removes BTA_HH_SCPP_INST_DEF, which was
used as hardcoded service id.
Bug:
27698756
Change-Id: I30a7388e129844c5e4727b2ed2b7c05867cc73a8
Jakub Pawlowski [Tue, 15 Mar 2016 22:35:00 +0000 (15:35 -0700)]
Restructure GATTC
This patch changes how GATTC is structured. Up till now, it
contained tBTA_GATTC_CACHE and tBTA_GATTC_CACHE_ATTR. Those
structures were so ugly, someone hide them inside internal
header, to make sure noone would ever access them from outside
GATTC. They are now replaced with:
tBTA_GATTC_SERVICE,
tBTA_GATTC_CHARACTERISTIC,
tBTA_GATTC_DESCRIPTOR and
tBTA_GATTC_INCLUDED_SVC.
Those looks much better, and were made globally avaliable.
Thanks to way they're build, we no longer need set of access
methods, which were also very ugly:
BTA_GATTC_GetFirstChar
BTA_GATTC_GetNextChar
BTA_GATTC_GetFirstIncludedService
etc.
This patch breaks HID, DO NOT SUBMIT without HID refactor.
Bug:
27455533
Change-Id: Ic42cfff175e0cc1a0d8e1a1216e2b4b756cbf77d
Andre Eisenbach [Tue, 22 Mar 2016 02:55:32 +0000 (02:55 +0000)]
Merge changes from topic 'bug-
27455533-to-nyc-dev-merge-1' into nyc-dev
* changes:
Remove bta_gattc_id2handle
Use attribute handle instead of id in GATT cache
HID multi-device refactoring
GATT cache storage refactoring
Remove dead methods and callbacks
Simplify UUID handling in GATT cache
Pavlin Radoslavov [Fri, 18 Mar 2016 08:02:45 +0000 (01:02 -0700)]
Cleanup after p_mcb if L2CA_ConnectReq() failed
If L2CA_ConnectReq() failed, make sure that
we cleanup the lcid cache state after the
affected p_mcb.
Also, extra check and a log message inside function
rfc_check_send_cmd().
Bug:
27334916
Change-Id: Ib2950d12ce456d74355f4bcc0e3c4d87603f8f91
Pavlin Radoslavov [Mon, 21 Mar 2016 23:35:41 +0000 (16:35 -0700)]
Add missing initialization of queue btm_cb.sec_pending_q
Bug:
27763878
Change-Id: I93001a679e22b744c3feafda1997e5f7e707db4e
Ajay Panicker [Mon, 21 Mar 2016 18:23:09 +0000 (11:23 -0700)]
Add config source to dumpsys output
This logs where the config file was loaded from in the Bluetooth
Manager dumpsys output.
Bug:
27354612
Change-Id: I50d4aaa0be4f4d1d890580b03742713f4345c80f
Andre Eisenbach [Fri, 18 Mar 2016 09:09:58 +0000 (02:09 -0700)]
Do not leak eventfd's for RFCOMM/AVDT/L2CAP
Various users of fixed_queue's do not free the lists properly after
using them. As a result two event fd's leak for each fixed_queue that
is not free'd, as fixed_queue contains two semaphores.
This can lead to run-away file descriptor allocation and an eventual
hard limit leading to various undefined behaviours.
Bug:
27731859
Change-Id: If9ce64b711083bf474d217aa537220065722ad3a
Andre Eisenbach [Thu, 17 Mar 2016 23:51:36 +0000 (16:51 -0700)]
Log error code on wakelock acquisition/release failure
Bug:
27721443
Change-Id: I8ac9e738d916bfdcf125e33c0e09f90cc8d26d55
Glenn Kasten [Thu, 17 Mar 2016 14:22:50 +0000 (14:22 +0000)]
Merge "Use audio_session_t consistently" into nyc-dev
Marie Janssen [Wed, 9 Mar 2016 23:31:48 +0000 (15:31 -0800)]
DO NOT MERGE Check size of pin before replying
If a malicious client set a pin that was too long it would overflow
the pin code memory.
Bug:
27411268
Change-Id: I9197ac6fdaa92a4799dacb6364e04671a39450cc
Srinu Jella [Fri, 6 Nov 2015 09:29:10 +0000 (14:59 +0530)]
Free allocation tracker hash map entries to reduce memory pressure
Use case:
A2DP playback becomes choppy after long hours of testing.
Steps:
1. installed 3rd party app that performs recurring LE scans.
2. Leave phone to run overnight.
3. After 24h+, connect a Bluetooth headset and music is very choppy.
Root cause:
The memory allocation tracker has support for double free check
where it stores all allocations in hash map but it never get
removed to track double free issue, A2DP memory allocation is
taking more time and leading to choppyness.
Fix:
Free the hash map entry to avoid memory leak from
allocation tracker.
Bug:
27621407
Change-Id: If57bd0b89c1d9b99c4f066c537a9e0fa49bc093f
Ajay Panicker [Thu, 10 Mar 2016 23:30:16 +0000 (15:30 -0800)]
Add pair event device class and fix timestamp
Added a function to get the device class to use with pair events.
Also update check_cod_hid as it was only being used with COD_HID_MAJOR.
Also fixed an issue with pair event timestamps where they were
using the wrong clock.
Bug:
27499938
Change-Id: I0805d7a3f82b28e7d7e73d80818948843f51a82b
Glenn Kasten [Tue, 8 Mar 2016 20:12:33 +0000 (12:12 -0800)]
Use audio_session_t consistently
Bug:
27562099
Change-Id: I10780c8bfc84af568795a2c15557020fbe89a1c4
Jakub Pawlowski [Fri, 4 Mar 2016 19:46:08 +0000 (11:46 -0800)]
Remove bta_gattc_id2handle
Now that the instance id is equal to handle, we no longer need this
mapping function.
Bug:
27455533
Change-Id: I6760f8fc81460df8520d4ebf1899ed256ce5ad1e
Jakub Pawlowski [Wed, 2 Mar 2016 22:47:55 +0000 (14:47 -0800)]
Use attribute handle instead of id in GATT cache
Currently we generate an id for each GATT attribute. Those ids
are used to differentiate between attributes that have the same
UUID. We need to get rid of those ids because it won't work with
partial GATT database updates due to "service change"
notifications. Instead, attribute handles, which are unique
across the whole GATT database will be used.
This is first patch in series to achieve that. It gets rid
of id generation, and just assigns handle in place of ids inside
of gatt cache. Upcoming patches will change the GATT cache API
and eventually get rid of "id" completly.
Bug:
27455533
Change-Id: I74c10872ecc223329b8ac7fef4085963bf272624
Jakub Pawlowski [Tue, 8 Mar 2016 20:36:46 +0000 (12:36 -0800)]
HID multi-device refactoring
We don't really support multiple HID services in same device.
We shouldn't use default value 0 for service id.
We shouldn't merge service id and characteristic id into one field,
as it's done not right right now.
Bug:
27455533
Change-Id: I46cc1b62bb2c7393e62f3b1a8e4650706954a066
Jakub Pawlowski [Sun, 6 Mar 2016 01:57:51 +0000 (17:57 -0800)]
GATT cache storage refactoring
Currently when storing GATT cache into file, we save it piece
after piece, max 10 elements at once. This is not necessary,
we have enough space to just save all at once.
Also the logic doesn't need to be so complicated - no need
to state machine for such simple task.
Bug:
27455533
Change-Id: I82923dbedfb317835e45e13e0ea28151eb524d37
Jakub Pawlowski [Mon, 29 Feb 2016 21:23:04 +0000 (13:23 -0800)]
Remove dead methods and callbacks
Bug:
27455533
Change-Id: Ie5661577320810468dd635022027a1e1a2f70a3e
Jakub Pawlowski [Thu, 3 Mar 2016 04:01:30 +0000 (20:01 -0800)]
Simplify UUID handling in GATT cache
Bug:
27455533
Change-Id: I653b563d3b3c233ffe31b0a35d396a66db363459
Dimitry Ivanov [Tue, 8 Mar 2016 19:32:56 +0000 (11:32 -0800)]
Fix the build
Change-Id: Ib226f087a76ddd426e40f4d6d94f2ed758660c36
Sanket Agarwal [Wed, 10 Feb 2016 23:24:09 +0000 (15:24 -0800)]
Move focus handling entirely to component calling fluoride.
Audio focus handling for A2DP sink currently split between Fluoride and
the component sitting on top of it. Since this is not the best place to
decide policies, we move all such decisions to the upper layer.
Bug: b/
26928143
Change-Id: I67a1a2a50782289e7e31447b01ee29a21bc8dac2
Pavlin Radoslavov [Tue, 1 Mar 2016 21:32:41 +0000 (13:32 -0800)]
Ignore LCB entries that migth have been released while queued
Function btm_send_pending_direct_conn() dequeues tL2C_LCB
entries from the conn_pending_q queue and calls the processing
function.
However, there is the possilility of a race condition
and releasing the entry by l2cu_release_lcb() before it is processed.
Now tL2C_LCB that are not in_use are ignored.
Bug:
27418154
Change-Id: I4b5fda605a60c8aebbf5587bb12dd74ac5d28f68
Pavlin Radoslavov [Thu, 3 Mar 2016 21:16:45 +0000 (13:16 -0800)]
Remove MCB from mapping table when entry is released
Explicitly remove MCB entry from the LCB mapping table when
the entry is released.
Bug:
27334916
Change-Id: I14e3f1f5eeffa33e733c4a116d0a70cd7c06753f
Chaojing Sun [Sat, 6 Feb 2016 01:25:47 +0000 (17:25 -0800)]
Fix Dell LE keyboard connection issue
Fixes a connection issue where Dell keyboards do not remain connected
immediately after pairing by removing the gatt_config_ccc_complete()
call in gatt_cl_op_cmpl_cback().
Bug:
27385897
Change-Id: Iee342975dce9fdcd5dcf8f9d459f74fe13d02531
Prashant Malani [Fri, 26 Feb 2016 02:26:13 +0000 (18:26 -0800)]
Fix miscellaneous compilation errors
- Move variables within #defines to avoid unused errors.
- Place #define's correctly to avoid unused function errors.
- Correct parameter passed into a function.
Bug:
27336841
Change-Id: I7c2ab24b3bd3725d126c90483473af83b88687a2
Ajay Panicker [Tue, 1 Mar 2016 00:44:28 +0000 (16:44 -0800)]
Btsnooz doesn't find snooplog sometimes
In the bugreport in b/
27274486 comment #11, the line indicating the
beginning of BTSNOOP LOGS was slightly indented thus causing btsnooz
to not find the beginning of the log.
Bug:
27419027
Change-Id: I3b88e6a3f6f2d6c4d3cbbadb0a93cbd7965f56c8
Pavlin Radoslavov [Tue, 1 Mar 2016 20:50:26 +0000 (12:50 -0800)]
Fix l2cu_initialize_fixed_ccb() to return only initialized entries
Update the l2cu_initialize_fixed_ccb() implementation so
it returns only entries that are properly initialized.
In some complex scenarios, the p_lcb->p_fixed_ccbs[] array
might contain an entry that has been released by l2cu_release_ccb(),
and such entry cannot be reused as-is.
Bug:
26927945
Change-Id: I42d42926cc6da6b8be662781545753c36b75968e
Pavlin Radoslavov [Tue, 1 Mar 2016 18:08:06 +0000 (10:08 -0800)]
Reset queue pointer to NULL after fixed_queue_free()
Add missing reset of queue pointers to NULL affter
fixed_queue_free() calls.
Bug:
26742590
Change-Id: Ib9035d58c0f98a47ce2935e073c6f288ae03ac92
Andre Eisenbach [Sat, 27 Feb 2016 05:45:27 +0000 (21:45 -0800)]
Ensure inquiry is always stopped before service discovery
Service discovery cannot be initiated when the dm search state machine
is not in idle state. This patch ensures that service discovery is
always cancelled regardless of the current state of inquiry.
Bug:
27368986
Change-Id: Ib83d4c8d389e50a1c65e52b343f4996455747836
Andre Eisenbach [Fri, 26 Feb 2016 04:23:38 +0000 (04:23 +0000)]
Merge "Swapped memset params" into nyc-dev
Pavlin Radoslavov [Thu, 25 Feb 2016 20:53:45 +0000 (12:53 -0800)]
Fix a crash triggered when firmware config takes too long
Fix a crash condition that is triggered when the firmware
configuration takes too long:
1. The startup_timer expires, and it resets startup_future to NULL
2. The delayed firmware_config_callback is received, and it
tries to use the startup_future pointer (already set to NULL).
[Cherry-pick from AOSP]
Bug:
27336555
Change-Id: I4b04ca08a32c947f6f1eaabec7c4b099f96aab59
Edward Savage-Jones [Wed, 24 Feb 2016 23:44:51 +0000 (00:44 +0100)]
Swapped memset params
Incorrect usage of memset
Bug:
27358983
Change-Id: I7d96c560c4b462c2794b63eb66c7272b1280ba23
Ajay Panicker [Thu, 18 Feb 2016 20:24:10 +0000 (12:24 -0800)]
Protect metrics API from race conditions
Bug:
27315491
Change-Id: If57f7c23c94890e5f1cf196d2ec7a2a667b48cec
Ajay Panicker [Mon, 22 Feb 2016 20:14:04 +0000 (12:14 -0800)]
Alarm Dump output cleanup
Before:
Alarm : btm_ble.adv_raddr_timer (SINGLE)
Action counts (sched/resched/exec/cancel) : 1 / 0 / 0 / 0
Deviation counts (overdue/premature) : 0 / 0
Time in ms (since creation/interval/remaining) : 17824 / 900000 / 882176
Callback execution time in ms (total/max/ave) : 0 / 0 / 0
Overdue scheduling time in ms (total/max/ave) : 0 / 0 / 0
Premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
After:
Alarm : btm_ble.adv_raddr_timer (SINGLE)
Action counts (sched/resched/exec/cancel : 1 / 0 / 0 / 0
Deviation counts (overdue/premature) : 0 / 0
Time in ms (since creation/interval/remaining) : 88268 / 900000 / 811732
Callback execution time in ms (total/max/avg) : 0 / 0 / 0
Overdue scheduling time in ms (total/max/avg) : 0 / 0 / 0
Premature scheduling time in ms (total/max/avg): 0 / 0 / 0
Bug:
27294154
Change-Id: I0e318ef570a591626fbc6443feace1cc99c06baf
Ajay Panicker [Mon, 22 Feb 2016 19:05:04 +0000 (11:05 -0800)]
Clean A2DP dump output
Before:
TxQueue:
Counts (enqueue/dequeue/readbuf) : 0 / 0 / 0
Last update time ago in ms (enqueue/dequeue/readbuf) : 0 / 0 / 0
Frames per packet (total/max/ave) : 0 / 0 / 0
Counts (flushed/dropped/dropouts) : 0 / 0 / 0
Last update time ago in ms (flushed/dropped) : 0 / 0
Counts (underflow/underrun) : 0 / 0
Bytes (underflow/underrun) : 0 / 0
Last update time ago in ms (underflow/underrun) : 0 / 0
Enqueue deviation counts (overdue/premature) : 0 / 0
Enqueue overdue scheduling time in ms (total/max/ave) : 0 / 0 / 0
Enqueue premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
Dequeue deviation counts (overdue/premature) : 0 / 0
Dequeue overdue scheduling time in ms (total/max/ave) : 0 / 0 / 0
Dequeue premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
After:
TxQueue:
Counts (enqueue/dequeue/readbuf) : 0 / 0 / 0
Last update time ago in ms (enqueue/dequeue/readbuf) : 0 / 0 / 0
Frames per packet (total/max/ave) : 0 / 0 / 0
Counts (flushed/dropped/dropouts) : 0 / 0 / 0
Last update time ago in ms (flushed/dropped) : 0 / 0
Counts (underflow/underrun) : 0 / 0
Bytes (underflow/underrun) : 0 / 0
Last update time ago in ms (underflow/underrun) : 0 / 0
Enqueue deviation counts (overdue/premature) : 0 / 0
Enqueue overdue scheduling time in ms (total/max/ave) : 0 / 0 / 0
Enqueue premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
Dequeue deviation counts (overdue/premature) : 0 / 0
Dequeue overdue scheduling time in ms (total/max/ave) : 0 / 0 / 0
Dequeue premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
Bug:
27294154
Change-Id: I2952ceed7b02db0d8497b67de0f57e4f9128e5bf
Ajay Panicker [Wed, 24 Feb 2016 19:45:56 +0000 (11:45 -0800)]
Remove extra newline before Btsnoop log summary
Bug:
27294154
Change-Id: Ice69835cdddfc01e2222a47b0ceeb30d243442f5
Ajay Panicker [Fri, 19 Feb 2016 00:33:07 +0000 (16:33 -0800)]
Clean up bond event dump printout
Bug:
27294154
Change-Id: I0b7e5a9dda30875c9fc877baffa0daac9184cd42
Jakub Pawlowski [Tue, 23 Feb 2016 23:27:47 +0000 (15:27 -0800)]
Make wakelock compile on Linux
This patch adds some missing header files that prevented wakelocks
from compiling on linux.
Bug:
27324453
Change-Id: Ifabf3350fe840524cf7e1ec7aa2825acb4399c81
Jakub Pawlowski [Tue, 23 Feb 2016 22:32:49 +0000 (14:32 -0800)]
Add missing log tag in config_clear()
Bug:
27324453
Change-Id: Icebf0273c39040ff6b1bb29dcc4d0a827e25b4a8
Jakub Pawlowski [Tue, 23 Feb 2016 22:58:43 +0000 (14:58 -0800)]
Get rid of counter
This patch removes counter. We were never using those values,
except for increasing them.
Bug:
27324326
Change-Id: I3122a36fa0435a36a8401792267cb5ebff5ab269
Pavlin Radoslavov [Wed, 17 Feb 2016 02:16:59 +0000 (18:16 -0800)]
Replace usage of HCI_GET_CMD_BUF() with osi_malloc()
* Remove HCI_GET_CMD_BUF() wrapper macro, and replace it with
its default implementation: (BT_HDR *)osi_malloc(HCI_CMD_BUF_SIZE)
* Remove explicit checks for NULL when HCI_GET_CMD_BUF() was used.
[Cherry-picked from AOSP/master]
Bug:
27048759
Change-Id: I7c71b408f40d58f6ebf3a310aa806daba3342f77
Pavlin Radoslavov [Fri, 19 Feb 2016 04:51:58 +0000 (20:51 -0800)]
Removed unused defines from bt_target.h
Removed unused conditional defines from bt_target.h that
are not needed anymore.
[Cherry-picked from AOSP/master]
Change-Id: Ic424f673332668b21db11d323b389f5a5f4fba81
Andre Eisenbach [Fri, 19 Feb 2016 01:36:03 +0000 (17:36 -0800)]
Revert "Pick proper addres type for unknown devices"
This reverts commit
0ec558b58d55eb05f2b42bc29a6c1c93786ac090.
Andre Eisenbach [Fri, 19 Feb 2016 01:27:18 +0000 (17:27 -0800)]
Revert "Fix data reporting state when using HID device"
Original commit breaks Fugu remote (amongst other things).
This reverts commit
44efbb13a748a276de994456cffc02e8e9da03b0.
Change-Id: Ifa4ab421e0b14f59988d2e3ac7f338f0844aaa2d
Ajay Panicker [Thu, 18 Feb 2016 02:18:00 +0000 (18:18 -0800)]
Write Protobuf in Base64
Change-Id: I3868365e7fd166517b13ff03a15d629271bd47b4
Pavlin Radoslavov [Wed, 17 Feb 2016 18:20:12 +0000 (10:20 -0800)]
Fix ParcelHelpersTest.ScanResult unit test
Fix a failing unit test that was broken by some
earlier cleanup work.
Bug:
26879229
Bug:
27152031
Change-Id: I244d078a23a69c82fbc7cb4468649ab933131977