Windows 对USB设备的枚举过程流程图如图1所示:
图1
WP8的USB功能只支持一个配置,三个接口,也就是分别有如下的字段:
设备描述符的bNumConfigurations=1,
配置描述符的bNumInterfaces=3,
主要有3个接口:PTP、WINUSB、WINUSB
Android是支持多USB配置描述符的,但是我们平时见到的手机都是一个配置的,接口数按照你在Android状态栏上选择的功能而定:
设备描述符的bNumConfigurations=1,
配置描述符的bNumInterfaces=x, 根据用户选择的功能而定
IOS支持4个USB配置,也即是有4个配置描述符,配置描述符中的bConfigurationValue分别是1、2、3、4,然后每个配置描述符都有自己的接口和端点描述符:
设备描述符的bNumConfigurations=4,
配置描述符的bNumInterfaces=x,根据Windows选择哪个配置而定,
当我们的电脑上没有安装iTunes时,Windows选择的是配置3,电脑上显示的是PTP Camera协议,当我们电脑上安装了iTunes时,Windows选择的配置4:
当安装了iTunes时,bushound抓包截图如图2所示:
图2