无法签出 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 平台内)

无法从其他项目签出 repos

测试执行因源自 Hammerhead 的请求管道的问题而随机中止(Testcafe e2e 测试)

无法通过 file:// 签出本地 svn 存储库

FileNet P8 无法签出文档

Jenkins无法签出Git存储库 - 主机密钥验证失败