android - 在设备上本地使用 ADB(环回)显示没有设备

标签 android localhost adb local loopback

我正在尝试在 Android 设备本身上使用 ADB,因此没有任何主机。这在几天前运行良好,但突然停止工作。据我所知,从那以后没有任何变化(例如,没有(未)安装应用程序)。我可以用 adb backup -f /sdcard/backup.ab <package-name>在终端模拟器中,它将开始备份该包。当我现在尝试时,它返回 adb: unable to connect for backup .正在使用 adb devices 进行调查返回一个空列表。我以前从不费心检查设备,我只是直接进入我的 adb 命令,因为一切正常。

这是在运行 Android 4.4.2、ADB 版本 1.0.31 的 HTC Desire 上进行的。
在我的 PC 上通过这款手机使用 ADB 工作正常,但这不是我想要的。

我试过的

  • 我尝试在不同的设备上执行相同的操作(4.4.2 上的 Asus PadFone 2,4.4.2 上的三星 Galaxy Note GT-N7000,4.1.2 上的 Sony Xperia S。)但是 adb devices返回所有这些的空列表。我开始想知道为什么这首先适用于我的 HTC Desire。
  • 搜索 Google 和 Stack Overflow,但大多数(如果不是全部)结果涉及驱动程序问题或涉及主机的任何其他问题。
  • adb kill-server + adb start-server大约一百次,还有stop adbd + start adbd .
  • 在设置中关闭和打开“USB 调试”,以及撤销对以前授权计算机的访问。 (但是,在工作情况下,我从来没有得到任何 RSA key 验证提示。)
  • adb -a devices -> 空列表。
  • adb usb -> error: device not found .
  • 尝试在 TCP 模式下重新启动 adb(d) 不成功(即使这在工作情况下没有必要)。 adb tcpip 5555返回 error: device not found .
  • getprop不返回名为 service.adb.tcp.port 的条目和 setprop service.adb.tcp.port 5555默默地失败。 (事后使用 getprop service.adb.tcp.port 检查什么都不返回。这不需要 root 吗?)
  • adb connect localhost返回 unable to connect to localhost:5555 .
  • 当守护进程启动时,它在端口 5038 上启动(在我的 PC 上使用 ADB 时,它从 5037 开始)。 adb connect localhost:5038返回 connected to localhost:5038 .然而adb devices仍然返回一个空列表,并且 adb backup返回 adb: unable to connect for backup .此外adb shell返回 error: device not foundadb get-state返回 unknown .所以这里也没有成功。
  • 使用 getprop dhcp.wlan0.ipaddress 查找我的本地 IP (返回 192.168.1.xx)然后 adb connect 192.168.1.xx返回 unable to connect to :5555 . adb connect 192.168.1.xx:5038 -> unable to connect to :5038 .使用 ADBHOST=192.168.1.xx adb start-server对这些结果没有影响。
  • 实际上有点相关的少数搜索结果之一是 this AOSP 问题跟踪器上的线程。然而,它描述了一个问题,在使用 setprop service.adb.tcp.port 5555 后, adb devices至少显示一个设备,但离线(即 localhost:5555 offline )。在线程接近尾声时,我们找到了一个解决方案,它涉及更改 $HOME 目录以更改 RSA key 的保存位置,例如HOME=/sdcard .然后需要使用 cat /sdcard/.android/adbkey.pub >> /data/misc/adb/adb_keys 将公钥附加到/data/misc/adb/adb_keys .但是,我认为这需要root?此外,所有这些在工作情况下都不是必需的,所以我怀疑我的问题的解决方案是否可以在这个方向上找到。 This article源自 AOSP 问题跟踪器的线程,并未提及附加公钥。然而,所提到的方法是不成功的。
  • netstat返回(除其他外):

    • Proto: tcp
    • Recv-Q: 0
    • Send-Q: 0
    • Local Address: 127.0.0.1:5038
    • Foreign Address: 0.0.0.0:*
    • State: LISTEN
  • ps显示 /sbin/adbd过程以及 adb过程:

    • USER: shell PID: 92 PPID: 1 VSIZE: 3624 RSS: 264 WCHAN: ffffffff PC: 00000000 S NAME: /sbin/adbd
    • USER: u0_a57 PID: 9754 PPID: 1 VSIZE: 3016 RSS: 988 WCHAN: ffffffff PC: 4014f768 S NAME: adb
    • (Commands executed from the terminal are executed as USER: u0_a57.)



  • 我想差不多就是这样。

    我正在寻找一种不需要 root 的解决方案,因为我以前使用它时不需要它。
    我希望我的情况和问题很清楚。如果我的问题需要改进,请告诉我,因为这是我第一次在 Stack Overflow 上发帖。
    希望有人能帮我解决这个问题。提前致谢!

    最佳答案

    我相信您的设备可能已重新启动。要最初让您的手机进入 tcp,您必须运行 adb tcpip 5555从计算机。但这不会永远持续下去。如果您的手机重新启动,则您必须运行 adb tcpip 5555再次从计算机。

    我不确定你说的意思是什么:

    Trying to restart adb(d) in TCP mode is unsuccessful (even though this was not necessary in the working situation). adb tcpip 5555 returns error: device not found.



    你是从电脑上运行的吗?如果它来自计算机,那么我不确定那里有什么问题。但是如果是从手机上,那么就找不到要改成tcp的设备了。

    要解决此问题,adb tcpip 5555从计算机应该工作。

    关于android - 在设备上本地使用 ADB(环回)显示没有设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26782856/

    相关文章:

    java - 读/写数据库错误

    javascript - Cordova Compass API 给出错误代码 3

    smtp - 无法连接到 "localhost"端口 25 的邮件服务器

    android - 是否可以从应用程序执行 ADB shell 命令?

    android - 如何使用 Eclipse 从我的设备检索我的应用程序的沙箱?

    android - 根据线程 id 过滤 adb logcat 的输出

    android - 应用程序内的 float View

    iphone - 将设备连接到 Mac 本地主机服务器?

    php - mySQL 和 Php 网站之间的连接如何工作?

    android - 从 ANDROID 设备实时流式传输视频到 OPENCV