小编use*_*235的帖子

HID报告描述符(带iPhone)

我正试图通过蓝牙将键盘从ubuntu发送到我的iPhone4.即,开发一个非常原始的虚拟键盘.

问题让我的应用程序与iPhone通信(即使用报告协议,这是所有iPhone支持).实际上,我的write(interruptChannelFD)调用没有返回任何错误,但iPhone端没有文字出现.已使用blueZ库打开l2cap通道.

问题1:鉴于没有虚拟键盘可以做到这一点,它有多难?

我正处于iPhone和我的linux盒连接并保持连接的阶段,没问题.此外,所有perror()调用都告诉我控制和中断通道套接字连接正常.(我所做的是hciconfig我的加密狗到键盘设备类,并使用Collin Mulliner的着名代码稍作修改 - 我必须输入一次密码,因为所有智能手机都需要).

问题2: 我应该能够在write()不担心加密的情况下进入插槽,对吧?我输入了密码,手机信任键盘.(科林正在考虑可能的隐藏攻击,但我诚实地联系)

另外,据我所知,在HID设备的启动协议中,SPD中指定的确切报告描述符几乎不相关 - 报告格式无论如何都是固定的.所以...

问题3:我是否会错过报告协议的主要内容.我所做的是修改Apple键盘报告描述符并写入套接字(见下文).

const uint8_t hid_spec[] = { 
    0x05, 0x01, // usage page
    0x09, 0x06, // keyboard
    0xa1, 0x01, // collection (Application)
    0x85, 0x01, // report id (0x01)
    0x05, 0x07, // usage page(keyboard)
    0x19, 0xe0, // usage min
    0x29, 0xe7, // usage max
    0x15, 0x00, // logical min
    0x25, 0x01, // logical max
    0x75, 0x01, …
Run Code Online (Sandbox Code Playgroud)

iphone usb bluetooth hid usb-descriptor

6
推荐指数
1
解决办法
4541
查看次数

标签 统计

bluetooth ×1

hid ×1

iphone ×1

usb ×1

usb-descriptor ×1