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