Re: Notify on succeeds while no apparent descriptor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thank you Luiz, I'm not sure what are most OSes there because macOS
and Android don't allow register characteristics without a CCC.

I'll ping armansito@ and let you know ;)

On Thu, Jun 30, 2016 at 1:36 PM, Luiz Augusto von Dentz
<luiz.dentz@xxxxxxxxx> wrote:
> Hi François,
>
> On Wed, Jun 29, 2016 at 10:24 AM, François Beaufort
> <beaufort.francois@xxxxxxxxx> wrote:
>> I have a bogus BLE device which exposes "badly" a characteristic
>> notification. Even though it doesn't find a characteristic descriptor,
>> I'm still able to start notifications and even receive value changed
>> events.
>>
>> For info, Android and macOS raise an exception when trying to start
>> notifications. See
>> https://github.com/WebBluetoothCG/ble-test-peripheral-android/issues/63
>>
>> See logs:
>>
>> < ACL Data TX: Handle 32 flags 0x00 dlen 9
>>                                                    [hci0] 403.621325
>>       ATT: Find Information Request (0x04) len 4
>>         Handle range: 0x002b-0xffff
>>> HCI Event: Number of Completed Packets (0x13) plen 5                                                                    [hci0] 403.689256
>>         Num handles: 1
>>         Handle: 32
>>         Count: 1
>>> ACL Data RX: Handle 32 flags 0x02 dlen 9                                                                                [hci0] 403.755926
>>       ATT: Error Response (0x01) len 4
>>         Find Information Request (0x04)
>>         Handle: 0x002b
>>         Error: Attribute Not Found (0x0a)
>>
>> ---
>>
>> [Nexus 5X]# list-attributes
>> Primary Service
>>         /org/bluez/hci0/dev_46_EE_57_93_31_08/service0001
>>         Generic Attribute Profile
>> Characteristic
>>         /org/bluez/hci0/dev_46_EE_57_93_31_08/service0001/char0002
>>         Service Changed
>> Primary Service
>>         /org/bluez/hci0/dev_46_EE_57_93_31_08/service0028
>>         Battery Service
>> Characteristic
>>         /org/bluez/hci0/dev_46_EE_57_93_31_08/service0028/char0029
>>         Battery Level
>> [Nexus 5X]# select-attribute
>> /org/bluez/hci0/dev_46_EE_57_93_31_08/service0028/char0029
>> [Nexus 5X:/service0028/char0029]# notify on
>> [CHG] Attribute
>> /org/bluez/hci0/dev_46_EE_57_93_31_08/service0028/char0029 Notifying:
>> yes
>> Notify started
>> [CHG] Attribute
>> /org/bluez/hci0/dev_46_EE_57_93_31_08/service0028/char0029 Value: 0x32
>> [Nexus 5X:/service0028/char0029]# notify off
>> [CHG] Attribute
>> /org/bluez/hci0/dev_46_EE_57_93_31_08/service0028/char0029 Notifying:
>> no
>> Notify stopped
>> --
>
> Just to make it public what I have stated in the irc, currently we
> allow enabling notification even without CCC (out of the spect
> unsolicited notification):
>
> commit 46aad83687251bef0fa0ac60583e5898170b0f10
> Author: Arman Uguray <armansito@xxxxxxxxxxxx>
> Date:   Tue Feb 3 19:58:22 2015 -0800
>     shared/gatt: Allow register_notify without CCC
>
>     Most OSes allow to register characteristics without a CCC even if they
>     do support notification/indication, this is not according to the
>     specification and may not even work in practice since there is no way
>     to enable notifications/indications without a CCC to write to but there
>     has been some applications that do that anyway.
>
> Perhaps Arman had it exactly for these broken application that don't
> register a CCC which Im guessing is because the GATT API don't do it
> by default (Android?) leaving it up to the app which can screw up we
> can observe here.
>
>
> --
> Luiz Augusto von Dentz
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux