android - android内核和vanilla linux内核之间的补丁差异

标签 android linux git github linux-kernel

我一直在尝试做的是将 android 内核中的差异修补或 merge 到特定板的 linux 内核中。不过,我在成功 merge 2 时遇到了麻烦。我尝试使用这些命令 merge 内核以制作补丁文件: 第 1:我试图找到 vanilla linux 内核与 android 树 merge 的时间点。

 git log --pretty=oneline --format="%Cgreen%h %Creset%s" \
            --grep="Linux 3." -n 20 

然后我制作补丁:

git diff c16fa4f HEAD > 3.4-to-android.patch

补丁很大~200MB,但是当我应用补丁时,我得到一长串错误。我正在关注这个网站:http://blogs.arm.com/software-enablement/498-from-zero-to-boot-porting-android-to-your-arm-platform/

非常感谢您提供的任何帮助。 (只是想学习一些新东西。:-))

最佳答案

Android 内核和 Vanilla 内核之间有很多不同之处:

http://www.linaro.org/blog/android-blog/androidization-of-linux-kernel/

CONFIG_ASHMEM=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_LOGGER=y
CONFIG_ANDROID_RAM_CONSOLE=y
CONFIG_ANDROID_LOW_MEMORY_KILLER=y

为了克服很多 IPC 问题,Android 没有普通 Linux 中的任何普通 IPC 机制(因此内核没有实现它):共享内存、命名管道、信号量等。所有这些都可以仅由 Android BINDER 完成。

这是显示移植逻辑的另一个链接:

http://community.arm.com/groups/android-community/blog/2013/09/18/from-zero-to-boot-porting-android-to-your-arm-platform

还有一项工作是在 vanilla 内核(如 Ubuntu/Fedora 等)中构建 Android 兼容层,以便您可以在 PC 上使用 Android 应用程序:

https://lkml.org/lkml/2013/12/4/469

关于android - android内核和vanilla linux内核之间的补丁差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10670498/

相关文章:

android - 有没有办法以厘米或英寸为单位确定 android 物理屏幕高度?

android - Camera 2 API 可同时预览、记录和提取预览帧以进行 Firebase 人脸检测处理

linux - fs.read 阻止自定义信号处理程序中的 process.exit

regex - sed 模式似乎不匹配/替换

c - 发送文件套接字C linux

python - 在 GitPython 中迭代提交 b/w 2 指定的提交

git - 为什么在任何地方都没有 git credential-osxkeychain 的文档?

android - 如何从 gradle 插件将文件夹添加到 android 项目源集中

git - TFS2013 中使用 Git 进行 Kerberos 身份验证

java - Android Studio 无法解析在 IDE 中用 Kotlin (.kt) 编写的类,但可以正常编译