首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

参考资料 ---- 针对手机与外部设备通信,仅有USB与音频接口可以使用,而由于iOS手机不支持OTG功能。因此,本文主要对Android手机通过USB接口与外设通信进行介绍。...市面上现有的手机USB接口与外设通信实例: 图1 手机U盘 图2 手机USB摄像头 ---- 1.手机USB接口通信特点 1.1 使用方便 即插即用,可热插拔,具有自动配置能力,用户只要简单地将外设插人到手机就能自动识别和配置...从逻辑结构上看,每个USB逻辑设备都直接与USB HOST进行数据传输。与传统接口以硬件手段实现握手的方法不同,USB接口使用“软握手”方法。...主机与设备之间以数据数据包的形式进行传送,显然这与网络上数据传输的方式相同,是一种异步数据传输模式。 ---- 3....OTG(On The Go)是一种新型的USB,能够在没有电脑的情行下,实现设备间的数据及图像的传送,在手机中加入传感器,同时将运行程序载入开发板中,通过OTG接口与手机相接,能够让手机拥有更强大的功能

11.4K10

USB HOST与 USB OTG的区别及工作原理

USB OTG的工作原理 OTG补充规范对USB 2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作。...与PC机不同,OTG两用设备的驱动程序栈由USB主机栈和USB设备栈构成以满足两种工作方式的需要。...OTG驱动程序通过连接器的不同或者是否有NHP交换设备的工作方式来决定使用USB主机栈还是USB设备栈。 当OTG两用设备以主机方式工作时,USB主机栈工作。...其中的主机控制器驱动程序负责USB 主机栈与硬件端点的数据交换,USB驱动程序枚举并保存设备的信息,目标外设主机类驱动程序支持目标设备列表里的设备。...主机类驱动程序由芯片制造商提供,同时,OTG提供通用的主机类驱动程序(可以修改以用于非通用设备)。 当OTG两用设备以从机方式工作时,USB设备栈工作。

