如何下载特定版本的Android源代码(例如Android 2.2)

如何下载特定版本的Android源代码(例如Android 2.2),android,git,android-2.2-froyo,Android,Git,Android 2.2 Froyo,我以前从未使用过git,但我想下载android源代码,因为我在2.2 emulator中遇到了崩溃,我想看看它在android源代码中崩溃的确切位置(这样我可以提交更好的错误报告) 编辑一个恰当的答案应该包括使用git下载特定存储库的说明。我在windows上,但已安装Msysgit。您检查页面了吗 在执行repo init时,必须指定manifest,如果需要特定的分支,则必须在manifest之后添加-b eclair。我不完全确定它是否正确,但我已经完成了以下操作(在msysgit中):

我以前从未使用过git,但我想下载android源代码,因为我在2.2 emulator中遇到了崩溃,我想看看它在android源代码中崩溃的确切位置(这样我可以提交更好的错误报告)

编辑一个恰当的答案应该包括使用git下载特定存储库的说明。我在windows上,但已安装Msysgit。

您检查页面了吗


在执行repo init时,必须指定manifest,如果需要特定的分支,则必须在manifest之后添加-b eclair

我不完全确定它是否正确,但我已经完成了以下操作(在msysgit中):

git克隆git://android.git.kernel.org/platform/frameworks/base.git;h=参考/头部/froyo释放


编辑:我现在注意到有两个标签-froyo和froyo release。我不确定该使用哪一个,所以我将两者都下载。有人能告诉我区别是什么吗?

好吧,正如您所发现的,Android代码并不是只存储在一个git存储库中。相反,他们使用名为repo的python脚本跨多个存储库进行协调。拉巴斯有谷歌指令的链接

我已经使用Cygwin在Windows下运行了该脚本。记住将“-b froyo”添加到repo init命令中


(我不知道标签之间的区别。repo脚本掩盖了大部分内容;它只处理分支名称。)

froyo分支是一个工作开发分支


如果您想要一个稳定的版本,请获取android-2.2.2_r1

,您可以使用git找到可用的分支:

mkdir /tmp/zug
pushd /tmp/zug
git clone https://android.googlesource.com/platform/manifest.git
cd manifest
git branch -a | sed -n '/^  r/s,.*/,,p'|sort -u|column
popd
rm -rf /tmp/zug
产生类似这样的东西:

android-1.6_r1          android-2.1_r1          android-2.2.3_r2        android-2.3.4_r0.9      froyo
android-1.6_r1.1        android-2.1_r2          android-2.2_r1          android-2.3.4_r1        gingerbread
android-1.6_r1.2        android-2.1_r2.1p       android-2.2_r1.1        android-2.3.5_r1        gingerbread-release
android-1.6_r1.3        android-2.1_r2.1p2      android-2.2_r1.2        android-2.3.6_r0.9      ics-mr0
android-1.6_r1.4        android-2.1_r2.1s       android-2.2_r1.3        android-2.3.6_r1        master
android-1.6_r1.5        android-2.2.1_r1        android-2.3.1_r1        android-2.3.7_r1        tradefed
android-1.6_r2          android-2.2.1_r2        android-2.3.2_r1        android-2.3_r1
android-2.0.1_r1        android-2.2.2_r1        android-2.3.3_r1        android-4.0.1_r1
android-2.0_r1          android-2.2.3_r1        android-2.3.3_r1.1      android-4.0.1_r1.2

很明显,他没有看到gitlsmote命令,你不需要克隆。