是否有可能发展和为Android手机运行设备驱动程序?

时间:2012-07-24 05:09:27

标签: android c linux-device-driver galaxy

我有一个Android手机Galaxy S3。我想为它开发一个USB设备驱动程序。 所以我制作了一个用Galaxy S3 Linux Kernel编译的简单驱动程序。但是我无法在没有root权限的情况下执行'insmod'命令。

是否有可能为Android手机开发设备驱动程序?

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

错误信息是:

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

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

1 个答案:

答案 0 :(得分:2)

是的,只要您拥有以下内容,就可以为任何Android手机开发设备驱动程序:
- 访问该特定手机的Linux内核源 - 可以访问设备上的root shell。

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

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

还要克服错误,

  

insmod:模块格式无效

您可能需要尝试 - force-vermagic 标志,如下所示:

insmod --force-vermagic <module.ko>

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