platform/upstream/bluez.git
3 years agoshared/gatt: Fix NULL pointer dereference
Szymon Janc [Tue, 31 Mar 2020 10:45:32 +0000 (12:45 +0200)]
shared/gatt: Fix NULL pointer dereference

bluetoothd[363094]: src/device.c:device_connect_le() Connection attempt to: 00:AA:01:00:00:23

Program received signal SIGSEGV, Segmentation fault.
write_complete_cb (attr=0x55555580aa30, err=-110, user_data=0x55555585f7c0) at src/shared/gatt-server.c:793
793             util_debug(server->debug_callback, server->debug_data,
(gdb) bt
 #0  write_complete_cb (attr=0x55555580aa30, err=-110, user_data=0x55555585f7c0) at src/shared/gatt-server.c:793
 #1  0x00005555556a5852 in pending_write_result (p=0x555555866030, err=<optimized out>) at src/shared/gatt-db.c:162
 #2  0x00005555556a5ac7 in write_timeout (user_data=0x555555866030) at src/shared/gatt-db.c:1879
 #3  0x00005555556a9b15 in timeout_callback (user_data=user_data@entry=0x555555864b20) at src/shared/timeout-glib.c:34
 #4  0x00007ffff7e1f081 in g_timeout_dispatch (source=source@entry=0x555555864f00, callback=0x5555556a9b00 <timeout_callback>, user_data=0x555555864b20) at ../glib/gmain.c:4705
 #5  0x00007ffff7e1e570 in g_main_dispatch (context=0x5555557d9630) at ../glib/gmain.c:3216
 #6  g_main_context_dispatch (context=context@entry=0x5555557d9630) at ../glib/gmain.c:3881
 #7  0x00007ffff7e1e900 in g_main_context_iterate (context=0x5555557d9630, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:3954
 #8  0x00007ffff7e1ebf3 in g_main_loop_run (loop=0x5555557d75d0) at ../glib/gmain.c:4148
 #9  0x00005555556a9dbd in mainloop_run () at src/shared/mainloop-glib.c:79
 #10 0x00005555556aa36a in mainloop_run_with_signal (func=<optimized out>, user_data=0x0) at src/shared/mainloop-notify.c:201
 #11 0x00005555555bb9e3 in main (argc=<optimized out>, argv=<optimized out>) at src/main.c:770

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomain: Fix GATT option parsing
Szymon Janc [Tue, 31 Mar 2020 12:07:25 +0000 (14:07 +0200)]
main: Fix GATT option parsing

Key name is Channels.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agocore/device: Handle Just-Works auto-accept
Sonny Sasaka [Sat, 28 Mar 2020 00:33:18 +0000 (17:33 -0700)]
core/device: Handle Just-Works auto-accept

The kernel starts to always request confirmation to BlueZ daemon for
Just-Works pairing. In this patch the daemon does auto-accept if the
client has clearly indicated a pairing intent by calling the Pair()
D-Bus API.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Enable connecting to EATT channel using Ext-Flowctl mode
Luiz Augusto von Dentz [Mon, 16 Mar 2020 22:16:12 +0000 (15:16 -0700)]
gatt: Enable connecting to EATT channel using Ext-Flowctl mode

This makes use of BT_IO_MODE_EXT_FLOWCTL to connect to EATT channels.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agotools/l2cap-tester: Add test for Ext-Flowctl mode
Luiz Augusto von Dentz [Tue, 10 Mar 2020 20:44:27 +0000 (13:44 -0700)]
tools/l2cap-tester: Add test for Ext-Flowctl mode

This adds tests for Ext-Flowctl which uses ECRED PDUs.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoemulator/bthost: Add support for ECRED Connection request/response
Luiz Augusto von Dentz [Tue, 10 Mar 2020 20:09:52 +0000 (13:09 -0700)]
emulator/bthost: Add support for ECRED Connection request/response

This adds support for ECRED Connection request/response which will be
used by l2cap-runner to test L2CAP_MODE_EXT_FLOWCTL mode.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agol2test: Add support for BT_MODE_EXT_FLOWCTL
Luiz Augusto von Dentz [Fri, 2 Aug 2019 07:44:43 +0000 (10:44 +0300)]
l2test: Add support for BT_MODE_EXT_FLOWCTL

This enables using l2test to connect or listen with
BT_MODE_EXT_FLOWCTL.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobtio: Add mode to for Enhanced Credit Mode
Luiz Augusto von Dentz [Wed, 31 Jul 2019 10:56:24 +0000 (13:56 +0300)]
btio: Add mode to for Enhanced Credit Mode

This adds BT_IO_MODE_EXT_FLOWCTL which directly maps to
BT_MODE_EXT_FLOWCTL.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add definitions for Enhanced Credits Based Mode
Luiz Augusto von Dentz [Mon, 29 Jul 2019 10:09:57 +0000 (13:09 +0300)]
lib: Add definitions for Enhanced Credits Based Mode

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Fix decoding of LE Setup ISO Data Path command
Luiz Augusto von Dentz [Mon, 30 Mar 2020 21:43:12 +0000 (14:43 -0700)]
monitor: Fix decoding of LE Setup ISO Data Path command

LE Setup ISO Data Path command contains not only the transport but also
the codec along with its configuration.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add identifier for VIRTIO devices
Marcel Holtmann [Mon, 30 Mar 2020 18:32:53 +0000 (20:32 +0200)]
lib: Add identifier for VIRTIO devices

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add support for Read Local Simple Pairing Options command
Marcel Holtmann [Mon, 30 Mar 2020 18:24:06 +0000 (20:24 +0200)]
monitor: Add support for Read Local Simple Pairing Options command

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobtmgmt: Rename version command to revision
Luiz Augusto von Dentz [Mon, 30 Mar 2020 17:28:08 +0000 (10:28 -0700)]
btmgmt: Rename version command to revision

version is already handled by btshell and always refer to BlueZ version
rather than MGMT version, so this renames the command to revision to
avoid having the clash of command names.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobtmgmt: Fix irks command parsing
Luiz Augusto von Dentz [Mon, 30 Mar 2020 17:23:16 +0000 (10:23 -0700)]
btmgmt: Fix irks command parsing

btshell does not allow use of nested parameter delimiters.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Adding missing settings descriptions in btmon
Alain Michaud [Fri, 27 Mar 2020 15:03:53 +0000 (15:03 +0000)]
monitor: Adding missing settings descriptions in btmon

This change adds the missing settings descriptions from btmon.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoavdtp: fix delay report valid states
Archie Pusaka [Fri, 20 Mar 2020 05:14:25 +0000 (13:14 +0800)]
avdtp: fix delay report valid states

According to AVDTP specification section 6.19,
avdtp_delayreport_cmd could also be received when the state of SEP
is open.

Therefore, updating to accommodate such condition.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agotools/btmgmt: Fix missing setting string in btmgmt
Howard Chung [Thu, 26 Mar 2020 08:14:27 +0000 (16:14 +0800)]
tools/btmgmt: Fix missing setting string in btmgmt

Both PHY configuration and wide band speech are not set in
btmgmt.c.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoautopair: Fix compiler warning
Sonny Sasaka [Tue, 24 Mar 2020 19:49:42 +0000 (12:49 -0700)]
autopair: Fix compiler warning

With clang, comparing an array with NULL generates a warning because the
value is always non-NULL. With maintainer mode enabled, this becomes a
compilation error.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoavdtp: Fix crashes in avdtp_abort
Howard Chung [Tue, 24 Mar 2020 03:21:45 +0000 (11:21 +0800)]
avdtp: Fix crashes in avdtp_abort

In avdtp_abort, if setup->stream is NULL, trying to access
stream->lsep will crash.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoinput: Add LEAutoSecurity setting to input.conf
Luiz Augusto von Dentz [Wed, 11 Mar 2020 18:43:21 +0000 (11:43 -0700)]
input: Add LEAutoSecurity setting to input.conf

LEAutoSecurity can be used to enable/disable automatic upgrades of
security for LE devices, by default it is enabled so existing devices
that did not require security and were not bonded will automatically
upgrade the security.

Note: Platforms disabling this setting would require users to manually
bond the device which may require changes to the user interface to
always force bonding for input devices as APIs such as Device.Connect
will no longer work which maybe perceived as a regression.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoinput: hog: Attempt to set security level if not bonded
Luiz Augusto von Dentz [Tue, 10 Mar 2020 16:59:07 +0000 (09:59 -0700)]
input: hog: Attempt to set security level if not bonded

This attempts to set the security if the device is not bonded, the
kernel will block any communication on the ATT socket while bumping
the security and if that fails the device will be disconnected which
is better than having the device dangling around without being able to
communicate with it until it is properly bonded.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoRelease 5.54
Marcel Holtmann [Sun, 15 Mar 2020 06:35:59 +0000 (07:35 +0100)]
Release 5.54

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobuild: Update library version
Marcel Holtmann [Sun, 15 Mar 2020 06:26:51 +0000 (07:26 +0100)]
build: Update library version

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add version number for Bluetooth 5.2
Marcel Holtmann [Sun, 15 Mar 2020 06:25:19 +0000 (07:25 +0100)]
lib: Add version number for Bluetooth 5.2

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Fix for incorrect len in L2CAP Enhanced Reconfigure
Łukasz Rymanowski [Thu, 12 Mar 2020 07:30:45 +0000 (08:30 +0100)]
monitor: Fix for incorrect len in L2CAP Enhanced Reconfigure

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoa2dp: Fix race when connecting and being connected at the same time
Archie Pusaka [Thu, 12 Mar 2020 05:54:37 +0000 (13:54 +0800)]
a2dp: Fix race when connecting and being connected at the same time

There is a possibility where BlueZ initiate an A2DP connection just
around the same time as the peripheral also initiate it.

One scenario is the peripheral initiate the connection first, so
confirm_cb() on /profiles/audio/a2dp.c is called. However, while we
are waiting for the authentication step, BlueZ initiate a connection
to the peripheral, therefore a2dp_sink_connect() is called, which
from there a2dp_avdtp_get() is called.

If this happens: When calling confirm_cb(), chan for the
corresponding device is created.

Then when calling a2dp_avdtp_get(), chan will be found as it is
created in confirm_cb(), and the value of chan->io is not NULL.
However, a NULL is supplied instead to create a new session and
assigned to chan->session.

Then when calling connect_cb(), chan->session will NOT be NULL, as
it is assigned in a2dp_avdtp_get(). Nevertheless, chan->session is
always assigned a new value.

These cause failure in connection.

Therefore, fixing this by supplying the value of chan->io inside
a2dp_avdtp_get() (it's going to be NULL on the normal case so it is
fine), and check whether chan->session already assigned inside
connect_cb().

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoHID accepts bonded device connections only.
Alain Michaud [Tue, 10 Mar 2020 02:35:18 +0000 (02:35 +0000)]
HID accepts bonded device connections only.

This change adds a configuration for platforms to choose a more secure
posture for the HID profile.  While some older mice are known to not
support pairing or encryption, some platform may choose a more secure
posture by requiring the device to be bonded  and require the
connection to be encrypted when bonding is required.

Reference:
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00352.html
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoHOGP must only accept data from bonded devices.
Alain Michaud [Tue, 10 Mar 2020 02:35:16 +0000 (02:35 +0000)]
HOGP must only accept data from bonded devices.

HOGP 1.0 Section 6.1 establishes that the HOGP must require bonding.

Reference:
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00352.htm
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Mention the Wideband Speech setting and add new kernel version
Marcel Holtmann [Sun, 8 Mar 2020 08:02:51 +0000 (09:02 +0100)]
doc: Mention the Wideband Speech setting and add new kernel version

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Adding definitions for Wide Band Speech configuration
Alain Michaud [Wed, 4 Mar 2020 20:31:52 +0000 (20:31 +0000)]
lib: Adding definitions for Wide Band Speech configuration

This change adds the corresponding user space definition for wide band
speech.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Add settings and command for Wideband Speech support
Marcel Holtmann [Wed, 4 Mar 2020 07:37:43 +0000 (08:37 +0100)]
doc: Add settings and command for Wideband Speech support

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Add another missing PHY Configuration value
Marcel Holtmann [Wed, 4 Mar 2020 07:35:14 +0000 (08:35 +0100)]
doc: Add another missing PHY Configuration value

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add support for decoding EATT
Luiz Augusto von Dentz [Fri, 17 May 2019 11:13:23 +0000 (14:13 +0300)]
monitor: Add support for decoding EATT

This decodes packets received over EATT PSM.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agocore: Add support for setting the number of GATT bearers
Luiz Augusto von Dentz [Tue, 7 Jan 2020 19:47:49 +0000 (11:47 -0800)]
core: Add support for setting the number of GATT bearers

This adds option to set the numbers of GATT Channels/Bearers to be
connected in main.conf.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Add support for Notify Multiple
Luiz Augusto von Dentz [Fri, 6 Sep 2019 11:09:37 +0000 (14:09 +0300)]
gatt: Add support for Notify Multiple

This adds support for Notify Multiple procedure marking its bit as
supported in the Client Features.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt: Add support for Handle Value Multiple Notifications
Luiz Augusto von Dentz [Thu, 6 Jun 2019 06:22:56 +0000 (09:22 +0300)]
shared/gatt: Add support for Handle Value Multiple Notifications

Handle Value Multiple Notification can be used to notify multiple
values at once.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt-client: Add support for Read Multiple Variable Length
Luiz Augusto von Dentz [Mon, 3 Jun 2019 13:21:19 +0000 (16:21 +0300)]
shared/gatt-client: Add support for Read Multiple Variable Length

The Read Multiple Variable Length Request is used to request that the
server read two or more values of a set of attributes that have a
variable or unknown value length and return their values in a
Read Multiple Variable Length Response.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt-server: Add support for Read Multiple Variable Length
Luiz Augusto von Dentz [Mon, 3 Jun 2019 12:42:41 +0000 (15:42 +0300)]
shared/gatt-server: Add support for Read Multiple Variable Length

The Read Multiple Variable Length Request is used to request that the
server read two or more values of a set of attributes that have a
variable or unknown value length and return their values in a
Read Multiple Variable Length Response.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Enable EATT bearer support
Luiz Augusto von Dentz [Thu, 26 Dec 2019 22:01:06 +0000 (14:01 -0800)]
gatt: Enable EATT bearer support

This adds support for EATT connections.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt-client: Add support for EATT features
Luiz Augusto von Dentz [Fri, 10 May 2019 07:35:00 +0000 (10:35 +0300)]
shared/gatt-client: Add support for EATT features

This enables EATT in the Client Features if the EATT characteristic is
present in the database.

Change-Id: I174d644283b8026b2b82e2c1bd2d9aeb5f5bcdbe
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshare/att: Add EATT support
Luiz Augusto von Dentz [Thu, 9 May 2019 08:06:25 +0000 (11:06 +0300)]
share/att: Add EATT support

This adds EATT support to bt_att, EATT bearers are handled as
additional channels which auto allocated for queued requests.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agosrc/profile: Ensure class UUID matches before connecting profile
Archie Pusaka [Mon, 2 Mar 2020 04:07:31 +0000 (12:07 +0800)]
src/profile: Ensure class UUID matches before connecting profile

According to bluetooth spec Ver 5.1, Vol 3, Part B, 4.7.2, there
might be multiple service records returned in a SDP Service Search
Attribute Response. Also, according to 2.5.2, the service pattern
can match any UUID contained within the service record, it doesn't
have to match only some specific attributes of the record.

Therefore, before using the service record to connect to any
profile, first we must check that the service class ID of the
service record matches with whatever UUID specified in the service
pattern we are looking for.

This patch checks the service class ID of the records against the
requested UUID whenever bt_search_service() is called and filter
out the ones that don't match. For the alternative where filtering
is not applied, use the method bt_search().

Change-Id: Ia0489fd81e0c6e21d57fe907b36b696d826b18a4
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Mention the mgmt API version 1.15 changes
Marcel Holtmann [Fri, 28 Feb 2020 08:18:58 +0000 (09:18 +0100)]
doc: Mention the mgmt API version 1.15 changes

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Adding missing Phy Configuration bit description.
Alain Michaud [Thu, 27 Feb 2020 19:19:19 +0000 (19:19 +0000)]
doc: Adding missing Phy Configuration bit description.

This change simply adds the missing Phy Configuration settings bit
description to the Read Controller Information Command documentation.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoclient: Add scan.pattern command
Luiz Augusto von Dentz [Thu, 20 Feb 2020 00:25:04 +0000 (16:25 -0800)]
client: Add scan.pattern command

This uses the new Pattern filter:

[bluetooth]# scan.pattern Living
[bluetooth]# scan on
SetDiscoveryFilter success
Discovery started
[CHG] Controller XX:XX:XX:XX:XX:XX Discovering: yes
[NEW] Device XX:XX:XX:XX:XX:XX Living Room TV

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoadapter: Implement Pattern filter
Luiz Augusto von Dentz [Thu, 20 Feb 2020 00:19:29 +0000 (16:19 -0800)]
adapter: Implement Pattern filter

This implements the new Pattern filter as documented in the
adapter-api.txt.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc/adapter-api: Add pattern filter
Luiz Augusto von Dentz [Wed, 19 Feb 2020 22:58:33 +0000 (14:58 -0800)]
doc/adapter-api: Add pattern filter

This adds a pattern filter which can be used to filter devices by
address or name prefix which is quite convenient on a crowded
environment.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoavdtp: Enable MTU auto tunning
Luiz Augusto von Dentz [Wed, 19 Feb 2020 00:32:22 +0000 (16:32 -0800)]
avdtp: Enable MTU auto tunning

This uses BT_PHY to check if kernel is able to do MTU auto tunning
which is enabled by forcing the input MTU to 0.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agol2test: Add support to BT_PHY
Luiz Augusto von Dentz [Tue, 18 Feb 2020 21:35:57 +0000 (13:35 -0800)]
l2test: Add support to BT_PHY

This makes l2test attempt to read BT_PHY socket option and print out
the supported packet types/PHY:

l2test[7282]: Connected to XX:XX:XX:XX:XX:XX (bredr, psm 4113, dcid 64)
l2test[7282]: Local device XX:XX:XX:XX:XX:XX (bredr, psm 4113, scid 64)
l2test[7282]: Options [imtu 672, omtu 672, flush_to 65535, mode 0, handle 256, class 0x000000, priority 0, rcvbuf 212992]
l2test[7282]: Supported PHY: 0x000001ff
          BR1M1SLOT
          BR1M3SLOT
          BR1M5SLOT
          EDR2M1SLOT
          EDR2M3SLOT
          EDR2M5SLOT
          EDR3M1SLOT
          EDR3M3SLOT
          EDR3M5SLOT

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobtio: Add BT_IO_PHY option
Luiz Augusto von Dentz [Tue, 18 Feb 2020 19:41:29 +0000 (11:41 -0800)]
btio: Add BT_IO_PHY option

This adds BT_IO_PHY option which can be used to read the underline
packet types/PHY in use by the link layer.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add definition to BT_PHY
Luiz Augusto von Dentz [Tue, 18 Feb 2020 19:39:15 +0000 (11:39 -0800)]
lib: Add definition to BT_PHY

This adds the definition to BT_PHY socket options along with the
possible bitfields for the return value.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agocore: Add new policy for Just-Works repairing
howardchung@google.com [Sat, 15 Feb 2020 03:44:33 +0000 (11:44 +0800)]
core: Add new policy for Just-Works repairing

When kernel find out that the incoming Just-Works pairing is
initiated by a paired device, it is user space's responsibility to
decide the next action.

This patch includes the following:
- add JustWorksRepairing policy as an option in main.conf
- handle the confirmation request from kernel

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoRelease 5.53
Marcel Holtmann [Sat, 15 Feb 2020 18:31:37 +0000 (19:31 +0100)]
Release 5.53

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobuild: Update library version
Marcel Holtmann [Fri, 14 Feb 2020 22:27:03 +0000 (23:27 +0100)]
build: Update library version

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobuild: Require at least version 0.28 when building with external ELL
Marcel Holtmann [Fri, 14 Feb 2020 22:24:03 +0000 (23:24 +0100)]
build: Require at least version 0.28 when building with external ELL

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoobex: report notification status on incoming message
Matt Ranostay [Fri, 7 Feb 2020 05:08:56 +0000 (21:08 -0800)]
obex: report notification status on incoming message

To match doc/obex.txt on incoming message notification the respective
Status field should be set.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add company id for The Linux Foundation
Marcel Holtmann [Tue, 11 Feb 2020 02:27:34 +0000 (03:27 +0100)]
lib: Add company id for The Linux Foundation

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agotools/btproxy: Add support for ISO packets
Luiz Augusto von Dentz [Wed, 9 Oct 2019 10:29:07 +0000 (13:29 +0300)]
tools/btproxy: Add support for ISO packets

This enables proxing ISO packets.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoemulator: Add initial support for BT 5.2
Luiz Augusto von Dentz [Wed, 25 Sep 2019 09:56:00 +0000 (12:56 +0300)]
emulator: Add initial support for BT 5.2

This adds the initial command/event decoding for 5.2.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add decoding for L2CAP Enhanced Credit Based PDUs
Luiz Augusto von Dentz [Wed, 31 Jul 2019 11:47:40 +0000 (14:47 +0300)]
monitor: Add decoding for L2CAP Enhanced Credit Based PDUs

Enhanced Credit Based Flow Control Mode is used for L2CAP
connection-oriented channels on LE and BR/EDR with flow control using
a credit-based scheme for L2CAP data.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add support for ISO packets
Luiz Augusto von Dentz [Thu, 3 Oct 2019 13:36:22 +0000 (16:36 +0300)]
monitor: Add support for ISO packets

This enables decoding of ISO packets.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add decoding of ISO related Link Layer PDUs
Luiz Augusto von Dentz [Fri, 12 Apr 2019 07:23:25 +0000 (10:23 +0300)]
monitor: Add decoding of ISO related Link Layer PDUs

This adds the decoding of ISO related Link Layer PDUs

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add support for decoding ISO related commands
Luiz Augusto von Dentz [Fri, 12 Apr 2019 07:20:14 +0000 (10:20 +0300)]
monitor: Add support for decoding ISO related commands

This adds parsing of ISO related commands.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add missing HCI command error code decoding
Szymon Janc [Tue, 28 Jan 2020 11:07:40 +0000 (12:07 +0100)]
monitor: Add missing HCI command error code decoding

Packet Too Long (0x45 ) status code was missing.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared: shell: Only omit consecutive duplicate history lines.
Marijn Suijten [Sat, 18 Jan 2020 20:44:23 +0000 (21:44 +0100)]
shared: shell: Only omit consecutive duplicate history lines.

Change rl_handler to append duplicate history, as long as it isn't
identical to the last line. It prevents consecutive duplicates while
still having an accurate overview of the most recent commands used,
mimicking most modern shells.

This addresses my only major gripe with bluetoothctl: pressing UP does
not retrieve the last typed command when it is a duplicate of something
else written (much) earlier in the history. It is especially noticeable
when needing the same command repeatedly.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Adding missing op_code string conversion
Alain Michaud [Fri, 17 Jan 2020 04:24:21 +0000 (04:24 +0000)]
lib: Adding missing op_code string conversion

Adding the missing string conversion for MGMG_OP_SET_BLOCKED_KEYS.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoadapter: Load keys that should be blocked by the kernel
Alain Michaud [Tue, 7 Jan 2020 01:28:22 +0000 (01:28 +0000)]
adapter: Load keys that should be blocked by the kernel

This change accomplishes 2 things:
 1. Drop device security data from previously paired devices
 using blocked keys.
 2. Send the list of known bad keys that should be blocked to the kernel
 if supported.

In particular keys from the Google Titan Security key are being
blocked.

For additional background information, please see
https://security.googleblog.com/2019/05/titan-keys-update.html

Change-Id: Ib854cbae108058f2ecb9822d46d621434a980f19
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/util: Adding a shared ARRAY_SIZE macro
Alain Michaud [Tue, 7 Jan 2020 01:28:20 +0000 (01:28 +0000)]
shared/util: Adding a shared ARRAY_SIZE macro

This will allow other implementations within src/ to use a single
definition of the ARRAY_SIZE macro.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: MGMT_OP_SET_BLOCKED_KEYS Api definitions
Alain Michaud [Tue, 7 Jan 2020 01:28:18 +0000 (01:28 +0000)]
lib: MGMT_OP_SET_BLOCKED_KEYS Api definitions

Adding the required definitions for the MGMT_OP_SET_BLOCKED_KEYS Api.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoavctp: Fix EINVAL on uinput creation
Haochen Tong [Sun, 12 Jan 2020 00:42:26 +0000 (01:42 +0100)]
avctp: Fix EINVAL on uinput creation

The struct uinput_dev variable is on stack, so clear its content to
avoid accidentally writing garbage values to kernel. This fixes "Can't
create uinput device: Invalid argument (22)" in some cases.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoaudio/a2dp - fix crash during recovering process
howardchung [Fri, 10 Jan 2020 07:57:28 +0000 (15:57 +0800)]
audio/a2dp - fix crash during recovering process

The crash with stack trace:

(libc-2.27.so -raise.c:51 )       raise
(libc-2.27.so -abort.c:79 )       abort
(libc-2.27.so -libc_fatal.c:181 )         __libc_message
(libc-2.27.so -malloc.c:5350 )    malloc_printerr
(libc-2.27.so -malloc.c:4157 )    _int_free
(libglib-2.0.so.0.5200.3 -gslist.c:878 )        g_slist_free_full
(bluetoothd -a2dp.c:165 )        setup_unref
(bluetoothd -a2dp.c:2184 )       a2dp_cancel
(bluetoothd -sink.c:317 )        sink_unregister
(bluetoothd -service.c:176 )     service_remove
(bluetoothd -device.c:4678 )     device_remove
(bluetoothd -adapter.c:6573 )    adapter_remove
(bluetoothd -adapter.c:8832 )    index_removed
(bluetoothd -queue.c:220 )       queue_foreach
(bluetoothd -mgmt.c:304 )        can_read_data
(bluetoothd -io-glib.c:170 )     watch_callback
(libglib-2.0.so.0.5200.3 -gmain.c:3234 )        g_main_context_dispatch
(libglib-2.0.so.0.5200.3 -gmain.c:3972 )        g_main_context_iterate
(libglib-2.0.so.0.5200.3 -gmain.c:4168 )        g_main_loop_run
(bluetoothd -main.c:798 )        main
(libc-2.27.so -libc-start.c:308 )         __libc_start_main
(bluetoothd + 0x0000b089 )       _start
(bluetoothd + 0x0000b05f )       _init

triggered when 'usb disconnect' happened during AVDTP_SET_CONFIGURATION
request is sent but haven't received the response.
In this situation, the recovering process goes into sink.c:sink_free and
then a2dp.c:a2dp_cancel, avdtp.c:cancel_request, avdtp.c:connection_lost,
avdtp.c:release_stream.

During recovering, the reference count of setup and avdtp decrease more
than it increase, which ends up causing the crash.

The reference count of setup decreases one more time since
a2dp.c:setconf_cfm(called by cfm->set_configuration in
avdtp.c:cancel_request) was called in the 'error mode', which didn't
reference the setup, but in a2dp.c:abort_cfm(called by cfm->abort in
avdtp.c:release_stream), the reference count decreased by 1.

In this case, abort_cfm shouldn't be called as we already know
setconf_cfm didn't send any request. Setting avdtp_sep_state to
AVDTP_STATE_ABORTING should avoid this issue.

The reference count of avdtp decrease one more time since
both sink.c:sink_free and sink.c:sink_set_state(called from
avdtp.c:connection_lost -> avdtp.c:avdtp_set_state) unreference avdtp
for the session. The changes in sink.c should avoid the issue.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoAUTHORS: mention Szymon's contributions
Szymon Janc [Thu, 9 Jan 2020 10:37:28 +0000 (11:37 +0100)]
AUTHORS: mention Szymon's contributions

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Decode LE CTE Request Failed event
Szymon Czapracki [Wed, 8 Jan 2020 11:47:52 +0000 (12:47 +0100)]
monitor: Decode LE CTE Request Failed event

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Decode LE Set Default Periodic Adv Sync Transfer Params. command
Szymon Czapracki [Wed, 8 Jan 2020 11:47:51 +0000 (12:47 +0100)]
monitor: Decode LE Set Default Periodic Adv Sync Transfer Params. command

< HCI Command: LE Set Default Periodic Advertisng Sync Transfer Parameters (0x08|0x005d) plen 6
        Mode: Enabled with report events disabled (0x01)
        Skip: 0x00
        Sync timeout: 0 msec (0x0000)
        Sync CTE type: 0x0000
> HCI Event: Command Status (0x0f) plen 4
      LE Set Default Periodic Advertisng Sync Transfer Parameters (0x08|0x005d) ncmd 1
        Status: Unknown HCI Command (0x01)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Decode LE Set Periodic Adv Sync Transfer Parameterers command
Szymon Czapracki [Wed, 8 Jan 2020 11:47:50 +0000 (12:47 +0100)]
monitor: Decode LE Set Periodic Adv Sync Transfer Parameterers command

< HCI Command: LE Periodic Advertising Sync Transfer Parameters (0x08|0x005c) plen 8
        Connection handle: 1
        Mode: Disabled (0x00)
        Skip: 0x00
        Sync timeout: 0 msec (0x0000)
        Sync CTE type: 0x0000
> HCI Event: Command Status (0x0f) plen 4
      LE Periodic Advertising Sync Transfer Parameters (0x08|0x005c) ncmd 1
        Status: Unknown HCI Command (0x01)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Decode LE Periodic Advertising Set Info Transfer command
Szymon Czapracki [Wed, 8 Jan 2020 11:47:49 +0000 (12:47 +0100)]
monitor: Decode LE Periodic Advertising Set Info Transfer command

< HCI Command: LE Periodic Advertising Set Info Transfer (0x08|0x005b) plen 5
       Connection handle: 1
       Service data: 0x0000
       Advertising handle: 0
> HCI Event: Command Status (0x0f) plen 4
     LE Periodic Advertising Set Info Transfer (0x08|0x005b) ncmd 1
       Status: Unknown HCI Command (0x01)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Decode LE Periodic Advertising Sync Transfer command
Szymon Czapracki [Wed, 8 Jan 2020 11:47:48 +0000 (12:47 +0100)]
monitor: Decode LE Periodic Advertising Sync Transfer command

< HCI Command: LE Periodic Advertising Sync Transfer (0x08|0x005a) plen 6
        Connection handle: 1
        Service data: 0x0001
        Sync handle: 1
> HCI Event: Command Status (0x0f) plen 4
      LE Periodic Advertising Sync Transfer (0x08|0x005a) ncmd 1
        Status: Unknown HCI Command (0x01)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Decode LE Set Periodic Advertising Receive Enable command
Szymon Czapracki [Wed, 8 Jan 2020 11:47:47 +0000 (12:47 +0100)]
monitor: Decode LE Set Periodic Advertising Receive Enable command

< HCI Command: LE Periodic Advertising Receive Enable (0x08|0x0059) plen 3
        Sync handle: 0
        Reporting: Enabled (0x01)
> HCI Event: Command Status (0x0f) plen 4
      LE Periodic Advertising Receive Enable (0x08|0x0059) ncmd 1
        Status: Unknown HCI Command (0x01)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Decode LE Periodic Advertising Sync Transfer Received Event
Szymon Czapracki [Wed, 8 Jan 2020 11:47:46 +0000 (12:47 +0100)]
monitor: Decode LE Periodic Advertising Sync Transfer Received Event

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Update periodic sync commands.
Szymon Czapracki [Wed, 8 Jan 2020 11:47:45 +0000 (12:47 +0100)]
monitor: Update periodic sync commands.

Change fields in periodic_adv_(create/term)_sync_cmd, according to their
description with 5.1 specification.

< HCI Command: LE Periodic Advertising Create Sync (0x08|0x0044) plen 14
        Options: 0x0001
        Use Periodic Advertiser List
        Reporting initially enabled
        SID: 0x00
        Adv address type: Public (0x00)
        Adv address: 00:00:00:00:00:00 (OUI 00-00-00)
        Skip: 0x0000
        Sync timeout: 0 msec (0x0000)
        Sync CTE type: 0x0000
> HCI Event: Command Status (0x0f) plen 4
      LE Periodic Advertising Create Sync (0x08|0x0044) ncmd 1
        Status: Unknown HCI Command (0x01)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoagent: Detect when ongoing request is already in progress
Luiz Augusto von Dentz [Fri, 27 Dec 2019 18:19:15 +0000 (10:19 -0800)]
agent: Detect when ongoing request is already in progress

This detects when a agent request is already pending for the same device
which could happen when there are 2 or more adapters in the system and
they are trying to pair with each other.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/mainloop: Use connect() instead of bind() for sd_notify
Guillem Jover [Sat, 14 Dec 2019 09:40:52 +0000 (10:40 +0100)]
shared/mainloop: Use connect() instead of bind() for sd_notify

We are the client, so we should be using connect(2) instead of bind(2),
otherwise when using non-abstract Unix sockets we will get an error that
the address is already in use.

This breaks the notify support in dpkg's start-stop-daemon.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoclient: Fix memory leak
Syam Sidhardhan [Tue, 3 Dec 2019 09:48:42 +0000 (15:18 +0530)]
client: Fix memory leak

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoRevert "input: Set uniq attribute"
Luiz Augusto von Dentz [Wed, 4 Dec 2019 11:59:21 +0000 (13:59 +0200)]
Revert "input: Set uniq attribute"

UNIQ is changes to the kernel has not been accepted yet.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoinput: Set uniq attribute
Abhishek Pandit-Subedi [Tue, 3 Dec 2019 01:04:00 +0000 (17:04 -0800)]
input: Set uniq attribute

Set the uniq attribute of /dev/uinput with the peer device address.

The resulting uinput device will look like this:

$ udevadm info -a -p /sys/devices/virtual/input/input17
...
  looking at device '/devices/virtual/input/input17':
    KERNEL=="input17"
    SUBSYSTEM=="input"
    DRIVER==""
    ATTR{inhibited}=="0"
    ATTR{name}=="BeatsStudio Wireless (AVRCP)"
    ATTR{phys}=="00:00:00:6e:d0:74"
    ATTR{properties}=="0"
    ATTR{uniq}=="00:00:00:1a:33:21"

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoinput: Change uinput name and add AVRCP suffix
Abhishek Pandit-Subedi [Tue, 3 Dec 2019 01:03:59 +0000 (17:03 -0800)]
input: Change uinput name and add AVRCP suffix

When creating the uinput device, change the name to the peer device
name and add a "(AVRCP)" suffix.

The resulting uinput device will look like this:

$ udevadm info -a -p /sys/devices/virtual/input/input17
...
  looking at device '/devices/virtual/input/input17':
    KERNEL=="input17"
    SUBSYSTEM=="input"
    DRIVER==""
    ATTR{inhibited}=="0"
    ATTR{name}=="BeatsStudio Wireless (AVRCP)"
    ATTR{phys}=="00:00:00:6e:d0:74"
    ATTR{properties}=="0"
    ATTR{uniq}==""

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoinput: Update virtual input devices with correct info
Abhishek Pandit-Subedi [Tue, 3 Dec 2019 01:03:58 +0000 (17:03 -0800)]
input: Update virtual input devices with correct info

Update uhid and uinput devices with lowercase addresses (to match how
kernel prints it via %pMR). Also update uinput to include the phys
attribute and correctly set the vendor/product/version during init.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add ba2strlc to match kernel printk format
Abhishek Pandit-Subedi [Tue, 3 Dec 2019 01:03:57 +0000 (17:03 -0800)]
lib: Add ba2strlc to match kernel printk format

When the kernel prints the bluetooth address (via %pMR), it prints the
address in lower case. ba2strlc should be used in cases where we should
match the kernel casing (i.e. addresses assigned to /dev/uhid and
/dev/uinput)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoAUTHORS: Mention Silvair's contributions
Michał Lowas-Rzechonek [Wed, 27 Nov 2019 09:42:54 +0000 (10:42 +0100)]
AUTHORS: Mention Silvair's contributions

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoAUTHORS: Fix typo in Inga's surname
Michał Lowas-Rzechonek [Wed, 27 Nov 2019 09:42:53 +0000 (10:42 +0100)]
AUTHORS: Fix typo in Inga's surname

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoAUTHORS: Mention Alain's contributions
Marcel Holtmann [Wed, 27 Nov 2019 05:56:24 +0000 (06:56 +0100)]
AUTHORS: Mention Alain's contributions

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Add definition for Load Blocked Keys command
Alain Michaud [Tue, 26 Nov 2019 19:14:52 +0000 (19:14 +0000)]
doc: Add definition for Load Blocked Keys command

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Fix wrongly documented mgmt command opcodes
Alain Michaud [Tue, 26 Nov 2019 19:09:41 +0000 (19:09 +0000)]
doc: Fix wrongly documented mgmt command opcodes

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoREADME: Adding information for dependency get command for Debian
Alain Michaud [Tue, 26 Nov 2019 19:08:42 +0000 (19:08 +0000)]
README: Adding information for dependency get command for Debian

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agocore/advertising: Fix crash when client is added after unregistration
Simon Mikuda [Tue, 12 Nov 2019 13:56:35 +0000 (14:56 +0100)]
core/advertising: Fix crash when client is added after unregistration

After "register_advertisement()" callback "client_proxy_added()" was yet
called but it was actually called after: "unregister_advertisement()" which
caused segmentation fault because client was removed twice.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agocore/advertising: Fix crash when unregistering advertisement too fast
Simon Mikuda [Tue, 12 Nov 2019 13:56:34 +0000 (14:56 +0100)]
core/advertising: Fix crash when unregistering advertisement too fast

When advertisement is unregistered during MGMT_OP_ADD_ADVERTISING it will
crash in add_adv_callback because struct btd_adv_client no longer exist.

This is seen also in debug log from bluetoothd:
bluetoothd[29698]: src/advertising.c:register_advertisement() RegisterAdvertisement
bluetoothd[29698]: src/advertising.c:client_create() Adding proxy for /org/bluez/example/advertisement0
bluetoothd[29698]: src/advertising.c:register_advertisement() Registered advertisement at path /org/bluez/example/advertisement0
bluetoothd[29698]: src/advertising.c:parse_service_uuids() Adding ServiceUUID: 180D
bluetoothd[29698]: src/advertising.c:parse_service_uuids() Adding ServiceUUID: 180F
bluetoothd[29698]: src/advertising.c:parse_manufacturer_data() Adding ManufacturerData for ffff
bluetoothd[29698]: src/advertising.c:parse_service_data() Adding ServiceData for 9999
bluetoothd[29698]: src/advertising.c:parse_data() Adding Data for type 0x26 len 3
bluetoothd[29698]: src/advertising.c:refresh_adv() Refreshing advertisement: /org/bluez/example/advertisement0
bluetoothd[29698]: src/advertising.c:unregister_advertisement() UnregisterAdvertisement
bluetoothd[29698]: src/advertising.c:add_adv_callback() Advertisement registered: �
Segmentation fault (core dumped)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoGATT: Initialise service discovery handle range to support GATT-caching 50/253450/1 accepted/tizen/unified/20210218.042152 submit/tizen/20210216.223518
Ayush Garg [Wed, 10 Feb 2021 06:40:38 +0000 (12:10 +0530)]
GATT: Initialise service discovery handle range to support GATT-caching

This change will initialise handle range based on
whether GATT database is empty or not.
This is done to properly handle GATT-Cached data and
prevent resetting it in case when same database-hash
is received from GATT-Server during service discovery.

Change-Id: Ic2a8dc4ff9a5ccf563615156b7b5e97d1e2b3bca
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoModify service file name to bluez-start.service 36/252936/1 accepted/tizen/unified/20210204.134648 submit/tizen/20210203.002701
Wootak Jung [Wed, 3 Feb 2021 07:17:34 +0000 (16:17 +0900)]
Modify service file name to bluez-start.service

Change-Id: Id027c0fa8f8655f9b9d5518bce7b5a50060c18d5
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
3 years agoMerge "Fix the crash when stopping LE discovery" into tizen
Pyun DoHyun [Wed, 3 Feb 2021 00:09:20 +0000 (00:09 +0000)]
Merge "Fix the crash when stopping LE discovery" into tizen

3 years agoFix the crash when stopping LE discovery 43/252743/1
DoHyun Pyun [Tue, 2 Feb 2021 06:02:02 +0000 (15:02 +0900)]
Fix the crash when stopping LE discovery

This patchset combines two upstream commits.
If we upgrade bluez version, this issue will be resolved.
But for the product issue, we make the hotfix patchset.

------------------------------------------------
commit b94e7fc4e267edbae5359a3efb69b14575c6ca3b
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Thu Jun 11 10:26:57 2020 -0700

    adapter: Fix passing wrong pointer to stop discovery
------------------------------------------------
commit 9dd6df753a0a7e09e09cea0fdc0bc056389624d4
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Mon Jun 8 14:55:57 2020 -0700

    adapter: Fix possible crash when stopping discovery
-----------------------------------------------

Change-Id: I5c9d5fa98e9a1201e2547fd674da851a4e82edab
Signed-off-by: DoHyun Pyun <dh79.pyun@samsung.com>