Skip to contentSkip to conversation

SDP browsing inconsistency on Motorola A1000

Bluez-devel Dimitry Andric 2 participants 3 messages Mar 11, 2005 Bluetooth drivers

lore
Share & tools
lore
#0 lore raw

Hi,

I've just been asked to check out an SDP problem, which occurred with a Motorola A1000 phone. It seems like the phone doesn't return any Service Class ID's for its Handsfree Audio Gateway profile.

This turns out to be caused by sdp_get_service_classes() failing. I added some debug code to this function (see sdp-dtd-debug.patch, and compile with -DSDP_DEBUG), to help diagnose the problem.

For some reason, spd_get_service_classes thinks there's a SDP_UINT16 (0x09) instead of a SDP_UUID16 (0x19) in the Service Class ID list of the HF AG record, but here hcidump and sdptool disagree.

sdptool says (see sdptool-arm for full dump):

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence
Integer : 0x656e
Integer : 0x6a
Integer : 0x100

while hcidump says (see hcidump-arm.raw):

         record #4
             aid 0x0000 (SrvRecHndl)
                uint 0x10003
             aid 0x0001 (SrvClassIDList)
                < uuid-16 0x111f (Handsfree AG) uuid-16 0x1203 (Audio) >

However, this is all on an ARM platform, while on an x86 platform it DOES seem to work correctly!

sdptool says on x86 (see sdptool-x86):

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence
UUID16 : 0x111f - HandsfreeAudioGateway
UUID16 : 0x1203 - GenericAudio

and hcidump says (see hcidump-x86.raw):

         record #3
             aid 0x0000 (SrvRecHndl)
                uint 0x10003
             aid 0x0001 (SrvClassIDList)
                < uuid-16 0x111f (Handsfree AG) uuid-16 0x1203 (Audio) >

So it seems to be another nice alignment problem somewhere in the SDP library stuff! (Hi Marcel :P) If anyone has an idea where this might be, please let me know.

