【问题标题】:Is it possible to develop & run a device driver for android phone?是否可以为安卓手机开发和运行设备驱动程序?
【发布时间】:2012-08-03 02:14:45
【问题描述】:

我有一部 Android 手机 Galaxy S3。我想为它开发一个 USB 设备驱动程序。 所以我做了一个简单的驱动程序,用 Galaxy S3 Linux Kernel 编译。但是没有root权限我不能执行'insmod'命令。

是否可以为安卓手机开发设备驱动程序?

此外,驱动程序源代码是一个典型的字符设备驱动程序示例,具有 open()、close()、read()、write() 函数。

错误信息是:

  1. insmod:权限被拒绝
    (没有root权限)

  2. insmod:无效的模块格式
    (通过'rooting'获得root权限。我认为内核因'rooting'而改变。设备驱动程序使用三星发布的原始Galaxy S3 Linux Kernel编译。)

【问题讨论】:

  • 描述你想从司机那里得到什么。放置有关您的简单驱动程序的信息和有关错误的信息。将标签添加到当前主题,说明您编写驱动程序的语言。
  • 也许 Galaxy S3 可用于 Android Host API。
  • 有人告诉我一个引导加载程序解锁。

标签: android c linux-device-driver galaxy


【解决方案1】:

是的,只要您有,就可以为任何安卓手机开发设备驱动程序:
- 访问特定手机的 linux 内核源代码。
- 可以访问设备上的 root shell。

需要访问内核源代码,以便可以针对该特定内核构建内核模块。安装内核模块需要 root shell。

关于安卓手机上的 USB 主机支持,某些手机在内核中内置了 USB 主机支持,并将支持 USB 主机模式。但是需要有proper USB-cables 来连接外围设备。

也是为了克服错误,

insmod: 无效的模块格式

您可能想尝试如下 --force-vermagic 标志:

insmod --force-vermagic <module.ko>

正如您正确猜测的那样,这实际上是由于设备上运行的内核与构建模块的内核之间的版本号不匹配而导致的错误。 更多详情here.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多