USB + ADB 以太网 |在 OTG 中动态切换 Host 和 Peripheral 模式

问题描述 投票:0回答:1

问题:

我在远程位置拥有一台 Android 设备,用于运行各种测试和操作。我需要能够发送 ADB 命令,同时将手机连接到有线互联网连接。由于各种原因,我的设备无法连接WiFi,也无法root设备。由于 USB 枚举结构,如果我将 USB 集线器连接到带有以太网端口的手机,并通过 USB 连接到 PC,则选项是主机 + 互联网中的电话但无 ADB,或带有 ADB 但无以太网的外设模式的电话连接。

我尝试过的:

  • 设置
    adb tcpip 5555
    以通过网络连接(TCP 模式)启用 ADB。这意味着通过 USB 连接手机,设置
    adb tcpip 5555
    以通过网络启用 ADB,然后断开 USB 并在主机模式下替换为以太网适配器的连接。这工作正常直到手机重新启动,然后需要手动干预。
  • 各种 USB 适配器/集线器设置。
  • LADB解决方法是手机通过无线ADB连接到自身,然后将adbd设置为TCP模式等。为此,我需要一个WiFi网络,因此它不满足要求。它也很片状。
  • USB 互联网(gnirehtet 等)。该解决方案不起作用,因为它需要 VPN,并且还需要与机器的 USB 连接,而我更喜欢仅电源和以太网连接。

我想做的事: 我想知道是否可以购买 Raspberry Pi 或其他一些微控制器,并使用 On-The-Go (OTG) 中描述的 会话请求协议 (SRP) 和/或 主机协商协议 (HNP) 实施解决方案如下:

  • 使用 USB-C(作为 OTG 电缆)将 Android 设备连接到配套设备。
  • 通过以太网端口将配套设备连接到互联网
  • 设置状态
  1. Android/外部代码中的软件检测 adbd 何时处于 USB 模式,并重新协商与处于设备模式的 Android 的连接。伴侣使用 USB 连接发送
    adb tcpip 5555
  2. 一旦 adbd 设置为 TCP 模式,软件(使用
    getprop
    )会检查手机是否通过网络接受 ADB,并重新协商 USB 连接,以便 Android 现在成为主机,并接受配套设备作为以太网适配器,并且互联网流量到设备。

这样,即使设备重置后,与设备的网络连接(包括发送 ADB 命令)也能保持稳定。还有功率方面的考虑,但它们是次要的。

android tcp raspberry-pi libusb usb-otg
1个回答
0
投票

听起来是一个很大的挑战.. 据我所知,PI 0 既可以充当 USB 主机,也可以充当 USB 以太网小工具。您也许可以利用它发送“adb tcpip 5555”,然后切换模式,并共享 PI 与 android 的连接。但是,如果您也无法在 PI 上使用 wifi,则需要通过 GPIO 为其提供以太网,而不是确定它在零上是如何完成的。 另一种方法是使用 root 的 android,并设置 adb 命令的本地等效项。

附注:我已经尝试了您的第一种方法,即通过 USB 向我的电脑发出 adb 命令,然后切换电缆,除了无法重新启动之外,scrcpy(我的远程调试用例)的性能也无法接受。我最终使用了 USB,以及 gnirehtet 和 scrcpy 通过 USB 的组合,具有出色的性能,除了基本的手机服务之外,我的手机没有发出电磁辐射,而其余的通信都是通过 USB 处理的,唯一需要注意的是每次都必须在手机上接受 VPN 连接。

© www.soinside.com 2019 - 2024. All rights reserved.