gpt4 book ai didi

ios - 在其他平台上使用 iOS GameKit 的 "Bluetooth Bonjour"

转载 作者:IT王子 更新时间:2023-10-29 07:32:42 25 4
gpt4 key购买 nike

我有兴趣通过蓝牙连接到基于 iOS 的设备。我可以看到“本地网络”服务已公开,但我找不到任何关于它的额外信息。存储在 key 0x0204 下的属性看起来像 Bonjour key 。

使用哪个协议(protocol)?如何与使用 Linux、Mac 或自己配备蓝牙芯片的嵌入式设备的 iOS 设备通话?

这是在 iOS 设备运行 Gameloft 的 Star Battalion 时使用 OS X 下的蓝牙资源管理器提取的 SDP 数据。

    {
0x0000 = uint32(1330188565),
0x0200 = uint32(2),
0x0202 = string(004wD7l1A..0|0|0|ivucic-À'),
0x030a = uint32(0),
0x0009 = { { uuid16(11 15), uint16(256) } },
0x0201 = string(_657o30a6rmst07À),
0x0005 = { uuid16(10 02) },
0x0100 = string(Local Network),
0x0001 = { uuid16(11 15) },
0x0203 = string(004wd7l1a..0|0|0|ivucic-_657o30a6rmst07À
0xf000 = uint8(2),
0x0204 = string( txtvers=1state=A),
0x0008 = uint8(255),
0x0006 = { uint16(25966), uint16(106), uint16(256), uint16(26226), uint16(106), uint16(272), uint16(25701), uint16(106), uint16(288), uint16(27233), uint16(106), uint16(304) },
0x0004 = { { uuid16(01 00), uint16(15) }, { uuid16(00 0f), uint16(256), { uint16(2048), uint16(2054) } } },
0x0002 = uint32(0)
},

其他部分相关的问题:


进一步研究 Apple 的 OS X 中的蓝牙资源管理器和 GNU/Linux 中的 sdptool,我发现 key 0x0001(代表“协议(protocol)类”),包含值0x1115,代表“PAN”的“PANU”变体 - 点对点变体。值得注意的是,尽管支持创建 0x1116 网络,但 OS X 不为此协议(protocol)提供服务端(“托管”)支持,这是“PAN”的“NAP”变体 -客户端/服务器变体。

这可能是个好消息,但前提是不必使用 GameKit 的 session 协议(protocol)。劫持 GameKit 建立的媒体层连接以发送其他 UDP 流量是理想的。

我仍然需要研究这个 GameKit 连接是否真的是 0x1115;也就是说,如果它真的是“PANU”。有没有人有任何进一步的信息?


请注意,虽然 Bonjour 在 iOS 3 之后自动宣布了此蓝牙服务,但在 iOS 5 中已发生变化。请参阅我在 how to establish Bluetooth connection without GameKit 上发布的答案。 ,我在其中轻松记录了 Apple 的信息 Technical Q&A QA1753 .


对 GNU/Linux 的少量研究并未导致成功连接。这可能是由于缺乏关于如何正确使用 pand 的知识。也可能是由于基于蓝牙 MAC 的阻塞。我喜欢任何人可能必须提供的信息。如果我进一步研究这个并偶然发现一些有趣的东西,我会更新这个答案。


Ubuntu 下的结果。该服务仅在蓝牙 Bonjour 处于事件状态时出现。

ivucica@ivucica-MacBook:~$ sdptool browse $ADDR #relevant data only
Browsing ADDRESS_HERE ...
Service Name: Local Network
Service RecHandle: 0x4f491115
Service Class ID List:
"PAN User" (0x1115)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 15
"BNEP" (0x000f)
Version: 0x0100
SEQ8: 0 6
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0x110
code_ISO639: 0x6465
encoding: 0x6a
base_offset: 0x120
code_ISO639: 0x6a61
encoding: 0x6a
base_offset: 0x130
Profile Descriptor List:
"PAN User" (0x1115)
Version: 0x0100

... and so on ...

这是连接的尝试:

ivucica@ivucica-MacBook:~$ pand --connect $ADDR -n
pand[3237]: Bluetooth PAN daemon version 4.98
pand[3237]: Connecting to ADDRESS_HERE
pand[3237]: Connect to ADDRESS_HERE failed. Connection refused(111)

是否需要某种授权?启用加密、身份验证、安全连接和强制成为主人似乎没有任何区别(各种组合的-AESM选项)。

有人有什么想法吗?


嗯!

ivucica@ivucica-MacBook:~$ sudo hcidumpHCI sniffer - Bluetooth packet analyzer ver 2.2device: hci0 snap_len: 1028 filter: 0xffffffff HCI Event: Command Status (0x0f) plen 4    Create Connection (0x01|0x0005) status 0x00 ncmd 1> HCI Event: Role Change (0x12) plen 8    status 0x00 bdaddr ADDRESS_HERE role 0x01    Role: Slave> HCI Event: Connect Complete (0x03) plen 11    status 0x00 handle 12 bdaddr ADDRESS_HERE type ACL encrypt 0x00 HCI Event: Command Status (0x0f) plen 4    Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1> HCI Event: Read Remote Supported Features (0x0b) plen 11    status 0x00 handle 12    Features: 0xbf 0xfe 0x8f 0xfe 0x9b 0xff 0x79 0x83 HCI Event: Command Status (0x0f) plen 4    Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1> HCI Event: Max Slots Change (0x1b) plen 3    handle 12 slots 5> HCI Event: Read Remote Extended Features (0x23) plen 13    status 0x00 handle 12 page 1 max 1    Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 HCI Event: Command Status (0x0f) plen 4    Remote Name Request (0x01|0x0019) status 0x00 ncmd 1> HCI Event: Remote Name Req Complete (0x07) plen 255    status 0x00 bdaddr ADDRESS_HERE name 'Evil iPad' HCI Event: Command Status (0x0f) plen 4    Authentication Requested (0x01|0x0011) status 0x00 ncmd 1> HCI Event: Link Key Request (0x17) plen 6    bdaddr ADDRESS_HERE HCI Event: Command Complete (0x0e) plen 10    Link Key Request Reply (0x01|0x000b) ncmd 1    status 0x00 bdaddr ADDRESS_HERE> HCI Event: Auth Complete (0x06) plen 3    status 0x00 handle 12 HCI Event: Command Status (0x0f) plen 4    Set Connection Encryption (0x01|0x0013) status 0x00 ncmd 1> HCI Event: Encrypt Change (0x08) plen 4    status 0x00 handle 12 encrypt 0x01 HCI Event: Number of Completed Packets (0x13) plen 5    handle 12 packets 1> ACL data: handle 12 flags 0x02 dlen 16    L2CAP(s): Info rsp: type 2 result 0      Extended feature mask 0x02a8        Enhanced Retransmission mode        FCS Option        Fixed Channels        Unicast Connectless Data Reception HCI Event: Number of Completed Packets (0x13) plen 5    handle 12 packets 1> ACL data: handle 12 flags 0x02 dlen 20    L2CAP(s): Info rsp: type 3 result 0      Fixed channel list 0x00000006        L2CAP Signalling Channel        L2CAP Connless HCI Event: Number of Completed Packets (0x13) plen 5    handle 12 packets 1> ACL data: handle 12 flags 0x02 dlen 16    L2CAP(s): Connect rsp: dcid 0x0000 scid 0x0040 result 2 status 0      Connection refused - PSM not supported> HCI Event: Disconn Complete (0x05) plen 4    status 0x00 handle 12 reason 0x13    Reason: Remote User Terminated Connection

这个?

> ACL data: handle 12 flags 0x02 dlen 16    L2CAP(s): Connect rsp: dcid 0x0000 scid 0x0040 result 2 status 0      Connection refused - PSM not supported

最佳答案

根据这个有趣的网站: http://code.google.com/p/btstack/wiki/iPhoneBluetooth除了蓝牙 RF 芯片外,Apple 还使用了一种特殊芯片,该芯片拒绝与没有该芯片的设备建立任何连接 - 这意味着它在硬件级别上处于锁定状态。

关于ios - 在其他平台上使用 iOS GameKit 的 "Bluetooth Bonjour",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8070998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com