��2Bf� ��2Bk� .o�(
 ��2BK� .��2Bm3��2BMb.��2B�\  o�(
���2B�� ��2Bv  .o�(
��2B� . @��2B�  .��2B� .��2B�@ . ��2B�c  .��2B� .  M@��2B&� .  M@��2B4� . M��2B�� . @��2B� . 
M��2B�� .��2Bc� .��2B4� .  @��2B�� . M5��5
����2Bw� .X��2B�e . SO@JG6D5�
 5 

	555	5	5		en	j		�		55		%Headset Audio Gateway	%Headset Audio Gateway	%Motorola5y	

 5 5555 5 55  %OBEX Object Push %OBEX Object Push %Motorola 5�5�
 5 
5 55 5��2B�q . 5 en j  � 55  %Dialup Networking %Dialup Networking %Motorola5�
 5 
5 55 5 5 en j  � 55  %Handsfree Audio Gateway %Handsfree Audio Gateway %Motorola   ��2B�r . M@��2B� .��2B�4. M@��2B�3.��2BvP��2B$�.OBEXObjectPush
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x3
    Data Sequence
      UUID16 : 0x0008 - OBEX
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1105 - OBEXObjectPush
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "OBEX Object Push"
Attribute Identifier : 0x101
Text : "OBEX Object Push"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x303
Data Sequence

    Integer : 0xff

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10002
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x1103 - DialupNetworking (DUN)

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0x9
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x1
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x1103 - DialupNetworking (DUN)
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Dialup Networking"
Attribute Identifier : 0x101
Text : "Dialup Networking"
Attribute Identifier : 0x102
Text : "Motorola"

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

��2Bf� ��2Bk� .o�(
 ��2BK� .��2Bm3��2BMb.��2B�\  o�(
���2B�� ��2Bv  .o�(
��2B� . @��2B�  .��2B� .��2B�@ . ��2B�c  .��2B� .  M@��2B&� .  M@��2B4� . M��2B�� . @��2B� . 
M��2B�� .��2Bc� .��2B4� .  @��2B�� . M5��5
����2Bw� .X��2B�e . SO@JG6D5�
 5 

	555	5	5		en	j		�		55		%Headset Audio Gateway	%Headset Audio Gateway	%Motorola5y	

 5 5555 5 55  %OBEX Object Push %OBEX Object Push %Motorola 5�5�
 5 
5 55 5��2B�q . 5 en j  � 55  %Dialup Networking %Dialup Networking %Motorola5�
 5 
5 55 5 5 en j  � 55  %Handsfree Audio Gateway %Handsfree Audio Gateway %Motorola   ��2B�r . M@��2B� .��2B�4. M@��2B�3.��2BvP��2B$�.OBEXObjectPush
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x3
    Data Sequence
      UUID16 : 0x0008 - OBEX
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1105 - OBEXObjectPush
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "OBEX Object Push"
Attribute Identifier : 0x101
Text : "OBEX Object Push"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x303
Data Sequence

    Integer : 0xff

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10002
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x1103 - DialupNetworking (DUN)

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0x9
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x1
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x1103 - DialupNetworking (DUN)
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Dialup Networking"
Attribute Identifier : 0x101
Text : "Dialup Networking"
Attribute Identifier : 0x102
Text : "Motorola"

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

��2Bf� ��2Bk� .o�(
 ��2BK� .��2Bm3��2BMb.��2B�\  o�(
���2B�� ��2Bv  .o�(
��2B� . @��2B�  .��2B� .��2B�@ . ��2B�c  .��2B� .  M@��2B&� .  M@��2B4� . M��2B�� . @��2B� . 
M��2B�� .��2Bc� .��2B4� .  @��2B�� . M5��5
����2Bw� .X��2B�e . SO@JG6D5�
 5 

	555	5	5		en	j		�		55		%Headset Audio Gateway	%Headset Audio Gateway	%Motorola5y	

 5 5555 5 55  %OBEX Object Push %OBEX Object Push %Motorola 5�5�
 5 
5 55 5��2B�q . 5 en j  � 55  %Dialup Networking %Dialup Networking %Motorola5�
 5 
5 55 5 5 en j  � 55  %Handsfree Audio Gateway %Handsfree Audio Gateway %Motorola   ��2B�r . M@��2B� .��2B�4. M@��2B�3.��2BvP��2B$�.OBEXObjectPush
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x3
    Data Sequence
      UUID16 : 0x0008 - OBEX
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1105 - OBEXObjectPush
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "OBEX Object Push"
Attribute Identifier : 0x101
Text : "OBEX Object Push"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x303
Data Sequence

    Integer : 0xff

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10002
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x1103 - DialupNetworking (DUN)

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0x9
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x1
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x1103 - DialupNetworking (DUN)
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Dialup Networking"
Attribute Identifier : 0x101
Text : "Dialup Networking"
Attribute Identifier : 0x102
Text : "Motorola"

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

#1 lore raw

Hi Dimitry,
I don't know what's causing your problem but I've had a look at the dumps and it seems that the integer-sequence values being printed out in error are in fact from the LANG_BASE_ATTR_ID_LIST, which occurs 44 bytes after the SVCLASS_ID_LIST.

Can you step through this in a debugger on the ARM box? Also to check for memory corruption, can you run it under valgrind on the x86 box?

Finally, are you sure that the text of your sdptool-arm dump is correct? The data for the record in question seems to be repeated:

[...]
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100

[...]

Thanks,
Steve

Quoted 520 lines · Dimitry Andric

Hi,

I've just been asked to check out an SDP problem, which occurred with a Motorola A1000 phone. It seems like the phone doesn't return any Service Class ID's for its Handsfree Audio Gateway profile.

This turns out to be caused by sdp_get_service_classes() failing. I added some debug code to this function (see sdp-dtd-debug.patch, and compile with -DSDP_DEBUG), to help diagnose the problem.

For some reason, spd_get_service_classes thinks there's a SDP_UINT16 (0x09) instead of a SDP_UUID16 (0x19) in the Service Class ID list of the HF AG record, but here hcidump and sdptool disagree.

sdptool says (see sdptool-arm for full dump):

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100

while hcidump says (see hcidump-arm.raw):

          record #4
              aid 0x0000 (SrvRecHndl)
                 uint 0x10003
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x111f (Handsfree AG) uuid-16 0x1203 (Audio) >

However, this is all on an ARM platform, while on an x86 platform it DOES seem to work correctly!

sdptool says on x86 (see sdptool-x86):

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio

and hcidump says (see hcidump-x86.raw):

          record #3
              aid 0x0000 (SrvRecHndl)
                 uint 0x10003
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x111f (Handsfree AG) uuid-16 0x1203 (Audio) >

So it seems to be another nice alignment problem somewhere in the SDP
library stuff! (Hi Marcel :P) If anyone has an idea where this might
be, please let me know.
plain text document attachment (sdp-dtd-debug.patch)
&#0;&#0;€â2Bfˆ &#0;&#0;&#0;&#0;Šâ2BkÂ&#0; &#0;.&#0;o(
&#0;&#0; &#0;&#0;Šâ2BKñ&#0;&#0;.&#0;&#0;&#0;šâ2Bm3&#0;&#0;&#0;&#0;šâ2BMb&#0;&#0;.&#0;&#0;&#0;&#0;×â2Bï\ &#0;o(
&#0;Ì&#0;Äž&#0;&#0;×â2B &#0;&#0;&#0;&#0;Øâ2Bv &#0; &#0;.&#0;o(
&#0;&#0;&#0;&#0;&#0;Øâ2B &#0;. &#0;&#0;&#0;&#0;&#0;@&#0;&#0;&#0;&#0;Øâ2B“ &#0;.&#0;&#0;&#0;&#0;Øâ2Bå &#0;.&#0;&#0;&#0;&#0;Øâ2B÷@ &#0;.&#0; &#0;&#0;Øâ2Bþc &#0;&#0;.&#0;&#0;&#0;Øâ2Bé– &#0;. &#0; &#0;&#0;&#0;M&#0;@&#0;&#0;&#0;&#0;&#0;Øâ2B&¶ &#0;. &#0; &#0;&#0;&#0;M&#0;@&#0;&#0;&#0;&#0;&#0;&#0;&#0;&#0;Øâ2B4¶ &#0;. &#0;&#0;&#0;&#0;M&#0;&#0;&#0;&#0;&#0;Øâ2Böœ &#0;. &#0;&#0;&#0;&#0;@&#0;&#0;&#0;&#0;&#0;&#0;Øâ2BŸ &#0;. &#0;
&#0;&#0;&#0;M&#0;&#0;&#0;&#0;&#0;&#0;&#0;Øâ2BÅÅ &#0;.&#0;&#0;&#0;&#0;Øâ2BcÕ &#0;.&#0;&#0;&#0;&#0;Øâ2B4Ý &#0;. &#0; &#0;&#0;&#0;@&#0;&#0;&#0;&#0;&#0;&#0;&#0;&#0;Øâ2BÆÝ &#0;. &#0;&#0;M&#0;&#0;&#0;&#0;5ÿÿ5
&#0;&#0;ÿÿ&#0;&#0;&#0;Øâ2Bwü &#0;.&#0;&#0;X&#0;Øâ2Bòe&#0;. SO@&#0;&#0;&#0;JG6D5• &#0;&#0;
&#0;&#0;&#0; &#0;5 &#0;

&#0;&#0;&#0;
	&#0;55&#0;5&#0;	&#0;5	&#0;5		en	&#0;j	&#0;	&#0;ÿ	&#0;	55	&#0;	&#0;%Headset Audio Gateway	%Headset Audio Gateway	%Motorola5y	&#0;&#0;

&#0;&#0; &#0;5 &#0;55&#0;5&#0;5&#0; &#0;5 &#0; 55 &#0; &#0;%OBEX Object Push %OBEX Object Push %Motorola 5ÿ5Š &#0;&#0;
&#0;&#0; &#0;5 &#0;
&#0;&#0;&#0; &#0;5 5&#0;5&#0; &#0;5&#0;Øâ2B©q&#0;.&#0; &#0;5 en &#0;j &#0; &#0;ÿ &#0; 55 &#0; &#0;%Dialup Networking %Dialup Networking %Motorola5€ &#0;&#0;
&#0;&#0; &#0;5 &#0;
&#0;&#0;&#0; &#0;5 5&#0;5&#0; &#0;5 &#0;5 en &#0;j &#0; &#0;ÿ &#0; 55 &#0; &#0;%Handsfree Audio Gateway %Handsfree Audio Gateway %Motorola   &#0;&#0;&#0;&#0;&#0;Øâ2Bƒr&#0;. &#0;&#0;&#0;&#0;M&#0;@&#0;&#0;&#0;Øâ2B‰&#0;.&#0;&#0;&#0;&#0;Øâ2Bû4&#0;. &#0;&#0;&#0;&#0;M&#0;@&#0;&#0;&#0;&#0;Úâ2B²3&#0;.&#0;&#0;&#0;Úâ2BvP&#0;&#0;&#0;&#0;Úâ2B$‡&#0;&#0;.&#0;OBEXObjectPush
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x3
    Data Sequence
      UUID16 : 0x0008 - OBEX
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1105 - OBEXObjectPush
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "OBEX Object Push"
Attribute Identifier : 0x101
Text : "OBEX Object Push"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x303
Data Sequence

    Integer : 0xff

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10002
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x1103 - DialupNetworking (DUN)

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0x9
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x1
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x1103 - DialupNetworking (DUN)
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Dialup Networking"
Attribute Identifier : 0x101
Text : "Dialup Networking"
Attribute Identifier : 0x102
Text : "Motorola"

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

plain text document attachment (sdptool-arm)
&#0;&#0;€â2Bfˆ &#0;&#0;&#0;&#0;Šâ2BkÂ&#0; &#0;.&#0;o(
&#0;&#0; &#0;&#0;Šâ2BKñ&#0;&#0;.&#0;&#0;&#0;šâ2Bm3&#0;&#0;&#0;&#0;šâ2BMb&#0;&#0;.&#0;&#0;&#0;&#0;×â2Bï\ &#0;o(
&#0;Ì&#0;Äž&#0;&#0;×â2B &#0;&#0;&#0;&#0;Øâ2Bv &#0; &#0;.&#0;o(
&#0;&#0;&#0;&#0;&#0;Øâ2B &#0;. &#0;&#0;&#0;&#0;&#0;@&#0;&#0;&#0;&#0;Øâ2B“ &#0;.&#0;&#0;&#0;&#0;Øâ2Bå &#0;.&#0;&#0;&#0;&#0;Øâ2B÷@ &#0;.&#0; &#0;&#0;Øâ2Bþc &#0;&#0;.&#0;&#0;&#0;Øâ2Bé– &#0;. &#0; &#0;&#0;&#0;M&#0;@&#0;&#0;&#0;&#0;&#0;Øâ2B&¶ &#0;. &#0; &#0;&#0;&#0;M&#0;@&#0;&#0;&#0;&#0;&#0;&#0;&#0;&#0;Øâ2B4¶ &#0;. &#0;&#0;&#0;&#0;M&#0;&#0;&#0;&#0;&#0;Øâ2Böœ &#0;. &#0;&#0;&#0;&#0;@&#0;&#0;&#0;&#0;&#0;&#0;Øâ2BŸ &#0;. &#0;
&#0;&#0;&#0;M&#0;&#0;&#0;&#0;&#0;&#0;&#0;Øâ2BÅÅ &#0;.&#0;&#0;&#0;&#0;Øâ2BcÕ &#0;.&#0;&#0;&#0;&#0;Øâ2B4Ý &#0;. &#0; &#0;&#0;&#0;@&#0;&#0;&#0;&#0;&#0;&#0;&#0;&#0;Øâ2BÆÝ &#0;. &#0;&#0;M&#0;&#0;&#0;&#0;5ÿÿ5
&#0;&#0;ÿÿ&#0;&#0;&#0;Øâ2Bwü &#0;.&#0;&#0;X&#0;Øâ2Bòe&#0;. SO@&#0;&#0;&#0;JG6D5• &#0;&#0;
&#0;&#0;&#0; &#0;5 &#0;

&#0;&#0;&#0;
	&#0;55&#0;5&#0;	&#0;5	&#0;5		en	&#0;j	&#0;	&#0;ÿ	&#0;	55	&#0;	&#0;%Headset Audio Gateway	%Headset Audio Gateway	%Motorola5y	&#0;&#0;

&#0;&#0; &#0;5 &#0;55&#0;5&#0;5&#0; &#0;5 &#0; 55 &#0; &#0;%OBEX Object Push %OBEX Object Push %Motorola 5ÿ5Š &#0;&#0;
&#0;&#0; &#0;5 &#0;
&#0;&#0;&#0; &#0;5 5&#0;5&#0; &#0;5&#0;Øâ2B©q&#0;.&#0; &#0;5 en &#0;j &#0; &#0;ÿ &#0; 55 &#0; &#0;%Dialup Networking %Dialup Networking %Motorola5€ &#0;&#0;
&#0;&#0; &#0;5 &#0;
&#0;&#0;&#0; &#0;5 5&#0;5&#0; &#0;5 &#0;5 en &#0;j &#0; &#0;ÿ &#0; 55 &#0; &#0;%Handsfree Audio Gateway %Handsfree Audio Gateway %Motorola   &#0;&#0;&#0;&#0;&#0;Øâ2Bƒr&#0;. &#0;&#0;&#0;&#0;M&#0;@&#0;&#0;&#0;Øâ2B‰&#0;.&#0;&#0;&#0;&#0;Øâ2Bû4&#0;. &#0;&#0;&#0;&#0;M&#0;@&#0;&#0;&#0;&#0;Úâ2B²3&#0;.&#0;&#0;&#0;Úâ2BvP&#0;&#0;&#0;&#0;Úâ2B$‡&#0;&#0;.&#0;OBEXObjectPush
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x3
    Data Sequence
      UUID16 : 0x0008 - OBEX
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1105 - OBEXObjectPush
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "OBEX Object Push"
Attribute Identifier : 0x101
Text : "OBEX Object Push"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x303
Data Sequence

    Integer : 0xff

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10002
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x1103 - DialupNetworking (DUN)

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0x9
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x1
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x1103 - DialupNetworking (DUN)
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Dialup Networking"
Attribute Identifier : 0x101
Text : "Dialup Networking"
Attribute Identifier : 0x102
Text : "Motorola"

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

plain text document attachment (sdptool-x86)
&#0;&#0;€â2Bfˆ &#0;&#0;&#0;&#0;Šâ2BkÂ&#0; &#0;.&#0;o(
&#0;&#0; &#0;&#0;Šâ2BKñ&#0;&#0;.&#0;&#0;&#0;šâ2Bm3&#0;&#0;&#0;&#0;šâ2BMb&#0;&#0;.&#0;&#0;&#0;&#0;×â2Bï\ &#0;o(
&#0;Ì&#0;Äž&#0;&#0;×â2B &#0;&#0;&#0;&#0;Øâ2Bv &#0; &#0;.&#0;o(
&#0;&#0;&#0;&#0;&#0;Øâ2B &#0;. &#0;&#0;&#0;&#0;&#0;@&#0;&#0;&#0;&#0;Øâ2B“ &#0;.&#0;&#0;&#0;&#0;Øâ2Bå &#0;.&#0;&#0;&#0;&#0;Øâ2B÷@ &#0;.&#0; &#0;&#0;Øâ2Bþc &#0;&#0;.&#0;&#0;&#0;Øâ2Bé– &#0;. &#0; &#0;&#0;&#0;M&#0;@&#0;&#0;&#0;&#0;&#0;Øâ2B&¶ &#0;. &#0; &#0;&#0;&#0;M&#0;@&#0;&#0;&#0;&#0;&#0;&#0;&#0;&#0;Øâ2B4¶ &#0;. &#0;&#0;&#0;&#0;M&#0;&#0;&#0;&#0;&#0;Øâ2Böœ &#0;. &#0;&#0;&#0;&#0;@&#0;&#0;&#0;&#0;&#0;&#0;Øâ2BŸ &#0;. &#0;
&#0;&#0;&#0;M&#0;&#0;&#0;&#0;&#0;&#0;&#0;Øâ2BÅÅ &#0;.&#0;&#0;&#0;&#0;Øâ2BcÕ &#0;.&#0;&#0;&#0;&#0;Øâ2B4Ý &#0;. &#0; &#0;&#0;&#0;@&#0;&#0;&#0;&#0;&#0;&#0;&#0;&#0;Øâ2BÆÝ &#0;. &#0;&#0;M&#0;&#0;&#0;&#0;5ÿÿ5
&#0;&#0;ÿÿ&#0;&#0;&#0;Øâ2Bwü &#0;.&#0;&#0;X&#0;Øâ2Bòe&#0;. SO@&#0;&#0;&#0;JG6D5• &#0;&#0;
&#0;&#0;&#0; &#0;5 &#0;

&#0;&#0;&#0;
	&#0;55&#0;5&#0;	&#0;5	&#0;5		en	&#0;j	&#0;	&#0;ÿ	&#0;	55	&#0;	&#0;%Headset Audio Gateway	%Headset Audio Gateway	%Motorola5y	&#0;&#0;

&#0;&#0; &#0;5 &#0;55&#0;5&#0;5&#0; &#0;5 &#0; 55 &#0; &#0;%OBEX Object Push %OBEX Object Push %Motorola 5ÿ5Š &#0;&#0;
&#0;&#0; &#0;5 &#0;
&#0;&#0;&#0; &#0;5 5&#0;5&#0; &#0;5&#0;Øâ2B©q&#0;.&#0; &#0;5 en &#0;j &#0; &#0;ÿ &#0; 55 &#0; &#0;%Dialup Networking %Dialup Networking %Motorola5€ &#0;&#0;
&#0;&#0; &#0;5 &#0;
&#0;&#0;&#0; &#0;5 5&#0;5&#0; &#0;5 &#0;5 en &#0;j &#0; &#0;ÿ &#0; 55 &#0; &#0;%Handsfree Audio Gateway %Handsfree Audio Gateway %Motorola   &#0;&#0;&#0;&#0;&#0;Øâ2Bƒr&#0;. &#0;&#0;&#0;&#0;M&#0;@&#0;&#0;&#0;Øâ2B‰&#0;.&#0;&#0;&#0;&#0;Øâ2Bû4&#0;. &#0;&#0;&#0;&#0;M&#0;@&#0;&#0;&#0;&#0;Úâ2B²3&#0;.&#0;&#0;&#0;Úâ2BvP&#0;&#0;&#0;&#0;Úâ2B$‡&#0;&#0;.&#0;OBEXObjectPush
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x3
    Data Sequence
      UUID16 : 0x0008 - OBEX
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1105 - OBEXObjectPush
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "OBEX Object Push"
Attribute Identifier : 0x101
Text : "OBEX Object Push"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x303
Data Sequence

    Integer : 0xff

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10002
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x1103 - DialupNetworking (DUN)

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0x9
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x1
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x1103 - DialupNetworking (DUN)
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Dialup Networking"
Attribute Identifier : 0x101
Text : "Dialup Networking"
Attribute Identifier : 0x102
Text : "Motorola"

Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
Data Sequence

    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100

Attribute Identifier : 0x2 - ServiceRecordState
Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)

Attribute Identifier : 0x8 - ServiceAvailability
Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
Data Sequence

    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100

Attribute Identifier : 0x100
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
Text : "Motorola"
Attribute Identifier : 0x301
Integer : 0x20
Attribute Identifier : 0x311
Integer : 0x7

#2 lore raw
Quoted 4 lines · Stephen Crane

I don't know what's causing your problem but I've had a look at the dumps and it seems that the integer-sequence values being printed out in error are in fact from the LANG_BASE_ATTR_ID_LIST, which occurs 44 bytes after the SVCLASS_ID_LIST.

I didn't notice this earlier, but I'd say they are *before* the ServiceClassIDList:

[...]
Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
[...]
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
Data Sequence
Code ISO639 (Integer) : 0x656e
Encoding (Integer) : 0x6a
Base Offset (Integer) : 0x100
[...]
Attribute Identifier : 0x0 - ServiceRecordHandle
Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
Data Sequence
Integer : 0x656e
Integer : 0x6a
Integer : 0x100
[...]

At least I've got a bit of a clue where to start looking now. :)

Quoted 1 line

Can you step through this in a debugger on the ARM box?

I'll need to fix up some things for that, I'll get back about this later. I tried debugging on the thing before, but there's some weird problems with gdb on it.

Usually I try to get by with inserting printfs in various strategic locations, but the problem here is that I'm not sure where to put them...

Quoted 2 lines

Also to check for memory corruption, can you run it under valgrind on the x86 box?

Valgrind reports no problems, at least as far as I can interpret its output. (Attached as valgrind.dump.gz)

Quoted 2 lines

Finally, are you sure that the text of your sdptool-arm dump is correct? The data for the record in question seems to be repeated:

Hm, either my mail client or my mail server corrupted this specific file. I'm sending it again as a .gz file.