无法签出 Android Hammerhead 内核的 msm 源代码
Posted
技术标签:
【中文标题】无法签出 Android Hammerhead 内核的 msm 源代码【英文标题】:Unable to checkout msm source code for Android Hammerhead kernel 【发布时间】:2014-03-01 16:42:24 【问题描述】:要查看 msm Hammerhead android 内核的源代码,我按照以下步骤操作。
[1] 为 android 下载了 msm 内核源代码。
$ git clone https://android.googlesource.com/kernel/msm.git
[2] 在我的 AOSP 中检查了 Hammerhead 内核的提交消息。
commit 8b392a30f1228e890fa0f7b39598f3b1c73cea94
作者:Android 开源项目 日期:2013年12月5日星期四15:38:00 -0800
快照到 fc777b6d3b2b20ba7270059dd2df284c94844abf
更改 ID:I81ee5ccb10876cbc1413442a7bc256e888c0fcdd
[3]在我下载[1]源代码的msm目录中,
git checkout fc777b6d3b2b20ba7270059dd2df284c94844abf
我收到以下错误
fatal: reference is not a tree: fc777b6d3b2b20ba7270059dd2df284c94844abf
如何获得与内核二进制文件相对应的 msm 内核的正确 SHA1?
【问题讨论】:
【参考方案1】:终于找到了解决办法。 Google 改变了向 AOSP 代码添加新内核二进制文件的方式。 他们没有使用 SHA1 作为提交消息,而是使用快照 ID。
以下是检查正确版本的 msm 代码的步骤。
[1] 在 device/lge/hammerhead-kernel 中找到的现有内核二进制文件上运行以下命令。
bzgrep -a 'Linux version' vmlinux.bz2
[2] 这将为您提供以下输出。在您的情况下可能是不同的 SHA1。
Linux version 3.4.0-gadb2201 (android-build@vpbs1.mtv.corp.google.com) (gcc version 4.7 (GCC) ) #1 SMP PREEMPT Wed Nov 20 14:42:53 PST 2013
Linux version CIFS VFS Client for Linux<7>%s: sess setup type %d
[3] 所需的 SHA1 ID 是 adb2201。注意:跳过字母“g”。
[4] 现在在您的 msm 目录中使用此 SHA1 签出。
git checkout adb2201
现在您在内核源代码中与 AOSP 代码中的内核二进制文件位于同一分支。
【讨论】:
你可以得到相同的信息,我认为,通过运行命令“dd if=zImage-dtb bs=1 skip=$(LC_ALL=C od -Ad -x -w2 zImage-dtb | grep 8b1f | cut -d ' ' -f1 | head -1) | zgrep -a 'Linux version'" 从设备/lge/hammerhead-kernel 内部以上是关于无法签出 Android Hammerhead 内核的 msm 源代码的主要内容,如果未能解决你的问题,请参考以下文章
在从 VCS 签出后应用 API 更改作为重构(最好在 IntelliJ 平台内)