下载后可任意编辑AOA 协议开发入门基础下载后可任意编辑1. AOA 协议概述基于 AOA 协议实现 Android 终端 USB 通信方式称为配件模式。此模式下,与 Android 终端通信的另一端设备称为 Android 配件,两者都必须支持 AOA 协议。在 USB 通信过程中,Android 终端充当 USB 从机,Android 配件充当 USB 主机并为总线供电。Android 配件需具有 USB 主控制器功能并移植有 AOA 协议。配件内置 USB Embedded Host 端,可以为 Android 手机供电,并且识别 Android手机,建立数据通道。使得配件成为一个简化版的 PC Host 端。 配件还必须提供 500 毫安在 5V 供电电源。图 1-1 USB 配件模式框图下载后可任意编辑2. AOA 协议工作过程图 2-1 AOA 协议整体交互图1.配件端等待手机连接。2.手机接入配件。3.配件通过 USB 驱动的控制通道(0 通道,端点 0)猎取手机的 vendor ID 与 product ID。下载后可任意编辑4.配件分析猎取的 vendor ID 是否为 0x18D1,以及 product ID 是否为 0x2D01, 0x2D02, 0x2D03 或0x2D04。假如均符合,则说件现在手机已经是配件模式,可以根据配件模式的要求直接重新配置USB 端点和接口。否则启动尝试进入配件模式流程。5.确定手机已经进入配件模式,重新枚举 USB 设备,手机重新进行 USB 协商。6.根据配件模式重新配置 USB 端点和接口,建立配件模式的数据通道。下载后可任意编辑图 2-1 启动配件模式交互流程下载后可任意编辑尝试启动配件模式交互流程:1.配件发送序号 51 的 USB 请求报文,手机收到后查询自己的 AOA 协议版本,发送响应报文给配件。2.配件校验协议版本号,目前为 1 或 2,其他的均为不支持。3.配件发送序号 52 的 USB 请求报文,通过 Index 字段携带配件自身信息,包括制造商,型号,版本,设备描述,序列号,URI 等。手机根据这些信息启动响应的 APP。4.配件发送序号 53 的 USB 请求报文,切换 USB 模式,主要是根据切换 vendor ID 和 product ID。5.重新枚举 USB 设备,准备建立 AOA 数据通道。参考:Android Open Accessory 协议分析与开发 http://www.hackermi.com/2024-04/aoa-analyse/3. AOA 的设备握手过程绝大多数 Android 设备,在缺省情况下都不挂载 Accessory 驱动;在 Accessory 与 Android 设备建立 USB 连接时;Accessory 会通过握手协议查询该设备是否为 Android...