【问题标题】:Some problem about Android Driver DevelopmentAndroid驱动开发的一些问题
【发布时间】:2011-05-26 19:11:26
【问题描述】:

我对这个领域很陌生。其实我只是开始调查可能性。

我的问题的简单版本是,需要什么来开发驱动程序(比如 USBSerial),将其部署到 Android 手机(商业产品,非定制手机)并编写应用程序以使用它?这甚至可能吗?

这里有一个更长的版本。

我已经有Windows驱动开发的经验和一些Linux驱动的知识。我也做了一些研究。我只知道NDK。我不知道的是:

  1. 我发现的所有参考资料似乎都暗示驱动程序开发是在设计设备时完成的,而不是为了破解现有设备。是这样吗?

  2. 如果可能,如何部署?驱动是不是必须和内核集成到ROM里面刷机?

  3. 如果设备不支持 USB 主机,是因为硬件设计还是软件中缺少某些东西或两者兼而有之?

很抱歉问题列表太长。任何有关该领域的建议都会有所帮助,因为我还有其他计划涉及从头开始构建 Android 设备。感谢您的宝贵时间。

顺便说一句,ADK 对我的应用程序来说太贵了(至少现在是这样),所以它不适合。

【问题讨论】:

    标签: android driver


    【解决方案1】:

    Honeycomb 可能会为 USB 主机和使用它的一些功能提供标准化支持,并且许多蜂窝设备似乎都有该端口,但我不知道 Honeycomb 是否有一个标准说它应该随 USBserial上游 linux 内核中可用的驱动程序。

    对于所有早期版本,任何可能性都将取决于设备并且需要 root 访问权限。

    ADK 可用于最新的 Android 版本,但正如您所指出的,它是一个非常不理想的解决方案,因为它将所有复杂性都放在了附件中,并且还需要提供总线电源,这两者都是从一般情况。

    【讨论】:

    • 谢谢。由于该项目几乎只能在早期版本的 Android 设备上运行,因此可能不会考虑任何最新版本。:(
    • 虽然我想知道在哪里可以找到有关如何在早期版本(不早于 2.1)中执行此操作的任何参考。
    • Android 早期版本上的 USB 主机可能性是特定于设备的,请搜索设备名称和 USB 主机。对于具有自己的 USB 主机功能的外部设备,在发布最新版本的特殊 ADK 协议之前,人们开始将 ADB 与未修改的 android 设备交谈; AFAIK 与 ADK 协议相比的“缺点”是用户必须启用 USB 调试,优点是大多数现有设备应该能够支持它。
    【解决方案2】:

    1., 2. 您不能在无根的股票 ROM 中注入自定义驱动程序。要注入驱动程序,您的用户需要 root 设备或完全刷新自定义 ROM。

    3.- 这取决于设备。有些可以用定制软件做 USB 主机,有些不能。

    查看Android Open Accessory Development Kit。有了这个,您可以构建一个带有串行端口的板,通过 Android 附件协议与现有的 Android 2.3.4+ 和 Android 3.1+ 设备通信。

    【讨论】:

    • 实际上,您几乎可以将一个驱动程序(或者如果需要)一个新内核注入到一个普通的 ROM 中,而无需重新编译任何其他内容,因为内核和用户空间之间有一条相当清晰和记录在案的分界线。但至少您需要 root、内核头文件,如果现有内核不支持模块,则需要刷新新内核的能力。
    • 感谢您的回复。它会有所帮助,我会从这些方向收集信息。
    • @Chris 谢谢。我对这些可能性非常感兴趣。这可能是我希望的结果,因为 root 对我的设备来说不是问题。任何进一步的信息或参考都会很棒。
    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多