如何在Linux系统中使用ADB连接Motorola设备?

5
正如标题所说,我在Linux上使用ADB时遇到了困难。我有一部运行Gingerbread 2.3.4的Motorola Droid X Shadow手机和一台安装Ubuntu 13.04的笔记本电脑。我需要能够使用ADB从计算机与手机建立连接。
  1. 我从Google下载并安装了ADB(放置在~/android-sdk-linux目录下)
  2. 我将手机设置为调试模式(设置->应用程序->开发->USB调试)
  3. 我安装了udev规则。(有关更多信息,请参见this
  4. 我重新启动了计算机和手机
  5. 我将两者连接起来(手机显示正在充电)
  6. 我尝试执行./adb devices命令

但是我得到了一个空设备列表。

sam@Aristotle:~$ ls -ahl /etc/udev/rules.d/51-android.rules 

    -rwxr-xr-x 1 root root 2.7K Jun 19 14:03 /etc/udev/rules.d/51-android.rules

sam@Aristotle:~$ cat /etc/udev/rules.d/51-android.rules 
    <!-- snip -->
    SUBSYSTEM==”usb”, ATTR{idVendor}==”22B8″, MODE=”0666″, GROUP=”plugdev”
    <!-- snip -->

然后我重新启动机器,等它启动起来后,插入手机。

root@Aristotle:/home/sam/android-sdk-linux/platform-tools# ./adb devices
    List of devices attached 

root@Aristotle:/home/sam/android-sdk-linux/platform-tools# ./adb kill-server
root@Aristotle:/home/sam/android-sdk-linux/platform-tools# ./adb start-server
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
root@Aristotle:/home/sam/android-sdk-linux/platform-tools# ./adb devices
    List of devices attached 

root@Aristotle:/home/sam/android-sdk-linux/platform-tools# 

我也尝试了使用用户'sam'(sam在plugdevs中)来进行操作。我还在我的笔记本上的多个USB端口上尝试了这个操作。

我曾想过可以使用类似this app的东西通过wifi与手机通信,但这需要root权限,而且只有“安全”的root方法需要adb。

我打开了Udev调试并再次尝试了一下。然后我打开了/var/log/udev文件。它很长,所以我搜索了“22b8”(不区分大小写),因为根据here,这是motorola的USB供应商ID,但我的搜索没有找到任何结果。我认为我放在/etc/udev/rules.d/的规则由于某些原因没有被触发。

输出到sudo lsusb -vv可以在here(太长了无法发布)找到。

我还尝试安装p2kmoto。

root@Aristotle:/home/sam/android-sdk-linux/platform-tools# p2ktest 
P2k Test
Device list:
1d6b:0001: [Linux 3.8.0-26-generic ohci_hcd] [OHCI Host Controller]
0461:4d16: [] [USB Optical Mouse]
1d6b:0001: [Linux 3.8.0-26-generic ohci_hcd] [OHCI Host Controller]
1d6b:0001: [Linux 3.8.0-26-generic ohci_hcd] [OHCI Host Controller]
1d6b:0001: [Linux 3.8.0-26-generic ohci_hcd] [OHCI Host Controller]
04f2:b044: [Chicony Electronics Co., Ltd.] [CNF7017]
1d6b:0002: [Linux 3.8.0-26-generic ehci_hcd] [EHCI Host Controller]
1d6b:0002: [Linux 3.8.0-26-generic ehci_hcd] [EHCI Host Controller]
No phone found.

lsusb 的输出是什么?手机重启后,USB 开发选项是否仍然启用? - dudebrobro
你已经以root权限运行了adb - 你的问题与udev规则无关(这只允许普通用户访问adb)。 - Alex P.
通常,“非root”问题表现为设备被检测到但状态=??????。 - Andrew G
@QuentinSwain 这是lsusb输出:https://dl.dropboxusercontent.com/u/33591459/lsusb.txt - charmoniumQ
您的lsusb输出中没有安卓设备。即使手机显示正在充电,我建议尝试另一根USB电缆。 - Alex P.
我和我的Moto G遇到了完全相同的问题。我正在使用一根我用于调试另一个Android设备的USB电缆,所以我认为问题不在电缆上... - Ivan Petrushev
1个回答

2
根据lsusb的结果,似乎没有显示任何Android设备。您是否在手机上启用了USB调试?您可能需要查看此视频以获取详细信息: video

1
除了启用USB调试之外,如果运行的是4.2.2版本,则需要在设备提示时授权连接设备的计算机。 - dudebrobro
这个设备确实处于USB调试模式。我已经重启了手机,但它仍然处于调试模式。我正在运行2.3.4版本。在lsusb输出中没有任何变化。我应该在lsusb输出中寻找什么? - charmoniumQ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接