10K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【技术分享】Android渗透测试

    安装 Kali Nethunter ---- kali nethunter 是在已有的 rom上对内核进行修改而定制的一个系统,他通过 chroot 来在安卓设备中运行 kali。...,cm13是 android 6.0 >-* 和 nethunter-generic-armhf android-kalifs-full-rolling-* ,...开启hander, 同时设置自动运行脚本,当shell过来时,自动迁移进程 3. 在目标机器远程调用执行payload 4. 执行完后sleep 几秒,以保证 msf 能够成功迁移进程。 5....关闭命令行 生成 payload 和 开启handler 设置自动迁移进程 为了简单,复制 生成的 powershell脚本 到本地的web服务器。使用nishang对下面的脚本编码。...由于 nexus4 不支持 otg, 同时该方面的攻击网上也有很多文章介绍。下面说下思路并附上一些相关链接。 1. 破解wifi密码 2. 伪造ap,获取wifi密码 3.

    1.1K60

    Android项目实战(四十六):Usb转串口通讯(CH34xUARTDriver)

    手机自身蓝牙连接有问题(厂商蓝牙底层的修改导致的不稳定, 不能连接多个)  缺点:部分手机不支持OTG,即无法获取usb接口连接硬件的数据 ?...官方demo是eclipse项目,需要先自行创建一个android studio的demo    一、创建一个android studio项目    二、将 CH34xUARTDriver.jar 文件放在目录...并在AndroidManifest.xml文件里添加代码:         在某一个Activity里声明,该作用为 当用户插入设备的时候,会提示是否打开该程序,并调到指定的Activity (这一步不是必须操作...,如果不想设备插入就弹出提示是否打开某个程序的话,就不用做这一步) android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED...(不支持OTG功能)        6、流程为打开设备-->配置设备,, 如果修改了配置参数,则可以直接配置设备,不需要执行close -- > open > config  六、Android studio

    1.7K60

    Android项目实战(四十六):Usb转串口通讯(CH34xUARTDriver)

    手机自身蓝牙连接有问题(厂商蓝牙底层的修改导致的不稳定, 不能连接多个)  缺点:部分手机不支持OTG,即无法获取usb接口连接硬件的数据 ?...官方demo是eclipse项目,需要先自行创建一个android studio的demo    一、创建一个android studio项目    二、将 CH34xUARTDriver.jar 文件放在目录...并在AndroidManifest.xml文件里添加代码:         在某一个Activity里声明,该作用为 当用户插入设备的时候,会提示是否打开该程序,并调到指定的Activity (这一步不是必须操作...,如果不想设备插入就弹出提示是否打开某个程序的话,就不用做这一步) android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED...(不支持OTG功能)        6、流程为打开设备-->配置设备,, 如果修改了配置参数,则可以直接配置设备,不需要执行close -- > open > config  六、Android studio

    3.4K80

    如何使用Android-PIN-Bruteforce爆破Android的锁屏密码

    写在前面的话 在这篇文章中,我们将教大家如何通过暴力破解Android手机的锁屏密码来解锁Android设备。...并介绍Android-PIN-Bruteforce工具,该工具可以将你的Kali Nethunter手机转换成一台针对Android设备的暴力破解PIN码设备,而且无需进行Root也无需adb。...Android-PIN-Bruteforce需要使用一条USB OTG线来将锁定的手机跟Nethunter设备连接,它会模拟一个键盘,并自动尝试输入PIN码,然后不断地进行暴力破解尝试。...[Nethunter手机][USB线][USB OTG适配器][锁定的Android手机] USB HID小工具驱动程序可以提供USB HID模拟功能,这将允许Android Nethunter...设备要求 一台锁定的Android手机 一台Nethunter手机(或者任意支持HID内核的已Root的Android设备) USB OTG线缆/适配器 标准充电线 功能介绍 爆破1-10位任意长度的PIN

    3.4K30

    USB技术浅析

    由于流是基于一个标准的批量管道运行,一个错误就会让管道暂停(halt),停止所有的活动。 4....三、USB3.0 OTG 在usb2.0时代,为了满足移动设备单usb口既可以为主也可以为从的需求,出现了otg功能。...我们市面上买的otg线,内部电路就是把id pin与GND线相接,以实现otg线插入后,手机可以作为host端 在usb3.0中,id pin的功能同样被强大的typec所取代,主从的识别将通过cc来识别...USB3.0 OTG (1) ConfigFS 在《带你遨游USB世界》中,我们介绍了android.c的gadget配置方式,在早期时,linux的gadget驱动都是固定功能,即开机后usb功能就已固定...而这样的功能,明显无法满足移动设备对于otg功能的需求,因此android推出了android.c和composite.c的复合功能的gadget驱动。

    2.8K30

    PC 和开发板之间传输文件

    开发板的 USB OTG 口通过 USB 线接到 Ubunut 时,开发板是 USB 从设备,开发板可以模拟 U 盘、USB 串口、USB 网卡;Ubuntu 看到的就是一个 U 盘、USB 串口或是...开发板要安装 USB 驱动程序以模拟 USB 网卡,Ubuntu 要安装 USB 网卡驱动程序。幸运的是,Ubuntu 中自带该 USB 网卡的驱动程序,并且会自动安装驱动程序。...在 VMWare 上把虚拟网卡连接到 Ubuntu,在 Ubuntu 中设置 IP 8.5.1.1 在开发板上安装 USB OTG 网卡模块驱动程序并设置 IP 如下所示,我们需要先在开发板终端上执行“...在安装 g_ether 驱动时,开发板就已经模拟出了一个 USB 网卡。一旦连接开发板的 USB OTG 口到电脑,就相当于给电脑插上了一个 USB 网卡,设备管理器会自动识别到新的设备。...8.5.1.2 在 VMWare 中连接虚拟网卡设备至 Ubuntu 并设置 IP 如下图所示,在开发板上安装 g_ether 驱动并连接 USB OTG 线到 PC 上后,PC 会发现一个新的网卡。

    6.2K10

    USB总线-RK3399 USB3.0控制器特性介绍(二)

    2.USB3.0 OTG Controller简介 USB3.0 OTG控制器可以作为主机(Host)、设备(Device),或者根据从USB2.0 PHY和DFP/UFP/Data Role Swap...输入的ID状态确定是USB2.0/3.0 OTG A设备和B设备。...HS/FS)模式下支持(micro-)SOFs特性 低MIPS(Million Instructions Per Second)支持 驱动程序只需要在传输建立时和高等级错误恢复时参与其中 硬件自动将数据打包并路由到明确的管道...硬件自动处理ERDY和burst 基于流(Stream-based)的批量端点可以自动控制启动数据移动 在数据缓冲区中使用等时数据的等时端点 灵活的描述符,具有丰富的功能集,以支持缓冲区中断调节,多次传输...3.0 Dual-Role Device (DRD) 特性 静态设备操作 静态主机操作 基于ID的USB3.0/USB2.0 OTG A设备和B设备 3.USB3.0 OTG Controller硬件框图

    2.6K20

    树莓派使用Android系统

    如果只插入了一个可写设备,Etcher软件会自动选择它。 3. 最后,点击 "Flash!"按钮,开始将镜像写入SD卡。...现在将看到一个对话框菜单,要求选择要使用的存储设备。点击 "USB-OTG "选项,因为这是我们的谷歌应用包目前的位置(1。选择后,点击 "确定 "按钮。 5....现在可以选择是否要将应用程序和数据复制到新的Android设备。在本教程中,我选择 "不复制 "选项(1.)。但是,如果您想复制数据,请点击 "NEXT "按钮(2)。 4....现在,可以通过点击 "START >"按钮返回Android启动器。 11. 现在成功地在Raspberry Pi上运行Android,并安装了Google Apps。...希望到这里,你也已经成功地在你的Raspberry Pi上安装并运行了Android。 原文链接:树莓派如何使用Android系统,详细步骤安装和配置LineageOS

    16.2K20

    Android OTG之USB转串口模块通讯

    Android OTG之USB转串口模块通讯 微信公众号:CodingAndroid CSDN:http://blog.csdn.net/xinpengfei521 1.背景简介 我们公司开发了一款室内机平板...4.插入模块实现自动打开APP Android中USB的插拔都会发送一个广播,我们只需要在AndroidMenifest.xml文件中接收这个广播就可以了,当我们入模块的时候就会启动我们的APP,第一次会弹出一个对话框询问我们是否打开...xxx应用,我们点击确认即可,另外不是我们插入任何USB设备都打开我们的应用,所以我们需要过滤掉对我们没有用的设备,在res下建一个xml目录,新建usb_filter.xml文件,配置好我们这个USB...设备模块的product-id和vendor-id,每个模块厂家这个值都是不一样的,有两种获取方式,一个是代码中枚举USB设备然后打印出来,另外一种方法是打开Logcat观察,然后插入USB设备,你会发现系统会打印出来这个...USB设备等信息。

    3.2K10

    韦东山鸿蒙开发教程05 - 在STM32MP157上体验鸿蒙系统

    ST公司有一款烧写软件:STM32CubeProgrammer,它的界面如下: 使用这软件,只需要一条USB线连接电脑和开发板USB OTG口,只需要点击几个按钮就可以体验鸿蒙系统。...1.2.2 连接USB OTG线 接线、设置USB启动的方式如下: 全功能版接线方式 1.2.3 安装STM32MP157的USB驱动程序 通过USB下载或是烧写程序时,需要把开发板的OTG口使用USB...线连接到电脑,并设置为USB启动方式,然后启动电源,此时打开windows 10设备管理器,在通用串行总线设备 会出来一个名为 “DFU in HS Mode @Device ID /0x500....USB驱动没有自动安装 通过USB下载或是烧写程序时,需要把开发板的OTG口用USB线连接到电脑。目前暂未遇到无法安装驱动的问题,如果您在烧写的时候没有设备,请联系百问网相关技术人员以请求支持。...1.4.1 启动鸿蒙 首先,把开发板设置为USB启动,用USB线连接电脑和板子的OTG口,用USB先链接电脑和板子的USB串口。 打开串口工具。

    1.2K30

    基于安卓设备的Hacking

    因此,推荐适用的Android设备是Google系列手机和平台,一加手机(一加3t及之前手机不可OTG,而且全系不支持外置USB无线网卡) 3、其他 A)将Android设备打造为一款移动的智能“入侵”...B)Kali Nethunter和Andrax是打造智能“入侵”终端的必备系统,其根本原理就是安装一个chroot的工具包,这样可以通过chroot以root用户权限运行各种开源的Hacking工具。...之所以建议使用原生系统是因为原生 Android系统的设备兼容性最好,能够支持较多的USB无线网卡,这样才能完成基于Android设备的无线入侵。...脚本文件1.sh,将用于抓包的USB网卡设置为混杂模式 #!/bin/bash airmon-ng start wlan1 脚本文件2.sh,开启抓包模式,监听并记录空口数据 #!...如果有时间进一步打磨,可以编写一个或几个脚本实现几乎全自动的WiFi握手包抓取脚本。 0x04:工具 基于Android设备的渗透更多应用于IoT场景,这是与传统Hacking最大的不同。

    1.6K00

    鸿蒙系统体验之在IMX6ULL上体验鸿蒙系统

    运行上图中的程序。 1.2.2 连接USB OTG线 先把开发板设置为USB启动方式,接好2条USB线,开发板上电。 (1) 全功能版接线方式 ?...USB驱动没有自动安装 通过USB下载或是烧写程序时,需要把开发板的OTG口用USB线连接到电脑。...先去https://zadig.akeo.ie/下载zadig并运行,然后参考下图安装驱动程序: ?...安装第2个驱动:当烧写工具的“设备已连接”绿灯亮起,就可以在“专业版”点击“运行”按钮,这时电脑会识别出“USB download gadget”设备,一般都会自动给它安装驱动程序,如下图: ?...如果没有自动安装好驱动程序(“固件已运行”绿灯没亮),先去https://zadig.akeo.ie/下载zadig并运行,然后参考下图安装驱动程序: ?

    2.6K31

    usb协议开发_基于事件驱动的架构

    USB主机在USB设备和USB主机之间发起的传输过程,稳为事务。每次事务以2到3个数据包的形式进行USB总线传输。...,并传递给上层的设备端驱动软件;同时也接收来自上层的非USB格式数据流,进行相应的数据处理后传递给USB主机控制器驱动。...USB Core中的usb_init()函数中完成了对hub线程(khubd,在usb_hub_init函数中真正地创建)的创建,然后完成相应设备的探测。...4.1.2 主机控制器的初始化及驱动执行(以EHCI为例) module_init(otg_init); 模块注册 static init __init otg_init(void);...USB主机和USB设备之间进行数据交互,USB设备本身并没有总线控制权,U盘被动地接收USB主机发送过来的信息并做出响应。

    2K30

    RISC-V SoC + AI | 在全志 D1「哪吒」开发板上,跑个 ncnn 神经网络推理框架的 demo

    1、必要的材料 「哪吒」开发板 Type-C USB 线 USB 转 TTL 转换器 安装有 GNU/Linux 或较新版本的 Windows 10 / 11 的可联网电脑 (本文以 Windows...找出 Type-C USB 线,将开发板的 OTG 接口与电脑相连即可上电(虽然连 POWER 也可以,但是后边一直需要使用这个 OTG 接口,所以推荐连接它)。...下载好 .img 固件文件后,参考 D1 文档中 “编译与烧写” 的 “烧写” 部分 ,下载 全志USB驱动,使用管理员权限运行 install.bat 安装驱动,再安装烧写软件进行操作,即可将固件烧写进开发板...使用 ADB 传输文件 ADB 是 Android Debug Bridge,原本为 Android 设计,全志给 Tina Linux 也做了适配,所以我们可以使用 ADB 来调试 Tina Linux...的设备。

    41010

    iPhone 15 音频HUB+PD快充方案_LDR6023SQ低成本、高兼容

    在OTG模式下,USB-C接口可以用于连接外部设备,例如SD(读卡器)、音频、U盘、鼠标等。...在协议中,设备可以发送消息给适配器,请求降低充电功率,以节省能源。例如,当设备处于待机状态或低功耗状态时,可以请求适配器降低充电功率,以实现更加环保的能源使用。...◇ 支持 USB PD 2.0,兼容 USB PD 3.0 ◇ 支持 QC2.0,兼容 QC3.0◇ 透传适配器与智能设备(电脑,平板,手机)之间的 PDO 及 REQUEST 协商◇ 自动进行 DR_SWAP...在USB-C PD协议中,设备与适配器之间的通信是双向的。当设备需要充电时,它会通过CC线向适配器发送请求,适配器在接收到请求后,会回应设备并告知其可提供的档位功率。...USB-C PD协议的智能和灵活性还体现在它能够自动处理各种情况。例如,当设备处于待机状态或低功耗状态时,它可以发送消息给适配器请求降低充电功率,以节省能源。

    22630

    【STM32H7】第5章 RL-USB协议栈移植(MDK AC6)

    并配置 5.7 第4步,强行运行一次CubeMX配置USB 5.8 第5步,修改文件USBD_STM32H7xx.c 5.9 第6步,修改文件stm32h7xx_hal_msp.c 5.10 第7步,修改文件文件...5.7 第4步,强制运行一次CubeMX配置USB 我们这里要强行运行一次STM32CubeMX来自动使能RL-USB的相关宏定义,并配置USB接口使用到的两个引脚PA11和PA12。...方便起见,大家可以直接从本章配套例子里面复制粘贴(这两个文件位于User文件夹),添加后的效果如下: 5.12 第9步,添加头文件路径 添加头文件路径: 5.13 第10步,创建应用任务(重要,注意启动任务...任务创建AppTaskCreate。 初始化USB并连接电脑。 需要周期性处理的程序bsp_ProPer1ms,对应裸机工程调用的SysTick_ISR。...*/ AppTaskCreate(); USBD_Initialize(0U); /* 初始化USB设备 */ USBD_Connect (0U); /* USB设备连接

    55410
    领券