windows环境下repo下载Android源代码

官方推荐Android源码的下载方式是Linux系统上是通过Repo来完成的。Win环境下Repo的使用又依赖Git、Python。源码的下载又涉及到伟大的长城防火墙。所以这篇文章的核心有三个:安装Repo依赖环境、让Repo在Win上面跑起来、使用国内源避开墙。

如果是使用Win10上面用Linux子系统下载,可以参考微软官方的教程(不过依然还是会出问题)。如果直接在Win环境下面,可以参考本教程。

以下是Win下面下载Aosp源代码的步奏。


一、安装git(版本控制工具)https://git-scm.com/download/win 点击下载

安装后

将git添加到环境变量中 C:\Program Files\Git\cmd;
将MinGW添加到环境变量中 C:\Program Files\Git\bin;

二、安装pyton(pyton编辑工具)https://www.python.org/downlo… 点击下载

版本选择2.7+,否则会报异常ypeError: startswith first arg must be bytes or a tuple of bytes, not str

安装后

将Python添加到环境变量中 C:\Program Files\Python27;

三、选择合适的源

所谓的源就是链接。由于官方的源基本处于连接不上的状态,在此我们选择了清华镜像站的源。下面涉及到源的地方全部默认使用清华镜像站的源

Android官方:https://storage.googleapis.co…
清华大学镜像站:https://mirrors.tuna.tsinghua…

四、安装Repo

4.1 容易走歪路的Repo

官方提供Repo在Windows跑起来上会报错,我们不建议大家使用官方的Repo。但是我们还是先教大家几种下载Repo的方式,一心只关心源码的同学可以跳过这节

4.1.1 curl url > ~/bin/repo

 

这种方式我们不推荐,因为下载下的只有一个repo文件,repo init肯定会失败,而且还会把 .repo文件夹 删除掉。完全是浪费时间。
当然,这种方式在Linux环境中还是有好处的,将Repo添加到了环境变量中,以后敲命令很方便的。

4.1.2 git clone url

这种方式可以下载完整的Repo文件

 

4.1.3 浏览器

在Windows上最简单的下载方式,把源拷贝到浏览器地址栏中就行。
https://mirrors.tuna.tsinghua…

这种方式和git clone方式得到的文件是一样的

4.2 下载推荐的Repo客户端

如果你下载了原生的Repo,你就会发现,在Win上面运行会报错,还需要修改源。如果你熟悉Python,可以自己调试一下。如果不熟悉,可以使用我们推荐的这个 https://github.com/esrlabs/gi…
这是一个德国公司修改过的客户端,适配了Windows 点此下载。之后我们稍微调整下就可以了。

下载后可以解压到源码所在的文件夹。比如我的放在了 “E:\LocalProject\Oreo\git-repo-stable”

五、源码下载

在源码所在文件夹
右键
Git Bash Here
输入以下命令

 

android-8.1.0_r7是版本号,更多的版本号可以查看列表

repo init 之后,源码文件夹下会多一个.repo的文件夹。打开E:\Preo\.repo\repo\project.py。修改279行def __linkIt(self, relSrc, absDest)方法。如果不修改会报WindowsError: [Error 5]的错误。

 

然后再打开E:\Preo\.repo\manifest.xml,将以下三个项目注释掉,不然会报cannot initialize work tree”。

 

然后敲入最后一句命令就大功告成了!

 

repo sync后面还可以加这些参数

 

接下来漫长的等待,大概睡一觉就下载完了。睡不着的小伙伴可以看看下面的两个教程,增强记忆。

Android提供的教程:https://source.android.google…
清华大学镜像站提供的教程:https://mirrors.tuna.tsinghua…

六、用下载软件下载Android源码

好吧,有些同学实在不想这么折腾,想简单快捷,也不是没有办法的。

点此查看更多代码[Android Sourcecode]

再来一个Android历史以来的代码,并且会一直更新,目前是45G。
下载 https://mirrors.tuna.tsinghua…,下载完成后记得根据 checksum.txt 的内容校验一下。

由于所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以我们只保留了 .repo 目录,下载后解压 再 repo sync 一遍即可得到完整的目录。使用方法如下:

 

此后,每次只需运行 repo sync 即可保持同步。 我们强烈建议您保持每天同步,并尽量选择凌晨等低峰时间

七、遗憾的事情

按照上面的教程我们就得到了想要的代码,发个截图给大家参考一下

到这里应该编译源代码了,但是我们初始化环境就会发现报错“Only bash is supported”

 

一直以为Git Bash就是Bash,到这里才发现其实不一样。所以下载了这么一堆,我们其实并没法编译,只能看看。这下真的只是在外边蹭蹭不进去了。所以想和Android深入交流还是使用Linux吧。

FAQ

1.出现 curl: (22) The requested URL returned error: 404 Not Found Server does not provide clone.bundle; ignoring. 怎么办?
无视即可。

2.有的同学在执行repo init命令的时候可能会出现这样的提示

 

使用git要设置账号

 

3.有些网站的源为什么是git://android.git.kernel.org/platform/manifest.git
android.git.kernel.org是google以前用来下载android的网址,现在不用了。据说是服务器被黑了。

 

微信扫码打赏

作者: RESSRC

个人资源站

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据