在设备上本地使用ADB(环回)不显示任何设备

时间:2014-11-06 15:14:38

标签: 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上。 使用这款手机在我的电脑上使用ADB工作正常,但这不是我想要的。

我尝试了什么

  • 我试图在不同的设备上执行相同的操作(4.4.2上的华硕PadFone 2,4.4.2上的三星Galaxy Note GT-N7000,4.1.2上的索尼Xperia S。)但是adb devices返回所有这些都是一个空列表。我开始想知道为什么这首先对我的HTC Desire起作用了。
  • 搜索Google和Stack Overflow,但大多数(如果不是全部)结果都是指驱动程序问题或涉及主机的任何其他问题。
  • adb kill-server + adb start-server约一百次,以及stop adbd + start adbd
  • 转动&#39; USB调试&#39;在“设置”中关闭和打开,以及撤消对先前授权的计算机的访问权限。 (但是,在工作情况下,我从未得到任何RSA密钥验证提示。)
  • adb -a devices - &gt;空列表。
  • adb usb - &gt; 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(返回192.168.1.xx)查找我的本地IP,然后adb connect 192.168.1.xx返回unable to connect to :5555adb connect 192.168.1.xx:5038 - &gt; unable to connect to :5038。使用ADBHOST=192.168.1.xx adb start-server对这些结果没有影响。
  • AOSP问题跟踪器上的this主题是少数实际上相关的搜索结果之一。然而,它描述了一个问题,即在使用setprop service.adb.tcp.port 5555之后,adb devices至少会显示设备,但是离线(即localhost:5555 offline)。在线程末端附近有一个解决方案,它涉及更改$ HOME目录以便更改RSA密钥的保存位置,例如, 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
    •   
    • (从终端执行的命令以USER:u0_a57执行。)
    •   

我想这就是它。

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

1 个答案:

答案 0 :(得分:-2)

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

当你说:

时,我不确定你的意思
  

尝试在TCP模式下重启adb(d)是不成功的(即使在工作情况下不需要这样做)。 adb tcpip 5555返回错误:找不到设备。

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

要解决此问题,计算机中的adb tcpip 5555应该有效。