我正在尝试将adb与平板电脑配合使用。平板电脑及其文件树在Files目录导航器中被识别,我可以导航到/media/me/SP1020
。
我不明白为什么adb无法识别设备。我从终端运行这些说明:
adb kill-server
adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
adb devices
List of devices attached
没有显示任何内容。
lsusb将设备ID列为:
Bus 001 Device 004: ID 1f3a:1000
所以我在〜/ .android中使用vim在adb_usb.ini的顶部输入了这个ID“0x1f3a”;在此工作不起作用后,我删除了此文件adb_usb.ini,我也尝试输入
echo "0x1f3a" > ~/.android/adb_usb.in
这次保留文件。我还在/etc/udev/rules.d中创建了一个51-android.rules文件,内容如下:
SUBSYSTEM=="usb",SYSFS{idVendor}=="1f3a",MODE="0666"
然后我重新启动了我的系统和我的平板电脑,并尝试了
adb kill-server
adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
adb devices
List of devices attached
仍然没有显示任何内容。
这里也是usb / 004的内容
ls -l /dev/bus/usb/004
total 0
crw-rw-r-- 1 root root 189, 384 Sep 23 09:53 001
答案 0 :(得分:1)
这是我用来检测和注册系统中所有bash
设备的adb
函数:
UpdateAdbUsbIni () {
INIFILE=${1:-$HOME}/.android/adb_usb.ini
mkdir -p $(dirname $INIFILE)
DEVICES=$(find -L /sys/bus/usb/devices -maxdepth 2 -path "*/modalias" -printf "%h\t" -exec cat {} \; | awk -F: '/icFFisc42ip0/ {print $1}')
echo -e "\nRegistering Vendor IDs for the following ADB devices:"
for D in $DEVICES
do
echo -e "\tDEVPATH=$D Serial=$(cat $D/serial) VendorID=0x$(cat $D/idVendor) ($(cat $D/manufacturer))"
echo "0x$(cat $D/idVendor)" >> $INIFILE
done
VIDS=$(grep ^0x....$ $INIFILE | sort -u)
echo "$VIDS" > $INIFILE
return 0
}
此功能不依赖于现有的adb
配置。因此,如果它没有列出任何设备 - 这意味着没有连接的设备枚举了adb
个接口。
这是另一个有用的功能:
InstallUniversalAndroidUdevRule () {
RULE='ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:ff420?:*", MODE="0666", GROUP="plugdev", SYMLINK+="android/$env{ID_SERIAL_SHORT}"'
RULEFILE="/etc/udev/rules.d/${1:-90}-universal-android.rules"
if [ "0$(id -u)" != "00" ]; then echo "No permission to add the universal Android udev rule!"; return 1; fi
echo "$RULE" > $RULEFILE
udevadm control --reload-rules
udevadm trigger --action=add --subsystem-match=usb
return 0
}
此功能添加了通用的android udev
规则,该规则可匹配所有android
设备,无论制造商如何。它确实需要root
权限才能运行。
这个问题促使我终于完成了我的The most comprehensive write up on how to properly install adb in a debian-based linux environment
答案 1 :(得分:0)
我尝试了UpdateAdbUsbIni脚本,没有得到任何响应,然后检查设备是否有任何问题。原来在"设置" - > " {}开发者选项"," USB调试"没有检查。当我选中此选项并重新连接设备时,我得到了:
adb devices
List of devices attached
4d773808680064314c9 device
感谢Alex P!
答案 2 :(得分:-2)
在我的系统(Ubuntu 12.04)上,您必须以root身份运行adb kill-server / adb start-server。尝试使用:
sudo adb kill-server
sudo adb start-server