我一直在阅读,可以将补丁应用到Android内核中,为其提供更多功能。
以下是一个例子:https://patchwork.kernel.org/patch/2254211/
但我的问题是,我究竟如何从头开发补丁?我对编写补丁的语言以及开发内核补丁所需的文档感到困惑。我已经在XDA开发人员那里问了这个,但似乎没有人知道这就是我在这里问的原因。
答案 0 :(得分:4)
首先,您将需要要修补的内核源代码,如下所述:
https://source.android.com/source/building-kernels.html
正如您在链接中看到的,这些文件是用C语言编写的。 获得源代码后,您可以更改这些文件中的某些行以创建自己的补丁 在上面的链接中也解释了如何构建已更改的内核。 您还可以添加新文件以获得完整的新功能或功能。
要创建.patch文件,您必须执行类似
的操作diff -Naur old_file.c changed_old_file.c > patch.txt
或者你可以使用eclipse或git这样做,如下所示:
https://docs.moodle.org/dev/How_to_create_a_patch
创建补丁并应用它们的另一个有用工具是quilt。如何使用它你可以在这里阅读:
https://wiki.debian.org/UsingQuilt
文档在包含注释的代码中完成。 根据开发人员的不同,将会有更多或更少的注释来解释代码中发生的情况。 其他文档可在以下网址找到:
https://www.kernel.org/doc/Documentation/
我认为Linux内核编码风格也用于Android内核开发。因此,您应该坚持使用内核其余部分的编码样式,以便维护者确认您的补丁。
https://www.kernel.org/doc/Documentation/CodingStyle
<强> [编辑]:强> 如果您想参与社区,最好订阅您最感兴趣的内核部分的邮件列表。您还可以了解需要修补的内容。 谷歌小组可能是一个讨论如何继续问题的好地方。
https://source.android.com/source/community/index.html
你也可以在这里获得android的源代码:
https://android.googlesource.com/?format=HTML
我留下了什么吗?