某日需要在Ubuntu下執行cts,卻發現設備不能被adb訪問如下:
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
???????????? no permissions
首先識別設備:
step 1:得到設備ID,注意某一廠商所有產品的idVendor應當固定不變,只是具體產品idProduct不一致
$:lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 004: ID 413c:2010 Dell Computer Corp.
Bus 004 Device 003: ID 0461:4d15 Primax Electronics, Ltd Dell Optical Mouse
Bus 004 Device 002: ID 413c:1003 Dell Computer Corp. Keyboard Hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 065: ID 22b8:433b Motorola PCS
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
得到設備idVendor=22b8 idProduct=433b.
step 2: 設置udev設備權限
sudo vim /etc/udev/rules.d/51-android.rules
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="user"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="user"
# adb protocol on crespo (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="user"
# fastboot protocol on crespo (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="user"
# product phone
SUBSYSTEM=="usb", ATTR{"myphone"}=="22b8", ATTR{idProduct}=="433b", MODE="0600", OWNER="user"
完成後,注意要先拔掉設備再次插入即可訪問如下:
$ adb devices
List of devices attached
0A3BB6731201101B device
運行CTS:
step 1:生成cts zip文件android-cts.zip
make cts
step 2:運行
unzip android-cts.zip
android-cts/tools/startcts
cts_host >