gpt4 book ai didi

android - 在 Nexus one Android USB 配件模式下调试

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:19 26 4
gpt4 key购买 nike

当我们在Usb Accessory Mode下使用Nexus one时,我们应该关闭手机中的adb模式。或 USB 配件无法访问。

有谁知道如果关闭了 adb 模式,我们如何调试 apk?我试过远程调试。失败了。

Google SDK 说: 0x2D00 为支持附件模式的 Android 设备保留。 0x2D01 是为支持附件模式和 ADB(Android 调试桥)协议(protocol)的设备保留的,它为 ADB 公开了带有两个批量端点的第二个接口(interface)。如果您在计算机上模拟附件,则可以使用这些端点来调试附件应用程序。通常,除非您的配件正在设备上实现到 ADB 的直通,否则不要使用此接口(interface)。

但是我们如何激活 PID 为 2D01 的 Nexus one?我的 Nexus one 仅适用于 2D00

在此处添加引用: http://developer.android.com/guide/topics/usb/adk.html#determine

最佳答案

我也在尝试调试连接到 Nexus S 手机的 Android 配件模式 (ADK) 设备。虽然我无法调试我的硬件,但我发现使用 Linux 系统作为附件模式设备很有用。这允许使用 usbmonWireshark观察底层协议(protocol)。

如果有人有办法在不购买 USB 协议(protocol)分析器(www.openvizsla.org)的情况下调试 Android 到配件的通信,请提供帮助。

Nexus-Computing GmbH 的 (android.serverbox.ch/?p=262) simplectrl.c(Linux 端)和 UsbTest(Android 端)非常宝贵,是以下内容的基础:

在 Ubuntu 11.04 下如何捕获 USB 流量:

1) 启用usbmon:

mount -t debugfs none_debugs/sys/kernel/debug

sudo modprobe usbmon

2) 安装 Wireshark 和辅助程序:

sudo apt-get -y install flex bison wireshark libusb-dev libusb-1.0-0-dev

apt-get source libusb

3) 下载并安装 libpcap,(www.tcpdump.org/release/libpcap-1.1.1.tar.gz)

tar xvf libpcap-1.1.1.tar.gz

cd libpcap-1.1.1

./configure

制作

sudo make install

4) 将您的 Android 设备连接到您的 Linux 系统并确保它已连接:

?/android-sdk/platform-tools/adb devices

5) 使用 eclipse (developer.android.com/sdk/installing.html) 或您喜欢的方法编译 USBTest 应用并将其上传到您的 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 设备在总线 001 上。

7)以root权限启动Wireshark,选择合适的抓包接口(interface):

gksudo wireshark

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) simplectrl-to-USBTest 通信的示例 Wireshark 捕获 session 可作为附件在 LUFA 库支持列表 (groups.google.com/group/lufa-support/msg/8c740dfa58a1d1fd ).


如果你想流式传输 usbmon 捕获的数据,你可以执行以下操作:

1) 列出 usbmon 接口(interface):sudo ls -laR/sys/kernel/debug/usb/usbmon/

2) 使用lsusb 列出连接的设备。输出将类似于:

总线 001 设备 057:ID 18d1:4e22 Google Inc.

3) 以上意味着您的 Android 设备在总线 001 上,因此您应该从总线 1 捕获数据:

sudo sudo cat/sys/kernel/debug/usb/usbmon/1u

*注意总线 0 捕获所有总线。 u 定义了数据的输出格式。有关详细信息,请阅读 (www.kernel.org/doc/Documentation/usb/usbmon.txt)。

关于android - 在 Nexus one Android USB 配件模式下调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6895604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com