当我们在USB配件模式下使用Nexus One时,应关闭手机中的adb模式.或USB附件无法访问.
有人知道adb模式是否已关闭,我们如何调试apk?
我尝试了远程调试.失败了
Google SDK说:
0x2D00保留用于支持附件模式的Android设备. 0x2D01保留用于支持附件模式以及ADB(Android调试桥)协议的设备,该协议公开了带有两个ADB批量端点的第二个接口.如果要在计算机上模拟附件,则可以使用这些端点来调试附件应用程序.通常,除非附件在设备上实现对ADB的直通,否则不要使用此接口.
但是,如何使用PID 2D01激活Nexus 1?我的Nexus One仅适用于2D00
在此处添加参考:
http://developer.android.com/guide/topics/usb/adk.html#determine
解决方法:
我也正在尝试调试连接到Nexus S手机的Android附件模式(ADK)设备.尽管无法调试硬件,但发现将Linux系统用作附件模式设备很有用.这允许使用usbmon和Wireshark来观察基础协议.
如果有人可以在不购买USB协议分析器(www.openvizsla.org)的情况下调试Android到附件的通信,请提供帮助.
Nexus-Computing GmbH的(android.serverbox.ch/?p=262)simplectrl.c(Linux端)和UsbTest(Android端)非常宝贵,其依据如下:
在Ubuntu 11.04下如何捕获USB流量:
1)启用usbmon:
挂载-t debugfs none_debugs / sys / kernel / debug
须藤modprobe usbmon
2)安装Wireshark和帮助程序:
须藤apt-get -y install flex野牛wireshark libusb-dev libusb-1.0-0-dev
apt-get source libusb
3)下载并安装libpcap,(www.tcpdump.org/release/libpcap-1.1.1.tar.gz)
焦油xvf libpcap-1.1.1.tar.gz
光盘libpcap-1.1.1
./配置
使
须藤使安装
4)将您的Android设备连接到Linux系统,并确保已连接:
?/ android-sdk / platform-tools / adb设备
5)使用eclipse(developer.android.com/sdk/installing.html)或您的首选方法,将USBTest App编译并上传到您的Android设备上.您需要安装Google APIs 2.3.3.我已经更新了simplectrl和UsbTest,其中包含一些错误修复,以确保它们开箱即用.它们可以作为附件在LUFA库支持列表(groups.google.com/group/lufa-support/msg/2e6d76c92d9e828a)上找到.
6)确定要捕获的正确USB总线. lsusb将输出如下内容:
总线001设备057:ID 18d1:4e22 Google Inc.
以上表示您的Android设备在Bus 001上.
7)使用root特权启动Wireshark并选择适当的捕获接口:
gksudo Wireshk
8)将Linux系统连接到Android设备并运行simplectrl:
rm ./simplectrl; gcc simplectrl.c -I /usr/include / -o simplectrl -lusb-1.0 -I /usr/include / -I /usr/include / libusb-1.0
9)LUFA库支持列表(groups.google.com/group/lufa-support/msg/8c740dfa58a1d1fd)上有附件,提供了simplectrl-to-USBTest通信的Wireshark捕获会话示例.
如果要流式传输usbmon捕获的数据,可以执行以下操作:
1)列出usbmon接口:sudo ls -laR / sys / kernel / debug / usb / usbmon /
2)使用lsusb列出连接的设备.输出将类似于:
总线001设备057:ID 18d1:4e22 Google Inc.
3)以上表示您的Android设备位于Bus 001上,因此您应该从bus 1捕获数据:
须藤须藤猫/ sys / kernel / debug / usb / usbmon / 1u
*注意总线0捕获所有总线. u定义数据的输出格式.有关更多信息,请阅读(www.kernel.org/doc/Documentation/usb/usbmon.txt).