You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何让PC伪装为Android的物理鼠标/键盘(无触控、无OTG)

可行!但分平台有不同实现路径,还有几个省心的替代方案

先给你吃个定心丸:安卓原生支持标准USB HID鼠标/键盘,所以核心问题是让你的PC从「USB主机」切换成「USB外设」,模拟HID设备让安卓识别。下面分编程实现和替代方案给你细说:

一、用C/C++等语言实现的可行性

这个方向是完全可行的,但不同平台的难度差异很大:

Linux平台(最容易上手)

Linux内核自带USB Gadget框架,专门用来让设备模拟USB外设。用C/C++写代码的话,你可以基于这个框架开发简单的HID模拟程序,甚至不用写代码,直接用内核模块就能搞定:

  • 先确认你的PC支持USB OTG(进BIOS找「USB Role Switch」「USB Device Mode」这类选项开启);
  • 加载内核模块并配置(以鼠标为例):
    # 加载基础模块
    modprobe libcomposite
    modprobe g_hid
    # 写入鼠标的HID报告描述符
    echo -n -e "\x05\x01\x09\x02\xa1\x01\x09\x01\xa1\x00\x05\x09\x19\x01\x29\x03\x15\x00\x25\x01\x95\x03\x75\x01\x81\x02\x95\x01\x75\x05\x81\x01\x05\x01\x09\x30\x09\x31\x15\x81\x25\x7f\x75\x08\x95\x02\x81\x06\xc0\xc0" > /sys/kernel/config/usb_gadget/my_hid/functions/hid.usb0/report_desc
    # 启用模拟设备
    echo 1 > /sys/kernel/config/usb_gadget/my_hid/UDC
    
    如果你要写C代码,直接操作/sys下的gadget节点就行,逻辑非常清晰。

Windows平台(有一定门槛)

Windows默认是USB主机模式,要切换成设备模式需要用到微软的USB Function Class Extension (UFX),这意味着你得写Windows驱动程序(用C/C++),还要处理驱动签名的问题(除非你临时禁用驱动签名验证)。

  • 可以用libusb或者WinUSB辅助开发,但整体复杂度比Linux高不少;
  • 也可以找现成的开源项目修改,比如USBDeviceEmulator,编译后就能快速模拟HID设备。

macOS平台(难度较高)

Apple对USB设备模式的限制比较严格,官方没有开放简单的开发框架,你得用IOKit做底层开发,而且很多功能需要系统权限,甚至可能需要特殊的系统配置才能实现,不推荐优先尝试。

二、无需编程的替代方案(优先试试这些!)

如果不想折腾代码,这些方案更省心:

  • Linux现成工具一键模拟:刚才提到的g_hid模块,配合usbgadget工具链,不用写一行代码就能配置成鼠标/键盘,网上有很多现成的脚本可以直接套用。
  • Windows第三方工具:比如USB Redirector(部分功能付费),或者各类HID Emulator工具,能让PC快速模拟HID外设,注意需要跳过Windows驱动签名验证。
  • ADB无线调试(仅限之前开了开发者模式的情况):如果你的手机之前开启过开发者模式和ADB调试,而且能自动连接WiFi(和PC同局域网),可以用adb shell input命令模拟操作:
    adb shell input tap 500 500  # 模拟点击屏幕坐标(500,500)
    adb shell input text "hello world"  # 模拟输入文字
    adb shell input swipe 100 500 900 500 1000  # 模拟从左到右滑动(耗时1秒)
    
    这个方案不需要USB连接,只要能连WiFi就行。
  • 应急无线投屏映射:如果你的手机之前开了Miracast/Chromecast投屏,把屏幕投到PC或电视上,部分安卓系统支持投屏后的鼠标映射(用PC鼠标操作投屏画面,同步到手机),不过这个依赖系统支持,不一定能成功。

三、关键注意事项

  • 必须用可传输数据的USB线:很多充电线只有电源线,没有数据线,一定要找能传文件的那种;
  • PC的USB OTG支持:大部分新的USB-C接口PC都支持,但USB-A接口可能需要OTG适配器(你说没有的话就优先用USB-C直连);
  • 安卓无需额外操作:标准HID设备是安卓原生支持的,只要PC模拟成功,安卓会自动识别成鼠标/键盘,不需要触屏操作任何设置。

内容的提问来源于stack exchange,提问作者theebugger

火山引擎 最新活动