【问题标题】:USB Dongle Recognition in Android - BeagleboneAndroid 中的 USB 加密狗识别 - Beaglebone
【发布时间】:2014-12-23 07:40:38
【问题描述】:

问题:

Beaglebone 中的 Android JellyBean4.1.2 无法识别部分华为 USB 加密狗。

详细说明:

我正在使用在 Android JellyBean4.1.2 上运行的 BeagleBone。

Huawei - E1731 [Locked] , Huawei - E303D [Locked] 在这个平台上工作正常

Huawei E303F , Huawei E303F (Both Factory Unlocked) 被操作系统识别 (未生成通讯文件)

自行解决

  1. 使用 AT 命令将加密狗的模式更改为仅调制解调器模式

  1. 将供应商 ID 和产品 ID 添加到 init.devicename.sh(强制内核识别 USB 加密狗)

  1. 使用 VID 和 PID 更改 USB 模式切换文件

现在提到的 USB 加密狗工作正常。

  • 但我想找到根本原因并且必须解决它。

  • 是否可以通过从源代码构建 Android 操作系统来修复它?如果是,如何?哪些文件需要修改?

  • 为什么有些加密狗在没有上述解决方法的情况下直接识别?

更新

正如 skoperst 所说,我在kernel_dir/drivers/usb/serial/option.c 中检查了option.c

  • 有没有解决办法other than hard-coding Device VID & PID

  • 我需要一些更通用的解决方案,以促进 Plug & Play 机制。

  • Plug & Play works in linux怎么样。如果linux kernal可以,Android也可以吗?

感谢您提出的宝贵建议。非常感谢。

【问题讨论】:

    标签: android c linux beagleboard usb-modeswitch


    【解决方案1】:

    您的问题在于您使用的设备上运行的内核,而不是 Android 操作系统。

    支持哪个 USB 设备(即 vid/pid 的哪个组合)取决于内核中定义了哪些集合,它是硬编码的。

    具体来说,您需要为您的特定 VID 和 PID 定义 USB 串行设备(AKA ttyUSB),它们通常位于:kernel_dir/drivers/usb/serial/option.c 对于您希望设备识别的任何其他驱动程序也是如此。

    【讨论】:

    • 感谢您的回答。我会尝试并告诉您。是否有任何其他没有硬编码 VI​​D 和 PID 的解决方案?
    猜你喜欢
    • 1970-01-01
    • 2018-01-20
    • 2019-02-25
    • 2016-10-16
    • 1970-01-01
    • 2021-01-19
    • 2017-03-26
    • 2014-12-16
    • 1970-01-01
    相关资源
    最近更新 更多