当前位置: 首页 > 知识库问答 >
问题:

有可能发展吗

孟栋
2023-03-14

我有一个银河S3,这是一部Android手机。我想为它开发一个USB设备驱动程序。所以我做了一个简单的驱动程序,它是用银河S3 Linux内核编译的。但是我不能在没有root权限的情况下执行“insmod”命令。

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

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

和错误消息是:

>

  • insmod: 权限被拒绝
    (没有根权限 )

    insmod:无效的模块格式< br >(通过“root”拥有根权限。我觉得内核是因为‘生根’才被改的。以及用三星发布的Galaxy S3 Linux内核编译的设备驱动程序。)

  • 共有1个答案

    杭胜
    2023-03-14

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

    需要访问内核源代码,以便可以针对该特定内核构建内核模块。需要一个根外壳来修改内核模块。

    关于android手机上的USB主机支持,某些手机的内核内置了USB主机支持并将支持USB主机模式。但是需要有合适的USB电缆来连接外围设备。

    也为了克服错误,

    INSMOD:无效的模块格式

    您可能想尝试--force-verMagic标志,如下所示:

    insmod --force-vermagic <module.ko>
    

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

     类似资料:
    • Nietschze夸大了他所说的: 杀不死我们的,只会让我们更强大。 你最大的责任是对你的团队负责。你应该非常了解他们中的每个人。你应该激励你的团队,但不要让他们过劳。你通常应该告诉他们他们被激励的方式。如果他们觉得划算,他们会被很好的激励。每个工程中,或者在每个其他的工程里,试着同时用他们建议的以及你认为对他们好的方式去激励他们。激励他们的方法不是给他们更多工作,而是给他们一个新的技能或在团队里

    • 我有一份Flink的工作,我尝试在后端类型RockDB中使用键控流状态函数(MapState), MyRichMapFunction是一个有状态函数,它扩展了RichMapFunction,RichMapFunction有以下代码, 将来,我想重新缩放并行度(从2到4),所以我的问题是,如何实现可重新缩放的键控状态,以便在更改并行度后,我可以将相应的缓存键控数据获取到其相应的任务槽中。我试图探索这

    • 我的MongoDB集合中有一个深度嵌套的集合。 当我运行以下查询时: 我在这里得到了这个嵌套结果: 现在,这就是我想要的: 或者这个: 或者其他类似的东西…这可能吗?

    • 我在使用 blob 触发器的消费计划上创建了一个 Azure 函数。然后,我向 Blob 添加大量文件,并且我希望每次将文件添加到触发器时都会调用 Azure 函数。 因为我使用Azure函数和消耗计划,所以我希望不存在可伸缩性问题,对吗?错。 我可以轻松地将文件添加到blob中,速度比Azure函数处理它们的速度快。一百个用户可以添加到blob中,但在任何时候似乎只有一个Azure函数的实例在工

    • Cocos Creator 3D 支持各个扩展间互相提供数据(contributions)。 我们在编写一个扩展的时候,可以查询编辑器内已有功能是否提供了对外接收 contributions 的功能。如果对应功能提供该功能,则能够在编写扩展的时候使用这些功能。 contributions 数据定义 contributions 功能,统一在 package.json 里的 contributions

    • 在Vuetify中可扩展表的基本代码笔中,我注意到当表中两个条目的名称相同时,单击row to expand也会扩展具有相同名称条目的另一行。有没有办法避免这种情况? 以下是重新创建的问题:https://codepen.io/entropy283/pen/eyjdmlp?editable=true&editors=101%3dhttps%3a%2f%2fvuetifyjs.com%2fen%2f