Archie Pusaka [Fri, 29 May 2020 05:31:04 +0000 (13:31 +0800)]
audio/avrcp: Fix media player passthrough bitmask
Adjust the values of the passthrough bitmask with the declared
keys in avctp.c:key_map, according to section 6.10.2.1 of the
AVRCP specification.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 4 Jun 2020 21:04:39 +0000 (14:04 -0700)]
shared/hci: Fix crash when bt_hci_unref is used from callback
If application unref its reference on the command callback it can lead
to crashes like the following:
Invalid read of size 1
at 0x254270: wakeup_writer (hci.c:187)
by 0x254321: process_response (hci.c:229)
by 0x254590: process_event (hci.c:263)
by 0x254590: io_read_callback (hci.c:305)
by 0x269258: watch_callback (io-glib.c:170)
by 0x496756F: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.6200.6)
by 0x49678FF: ??? (in /usr/lib64/libglib-2.0.so.0.6200.6)
by 0x4967BF2: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.6200.6)
by 0x269C6C: mainloop_run (mainloop-glib.c:79)
by 0x26A219: mainloop_run_with_signal (mainloop-notify.c:201)
by 0x171A35: main (main.c:770)
Address 0x53b7e81 is 17 bytes inside a block of size 64 free'd
at 0x483AA0C: free (vg_replace_malloc.c:540)
by 0x254A70: bt_hci_unref (hci.c:461)
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Sonny Sasaka [Wed, 3 Jun 2020 17:56:00 +0000 (10:56 -0700)]
shared/util: Fix undefined behavior of left shift
When left-shifting 1, we should be explicit that it is an unsigned 1.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 3 Jun 2020 17:31:59 +0000 (10:31 -0700)]
gatt: Fix possible crash when unable to generate hash
gatt_db_get_hash actually depends on crypto so platforms that don't
have it enabled shall not register GATT_CHARAC_DB_HASH as otherwise it
would cause a crash due to hash being NULL.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 1 Jun 2020 21:25:30 +0000 (14:25 -0700)]
a2dp: Fix crash on transport_cb
There have been reports of crashes on transport_cb where the setup
would most likely already have been freed but transport_cb would still
be called, so instead of assuming the setup pointer would be valid try
to lookup the list of active setups and log a warning when it happens.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alain Michaud [Mon, 1 Jun 2020 00:56:00 +0000 (00:56 +0000)]
a2dp: Fix double free in load_remote_sep
This patch fixes a double free condition in load_remote_sep. Value is
freed, then the inner loop is broken, but the rest of the outer loop
will attempt to free value again.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Sonny Sasaka [Sat, 30 May 2020 08:51:18 +0000 (01:51 -0700)]
a2dp: Fix ref counting bug of setup_unref
In a2dp_reconfig, setup is ref-counted by cb_data. However, in the fail
label setup is unref-ed but cb_data is not cleared. This may cause
double unref in the future if cb_data gets executed. Instead, we should
do setup_cb_free to clear cb_data and unref setup.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 28 May 2020 22:07:37 +0000 (15:07 -0700)]
adapter: Fix not removing client from discovery list
If command MGMT_OP_START_DISCOVERY fails we reply with btd_error_busy
but we don't remove the client from the list which would prevent the
client to start it once again.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 28 May 2020 17:18:17 +0000 (10:18 -0700)]
avrcp: Don't attempt to load settings if on volume changed is supported
If only volume changed is supported that means the player cannot really
indicate track/metadata changes so don't attempt to read them.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 27 May 2020 22:39:56 +0000 (15:39 -0700)]
avrcp: Fix always requesting player settings for category 1
Player Application settings is not mandatory for category 1 so instead
of always listing the settings the code now checks if
AVRCP_FEATURE_PLAYER_SETTINGS is enabled.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Stimim Chen [Wed, 27 May 2020 05:02:28 +0000 (13:02 +0800)]
shared/shell: don't hook io_hup on non-interactive
When we are in non-interactive mode (data.mode == 1), we should not
terminate the mainloop when stdin is disconnected.
For example, in bash, the following command would terminate immediately
without any output.
: | btmgmt info
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 26 May 2020 18:07:48 +0000 (11:07 -0700)]
advertising: Fix advertising flags
When an instance wants to force being discoverable the code shall
actually check if the adapter is in general disverable mode already and
if not set BR/EDR as not supported so that devices scanning don't
assume BR/EDR PHY is connectable when in fact it isn't.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 26 May 2020 16:41:00 +0000 (09:41 -0700)]
emulator: Use master settings for CIS params
The slave will be the first to respond with CIS Estabished but only the
master has the CIG params set so this switch to master so parameters are
proper.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 21 May 2020 17:35:10 +0000 (10:35 -0700)]
emulator: Don't require ACL connection for Setup ISO Data Path
LE Setup ISO Data Path can be used even before the ACL handle exists
when master since Set CIG Parameters will respond with ISO handle it
can then be used to setup the data path in advance of ACL connection.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alvar Penning [Wed, 20 May 2020 20:44:44 +0000 (22:44 +0200)]
test/example-advertisement: Fix include_tx_power
Adding the Tx Power Level is no longer done via IncludeTxPower, but via
the tx-power value in the Includes array. The previous code did not
throw an error, but neither led to the insertion of the value. As a
result of this change, include_tx_power now adds the Tx Power Level
again.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 18 May 2020 20:49:46 +0000 (13:49 -0700)]
doc/settings-storage: Update documentation of Endpoints
Add documentation of DelayReporting storage as that has been added to
the cache.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 18 May 2020 18:05:44 +0000 (11:05 -0700)]
doc/media-api: Add documentation for DelayReporting
The code was expecting the endpoint to expose
MediaEndpoint.DelayReporting property in order to expose
MediaTransport.Delay property.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 13 May 2020 23:20:52 +0000 (16:20 -0700)]
a2dp: Fix caching endpoints for unknown version
Don't cache the capabilities of endpoints which the version is unknown
since so capabilities may not be available in such case.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Wed, 20 May 2020 14:56:17 +0000 (16:56 +0200)]
lib: Update company identifiers
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Wed, 20 May 2020 14:43:00 +0000 (16:43 +0200)]
doc: Add information about management version 1.17
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Rafael Ávila de Espíndola [Tue, 12 May 2020 02:36:39 +0000 (02:36 +0000)]
HACKING: Mention disabling SELinux
Running bluetoothd from the build directory I noticed that as soon as
a bluetooth audio device was connect, bluetoothd would be disconnected
from dbus and print
Disconnected from D-Bus. Exiting.
Luiz Augusto von Dentz suggested trying with SELinux disabled and that
solved the problem.
This patch just documents how to disable SELinux before running
bluetoothd from the build directory. I would love to say more about
why that is needed, but could not find anything on the audit log.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Miao-chen Chou [Wed, 6 May 2020 00:54:20 +0000 (17:54 -0700)]
doc/advertisement-monitor-api: Rename methods and shorten the preset strings
This renames RegisterApplication/UnregisterApplication to
RegisterMonitor/UnregisterMonitor and shortens the strings used in some
properties.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Haakon Drews [Sat, 16 May 2020 21:02:38 +0000 (23:02 +0200)]
hog: Set vendor, product and version for all instances
Set the the correct vendor and product ids for all UHID/HoG
devices when they are unknown at HoG creation time.
Before this change, when connecting a BT device with multiple HoG
services for the first time, only the first HoG instance's vendor,
product and version fields would be set by the DIS callback. This meant
that all HoG instances except the first would be left with unset values
and their UHID devices would then be created with '0000:0000' as their
vendor:product ids.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 18 May 2020 16:22:54 +0000 (09:22 -0700)]
emulator: Fix not reporting LE Set Default PHY as supported
LE Set Default PHY (Octet 35 - Bit 5) is in fact supported.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Mon, 18 May 2020 07:56:17 +0000 (09:56 +0200)]
build: Move --enable-hid2hci later in the list options
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Mon, 18 May 2020 07:54:18 +0000 (09:54 +0200)]
build: Enable the hid2hci tool for developers by default
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Sonny Sasaka [Wed, 13 May 2020 21:38:12 +0000 (14:38 -0700)]
build: Add an option to explicitly enable hid2hci
hid2hci is no longer a common use. This patch changes the default to not
build and install hid2hci and provide a configure flag --enable-hid2hci
to explicitly enable it.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Inga Stotland [Thu, 14 May 2020 02:20:33 +0000 (19:20 -0700)]
test: Fix payload and model opcode packing in test-mesh
Use correct packing of multi-byte values in message payload bytearray.
For example, a 2-byte opcode 0x8204 is packed as 0x82 0x04, i.e. in
natural order.
Add transaction ID parameter to "set" commands of generic On/Off
model. Server will ignore the identical commands with the same
transaction ID, source and destination during a timeout period
of 6 seconds.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 13 May 2020 21:06:05 +0000 (14:06 -0700)]
emulator: Fix response to LE Setup ISO Data Path
LE Setup ISO Data Path expects the connection handle to be part of the
response.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 13 May 2020 21:05:01 +0000 (14:05 -0700)]
monitor: Fix parsing of LE Setup ISO Data Path response
LE Setup ISO Data Path response actually contains the handle in addition
to the status:
> HCI Event: Command Complete (0x0e) plen 6
LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
Status: Success (0x00)
Handle: 44
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Łukasz Rymanowski [Fri, 8 May 2020 13:23:49 +0000 (15:23 +0200)]
tools/btgatt-client: Add option to set BT_SECURITY_FIPS
Needed for GAP/SEC/SEM/BI-10-C.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Thu, 7 May 2020 06:38:46 +0000 (14:38 +0800)]
shared/gatt-server: Fix read multiple charc values
According to bluetooth spec Ver 5.2, Vol 3, Part G, 4.8.4, An
ATT_ERROR_RSP PDU shall be sent by the server in response to the
ATT_READ_MULTIPLE_RSP PDU if insufficient authentication,
insufficient authorization, insufficient encryption key size, or
insufficient encryption is used by the client, or if a read operation
is not permitted on any of the Characteristic Values.
Currently if the size of the response grows larger than the MTU size,
BlueZ does an early return and not check the permission for the rest
of the characteristics. This patch forces BlueZ to check for possible
errors even though we already reach MTU size.
This patch also moves the read permission check for read multiple
characteristics so it is done before actually retrieving the
characteristics.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 7 May 2020 20:59:30 +0000 (13:59 -0700)]
avrcp: Handle not implemented response to AVRCP_LIST_PLAYER_ATTRIBUTES
If remote device respond with ctype set to not implement don't continue
parsing the packet.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Mariusz Skamra [Tue, 5 May 2020 08:29:01 +0000 (10:29 +0200)]
client: Update write callbacks with invalid offset error handlers
This patch adds invalid offset handlers to write callbacks of attributes.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Łukasz Rymanowski [Thu, 7 May 2020 21:45:37 +0000 (23:45 +0200)]
client: Fix possible stack corruption
DBUS_TYPE_BOOLEAN is 'int', which does not have to be the same size as
'bool'.
On architecture where bool is smaller than in, getting prepare-authorize
will corrupt the stack
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Tue, 5 May 2020 23:27:47 +0000 (01:27 +0200)]
tools: Add support for handling experimental features
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Tue, 5 May 2020 23:26:58 +0000 (01:26 +0200)]
monitor: Set msft_opcode for Microsoft vendor extension
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Tue, 5 May 2020 23:26:27 +0000 (01:26 +0200)]
monitor: Decode mgmt commands and event for experimental features
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Tue, 5 May 2020 23:25:34 +0000 (01:25 +0200)]
lib: Add structures and constants for experimental feature support
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Tue, 5 May 2020 23:24:42 +0000 (01:24 +0200)]
doc: Add reading and setting experimental features commands
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alain Michaud [Mon, 4 May 2020 15:36:26 +0000 (15:36 +0000)]
lib: Fixing opcode definition order
Fixing what looks like a bad merge in the opcode order.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Sun, 3 May 2020 11:10:55 +0000 (13:10 +0200)]
device: Return error when ConnectProfile DBus method fails (second fix)
This is fixup of commit
3aa815a31017 ("device: Return error when
ConnectProfile DBus method fails"). There is another place which needs
to distinguish between Connect and ConnectProfile DBus method.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Sun, 3 May 2020 11:06:29 +0000 (13:06 +0200)]
a2dp: Check for valid SEP in a2dp_reconfigure
a2dp_reconfigure() is called as callback when local and remote SEP does not
have to be valid anymore, sep->lsep can be NULL.
This change fixes bluetoothd daemon crash (dereferencing NULL sep->lsep)
when audio agent disconnect in the middle of the reconfigure call.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Sun, 3 May 2020 11:11:48 +0000 (13:11 +0200)]
doc: Update assigned-numbers.txt
Define missing rfcomm channels specified in src/profile.c
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alain Michaud [Fri, 1 May 2020 19:22:17 +0000 (19:22 +0000)]
shared/gatt-client: Ignore orphaned characteristics
The gatt discovery proceedure simplification to discover all
characteristics at once has exposed a device side issue where some
device implementation reports orphaned characteristics. While this
technically shouldn't be allowed, some instances of this were observed
(namely on some Android phones).
The fix is to simply skip over orphaned characteristics and continue
with everything else that is valid.
This has been tested as part of the Android CTS tests against an
affected platform and was confirmed to have worked around the issue.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alain Michaud [Fri, 1 May 2020 19:24:47 +0000 (19:24 +0000)]
shared/gatt-client: Fixing a few comment typos
This change simply fixes a few comment typos.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 30 Apr 2020 21:45:25 +0000 (14:45 -0700)]
monitor: Fix Set Host Feature
print_bitfield expects the actual value not the bit position:
< HCI Command: LE Set Host Feature (0x08|0x0074) plen 2
Bit Number: 32
Isochronous Channels (Host Support)
Bit Value: 1
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 30 Apr 2020 21:35:05 +0000 (14:35 -0700)]
a2dp: Simplify error messages
Printing things like Error string shall not be necessary since it is
already logging as error type.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 29 Apr 2020 21:01:12 +0000 (14:01 -0700)]
log: Make error and warn log file and function information
This makes it a lot simpler to find out where errors/warnings come from
and also remove the possibility of clashes when having multiple places
where the message would be exactly the same.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Fri, 1 May 2020 17:52:39 +0000 (19:52 +0200)]
doc: Add missing empty line
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Wed, 29 Apr 2020 17:46:36 +0000 (19:46 +0200)]
monitor: Use __attribute__ ((packed)) instead of __packed
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Sun, 26 Apr 2020 21:02:02 +0000 (23:02 +0200)]
device: Fix reply of DisconnectProfile
When DisconnectProfile is called with disconnected UUID, bluetooth daemon
often returned error "Operation already in progress". This change fixed it
and no error message is returned for this case.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
David Lechner [Tue, 28 Apr 2020 17:51:49 +0000 (12:51 -0500)]
src/gatt-client: allow "command" even when property not set
This modifies the GATT client characteristic WriteValue D-Bus method to
not check that the characteristic supports the requested type of
write when the "type" option is set to "command".
Before this change, if the "type" option was used and it was set to
"reliable" or "request", then BlueZ would attempt the write even if the
characteristic does not support that write type. On the other hand, if
"type" was set to "command" or was not specified, the method would
return a org.bluez.Error.NotSupported error without attempting to write.
After this change, the WriteValue method will consistently always
ignore the characteristic properties and attempt to write when the
"type" option is used instead of having a different behavior for the
"command" type.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Tue, 21 Apr 2020 07:59:14 +0000 (15:59 +0800)]
gatt: Fix service_changed characteristic permission
According to bluetooth spec Ver 5.2, Vol 3, Part G, 7.1, the
service_changed characteristic is not readable. Therefore, this
patch marks it as such.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Miao-chen Chou [Mon, 27 Apr 2020 20:12:19 +0000 (13:12 -0700)]
doc: Add Advertisement Monitoring API
This patch proposes an Advertisement Monitoring API for an application
to register a job of monitoring ADV reports with content filter and
RSSI thresholds.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alain Michaud [Thu, 23 Apr 2020 14:23:05 +0000 (14:23 +0000)]
doc/adapter-api: Add Roles property
This change adds a new property to indicate the support for concurrent
roles which means that the controller has reported the appropriate
LE_Supported_States (hdev->le_states) and that the controller's driver
has reported correctly handling the various reported states.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Fri, 24 Apr 2020 17:32:16 +0000 (10:32 -0700)]
device: Fix not reporting errors to Connect
The check for connected services was inverted.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Thu, 23 Apr 2020 23:32:43 +0000 (01:32 +0200)]
device: Return error when ConnectProfile DBus method fails
Without this patch ConnectProfile DBus method does not return failure if
profile connection failed and some other profile was already connected.
This is not correct behavior as ConnectProfile DBus method should always
return error when specified profile failed to connect. This patch fixes
this it.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Thu, 23 Apr 2020 23:34:14 +0000 (01:34 +0200)]
btio: Fix error number
In commit
d20ee8273e61e16c78582344f274254973cdf00f was unintentionally
negated error number. Fix this mistake.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 23 Apr 2020 21:50:55 +0000 (14:50 -0700)]
emulator: Add support for LE Remove ISO Data Path
This implements support for LE Remove ISO Data Path command.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 22 Apr 2020 22:09:33 +0000 (15:09 -0700)]
emulator: Add support for LE Setup ISO Data Path
This implements support for LE Setup ISO Data Path command.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 21 Apr 2020 21:46:34 +0000 (14:46 -0700)]
emulator: Add support for LE Set Host Feature
This implements support for LE Set Host Feature
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 21 Apr 2020 22:13:20 +0000 (15:13 -0700)]
emulator: Fix version number of ISO related features
There are part of Bluetooth 5.2 specification not 6.0.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 21 Apr 2020 21:32:19 +0000 (14:32 -0700)]
monitor: Add decoding support for HCI LE Set Host Feature
This adds decoding support for LE Set Host Feature.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 21 Apr 2020 21:31:16 +0000 (14:31 -0700)]
monitor: Remove use of base defines for 5.2
Use the allocated value directly instead of base value + offset.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Wed, 22 Apr 2020 17:01:05 +0000 (19:01 +0200)]
profile: Fix reporting error message when connection failed
Some bluetooth headsets do not support connecting more then one bluetooth
profile (e.g. in parallel A2DP and HSP, or HSP and HFP) and issuing
connect() syscall for second profile returns just ECONNREFUSED.
Prior this patch bluetooth daemon for such situation reported following
message to log:
Unable to get connect data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107)
Message is incorrect as connect() syscall failed, not getpeername(). This
patch fixes this problem and logs correct error message:
Headset Voice gateway failed connect to XX:XX:XX:XX:XX:XX: Connection refused (111)
Main problem was in ext_connect() function which called bt_io_get() for
retrieving remote address (BT_IO_OPT_DEST) and if it failed then original
error from connect() syscall was masked. Because it is not possible to
retrieve BT_IO_OPT_DEST for unconnected socket, original destination
address for error message is propagated via connect_add() function in btio.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Wed, 22 Apr 2020 17:01:04 +0000 (19:01 +0200)]
btio: Show destination address in connect error message
When connect() fails it is not possible to retrieve destination address as
socket is not bound. So put destination address into error message.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Stéphane Cerveau [Mon, 20 Apr 2020 18:40:29 +0000 (20:40 +0200)]
add hog ref before adding to instances
To avoid a double hog free, need to add a ref
when adding the hog to the slist.
This bug has been reproduced with gamepad-8718
which was connecting/disconnecting frantically.
Fix also a typo in the method hog_attach_instance
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Mon, 20 Apr 2020 12:07:05 +0000 (14:07 +0200)]
device: Fix compilation with GCC 10
Class is using only 3 bytes so make sure GCC is aware of that.
src/device.c:397:3: note: ‘sprintf’ output between 9 and 11 bytes into a destination of size 9
397 | sprintf(class, "0x%6.6x", device->class);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Mon, 20 Apr 2020 12:07:04 +0000 (14:07 +0200)]
avctp: Fix compilation with GCC 10
This one is a false positive but since we never use more than
UINPUT_MAX_NAME_SIZE bytes of name we can silence GCC by reducing
size of source string.
CC profiles/audio/bluetoothd-avctp.o
In function ‘uinput_create’,
inlined from ‘init_uinput’ at profiles/audio/avctp.c:1259:20:
profiles/audio/avctp.c:1188:3: error: ‘strncpy’ output may be truncated copying 79 bytes from a string of length 248 [-Werror=stringop-truncation]
1188 | strncpy(dev.name, name, UINPUT_MAX_NAME_SIZE);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Mon, 20 Apr 2020 12:07:03 +0000 (14:07 +0200)]
sap: Fix compilation with GCC 10
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Mon, 20 Apr 2020 12:07:02 +0000 (14:07 +0200)]
android: Fix build with GCC 10
status and state are used to hold various enum types depending on test
and callback passed. Define them as int to avoid warnings about enum
assignment from invalid type.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Olivier Martin [Tue, 7 Apr 2020 19:44:00 +0000 (21:44 +0200)]
emulator: Fix command line parameters with optional argument
Some parameters were missing the indication that additional
argument could be expected.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Tue, 14 Apr 2020 20:46:02 +0000 (22:46 +0200)]
doc: Update documentation for HSP and HFP profiles
Fix information about default rfcomm channel number in HFP HS role
(it is 7, not 6) and add documentation about default values.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 14 Apr 2020 20:23:23 +0000 (13:23 -0700)]
profile: Return -ENOENT for HSP AG
HSP AG role doesn't have any supported features.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Mon, 13 Apr 2020 16:25:13 +0000 (18:25 +0200)]
profile: Add default SDP record for Headset role of HSP 1.2
This would allow D-Bus agents to implement HS role of HSP profile.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Mon, 13 Apr 2020 16:25:12 +0000 (18:25 +0200)]
profile: Export Remote Audio Volume Control SDP value
Remote Audio Volume Control property in SDP record for HSP HS role
indicates if device supports volume control.
It is required for D-Bus agents which implements audio part of HSP
profile to know if remote device supports volume control or not.
With this change bluez exports status of this SDP property via firt bit
in Features entry in NewConnection() DBus callback method, like for HFP
profile.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 13 Apr 2020 23:43:42 +0000 (16:43 -0700)]
profile: Remove duplicate initialization of version and profile
These values are always set later by send_new_connection.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Mon, 13 Apr 2020 16:25:11 +0000 (18:25 +0200)]
profile: Fix not setting default features for HFP 1.7
When HFP AG features are not set then according to HFP 1.7.2
specification it has value
0b001001.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Thu, 9 Apr 2020 10:30:35 +0000 (12:30 +0200)]
test/example-advertisement: Fix advertising when discoverable
If adapter is discoverable (or LE-only) advertising was failing due
to too big adv data being set. Make sure there is enough space left
for flags if needed.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Wed, 8 Apr 2020 08:08:24 +0000 (10:08 +0200)]
monitor: Add support for opening extra mgmt socket for events
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Tue, 7 Apr 2020 08:56:09 +0000 (16:56 +0800)]
shared/att: Check the signature of att packets
Tested to pass these BT certification test
SM/MAS/SIGN/BV-03-C
SM/MAS/SIGN/BI-01-C
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Tue, 7 Apr 2020 08:56:08 +0000 (16:56 +0800)]
unit/test-crypto: test for bt_crypto_verify_att_sign
Adding tests for verifying att signature
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Tue, 7 Apr 2020 08:56:07 +0000 (16:56 +0800)]
shared/crypto: Add bt_crypto_verify_att_sign
This is used to verify the signature of incoming ATT packets.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 7 Apr 2020 00:24:08 +0000 (17:24 -0700)]
client: Make advertise instances default to discoverable
The more common case is that advertisements are discoverable not the
other way around.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 6 Apr 2020 21:19:03 +0000 (14:19 -0700)]
gatt: Fix not sending any data when server supports AcquireWrite
msg.msg_iovlen should be set to 1 to forward the data received over the
file descriptor.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sun, 5 Apr 2020 18:51:36 +0000 (20:51 +0200)]
monitor: Fix off-by-one error with IRKs and LTKs
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sun, 5 Apr 2020 07:58:31 +0000 (09:58 +0200)]
lib: Update company identifiers
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sat, 4 Apr 2020 20:24:57 +0000 (22:24 +0200)]
doc: Define bus controller value for VIRTIO transport
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Sonny Sasaka [Tue, 31 Mar 2020 00:33:55 +0000 (17:33 -0700)]
tools/hciattach_ath3k: Load BT board data based on country code
BT board data file PS_ASIC-<country-code>.pst is loaded based
on country code. If not exist, default BT board data file
PS_ASIC.pst would be loaded.
This patch doesn't define how to get the country code at the moment, but
future patches can supply the country code in the region parameter of
get_ps_file_name.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 13:21:18 +0000 (15:21 +0200)]
lib: Add details for reading security information command
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 13:20:53 +0000 (15:20 +0200)]
tools: Add command for reading the security information
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 13:20:09 +0000 (15:20 +0200)]
doc: Add Read Security Information command description
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 11:45:41 +0000 (13:45 +0200)]
tools: Fix command for reading extended controller information
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 11:36:41 +0000 (13:36 +0200)]
tools: Add command for toggling wideband speech feature
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 11:36:00 +0000 (13:36 +0200)]
lib: Add missing text for wideband speech command
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 1 Apr 2020 23:27:33 +0000 (16:27 -0700)]
gatt: Fix Acquire* reply handling
Originally these operation did not set any owner_queue which caused
them to crash if the attribute is freed before the respose, to fix that
the reply will now check if owner_queue was reset to NULL which means
the attribute is no longer available but the owner_queue was never set
in the first place so this ensures they are now setup properly.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Howard Chung [Tue, 31 Mar 2020 03:16:43 +0000 (11:16 +0800)]
monitor: Fix missing setting string
Add wideband speech to setting string
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 31 Mar 2020 21:05:48 +0000 (14:05 -0700)]
gatt: Check error before retrying if Acquire* failed
If the method has timed out it probably means the application is not
responding so a follow up method call might have the same result, also
in case the application returns org.bluez.Error.Failed it indicates the
operation has been attempted but failed which again most likely will
have the same result if reattempted.
Change-Id: Ie768f1e3613957f362b65fba12a03d0ee21bce9c
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 31 Mar 2020 17:28:23 +0000 (10:28 -0700)]
gatt: Fix possible crashes when disconnecting
If there are pending AcquireWrite or AcquireNotify when disconnecting
the attribute object may be freed (e.g. device is temporary) leading to
the following backtrace:
bluetoothd[369928]: src/gatt-database.c:gatt_db_service_removed() Local GATT service removed
bluetoothd[369928]: src/adapter.c:adapter_service_remove() /org/bluez/hci1
bluetoothd[369928]: src/adapter.c:remove_uuid() sending remove uuid command for index 1
bluetoothd[369928]: src/sdpd-service.c:remove_record_from_server() Removing record with handle 0x1002e
bluetoothd[369928]: src/gatt-database.c:send_notification_to_device() GATT server sending indication
bluetoothd[369928]: src/device.c:gatt_debug() Write Complete: err -125
bluetoothd[369928]: src/gatt-database.c:client_disconnect_cb() Client disconnected
bluetoothd[369928]: src/advertising.c:client_disconnect_cb() Client disconnected
bluetoothd[369928]: Failed to acquire write: org.freedesktop.DBus.Error.NoReply
Program received signal SIGSEGV, Segmentation fault.
0x0000555555631450 in acquire_write_reply (message=0x55555583dec0, user_data=0x555555843e40) at src/gatt-database.c:2437
2437 send_write(op->device, op->attrib, chrc->proxy, NULL, op->id,
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>