【问题标题】:How do you create a signed loadable kernel module for Android?如何为 Android 创建一个签名的可加载内核模块?
【发布时间】:2014-02-16 03:05:04
【问题描述】:

我阅读了 David Howells 所写的内容: https://kernel.googlesource.com/pub/scm/linux/kernel/git/dhowells/linux-modsign/+/modsign-rusty/Documentation/module-signing.txt

听说要开启CONFIG_MODULE_SIG,但没有具体说明如何开启。我也不确定如何使用内核 make 命令。

我无法拼凑足够的信息来生成迷你签名的 LKM。

这里有没有人曾经做过,并且能够指导我签署一个关于签署 helloworld LKM 的极简示例?

【问题讨论】:

    标签: android kernel-module


    【解决方案1】:

    要启用 CONFIG_MODULE_SIG,只需在配置文件 (.config) 中添加以下行:

    CONFIG_MODULE_SIG=y
    

    我没有尝试过,但我认为即使您也可以在 make 命令中使用 CONFIG_MODULE_SIG=y,例如:

    make CONFIG_MODULE_SIG=y
    

    关于如何为android构建LKM,网上有几个教程,比如看看这个: How do you create a loadable kernel module for Android?

    【讨论】:

    • @UrsaMajor 支持从 Linux 3.7 开始的内核签名模块:kernelnewbies.org/Linux_3.7,为 android 签名内核模块与为 linux 签名内核模块相同。你的 linux 内核是什么?
    • @UrsaMajor,看看这个:yatsec.blogspot.com/2011/01/… 还有更多,关于 CONFIG_MODULE_SIG=y 你可以将它添加到 Makefile 或者只是在 make 命令行中,正如我在回答中所说的那样。
    • @UrsaMajor,很高兴你喜欢它。您还有其他问题吗?否则你可以关闭这个问题
    • @UrsaMajor,不客气,当然,在这里问我即将出现的问题/问题。
    • @UrsaMajor,例如可以看到jukie.net/~bart/elfpgp,也可以使用signelf:lkml.indiana.edu/hypermail/linux/kernel/1301.1/04326.html
    【解决方案2】:

    CONFIG_MODULE_SIG=y 仅启用功能,要强制执行它,您还必须将 CONFIG_MODULE_SIG_FORCE=y 放入配置文件中。

    基本上我发现有与此功能相关的三个标志: CONFIG_MODULE_SIG=y #启用该功能 CONFIG_MODULE_SIG_ALL=y #在构建过程中对所有可加载的模块进行签名 CONFIG_MODULE_SIG_FORCE=y #强制执行该功能,以便无法加载未签名的模块。

    【讨论】:

      猜你喜欢
      • 2012-08-20
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 2018-12-24
      • 2013-09-20
      相关资源
      最近更新 更多