Remote ADB Shell 是一款终端应用程序,可让您通过网络连接到其他 Android 设备的 ADB Shell 服务并执行终端命令。这对于远程调试 Android 设备(运行 top、logcat 或 dumpsys 等工具)很有用。它支持与不同设备的多个同时连接,即使应用程序在后台,也可以保持这些连接处于活动状态。此应用程序在任一设备上都不需要 root,但 root 可能有助于配置目标设备。如果目标设备未植根,则必须使用带有 Android SDK 和 Google USB 驱动程序的计算机来配置它们(详细信息如下)。
这个应用程序是在 ADB 上公开的外壳的包装器。它维护 15 个命令历史记录,可通过长按命令框访问。长按终端显示本身将提供发送 Ctrl+C、切换自动滚动或退出终端会话的选项。
这与“adb shell”命令在计算机上的工作方式完全相同。由于此应用程序使用 Java 中 ADB 协议的本机实现,因此它不需要任何设备上的 root 或目标设备上的任何 3rd 方应用程序。这些设备只是简单地相互使用相同的协议,就像它们对运行 Android SDK 中的 ADB 客户端的计算机一样。
重要提示:运行 Android 4.2.2 及更高版本的设备使用 RSA 密钥来验证 ADB 连接。在我的测试中,运行 4.2.2 的设备在您第一次连接到计算机时需要插入计算机(从安装了此应用程序的每台设备)。这允许他们显示您必须接受的公钥接受对话框(并选中“始终允许来自此计算机”)。运行 Android 4.3 和 4.4 的设备在没有连接到计算机的情况下显示对话框似乎没有问题,因此看起来这是特定于 Android 4.2.2 的解决方法。
要配置库存无根目标,请将目标设备插入安装了 Android SDK 的计算机,并从 Android SDK 的平台工具文件夹中运行“adb tcpip 5555”。这将启动 ADB 侦听目标设备上的端口 5555。然后可以拔下设备并保持正确配置,直到重新启动。
对于已植根的设备(尽管不是必需的),您可以安装几个“ADB WiFi”应用程序之一,以使 ADB 服务器能够通过网络进行侦听。具有自定义 ROM 的设备可能会在设置的“开发人员选项”窗格中选择通过网络启用 ADB。使用这些方法中的任何一种都将正确配置 ADB 以使用此应用程序进行网络访问。初始连接仍需要 4.2.2 的额外步骤。
要连接到远程 Android 设备,请在 Remote ADB Shell 中输入设备的 IP 地址和端口号(上例中的 5555)。点击连接,它将尝试连接到设备并启动终端。
开发人员:我为这个应用程序编写的自定义 Java ADB 库是在 BSD 许可下开源的,位于 https://github.com/cgutman/AdbLib
此应用程序的源代码在 Apache 许可下可用:https://github.com/cgutman/RemoteAdbShell