Android源码下载都是老生常谈了,这个纯碎是纪录一下。
下载repo工具
repo其实就是一个能够下载多个git仓库的工具啦,是python写的一个脚本。为什么不直接用git呢?因为Android源码是由很多个仓库组成的,你不可能一个个去下吧?所以就诞生了repo工具,主要是解释一个xml文件,去下载仓库到特定目录。
mkdir ~/bin //放置repo的目录
PATH=~/bin:$PATH //将路径设置到环境变量中去
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo //下载repo工具
chmod a+x ~/bin/repo //改变工具权限,所有人都可以执行
repo解释xml文件
上面说到repo主要是用来解释xml文件的,那这个xml文件在哪里呢?我们把他下载下来。
下载路径就是这个
https://android.googlesource.com/platform/manifest/
哟,不就是一个git仓库吗? 哈哈,其实这个xml也是在一个git仓库里面。
你可以使用标准的git命令下载
git clone https://android.googlesource.com/platform/manifest
当然repo工具也可以下载这个仓库,-u是指定下载路径,-b是指定分支,下面命令指定了android-6.0.1_r1分支。
repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r1
那这个仓库有些啥呀?,看看下图,其实就只有一个xml文件,囧。
看看xml文件都写了些啥玩意,可以看到里面有很多project,每个project就是一个仓库。repo会下载这些仓库。而仓库的分支就是由xml中的revision指定啦!下面的代码就是下载android-7.1.2_r11分支的代码啦。
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="aosp"
fetch=".."
review="https://android-review.googlesource.com/" />
<default revision="refs/tags/android-7.1.2_r11"
remote="aosp"
sync-j="4" />
<project path="build" name="platform/build" groups="pdk" >
<copyfile src="core/root.mk" dest="Makefile" />
</project>
<project path="build/blueprint" name="platform/build/blueprint" groups="pdk,tradefed" />
<project path="build/kati" name="platform/build/kati" groups="pdk,tradefed" />
.....
但由于国内google被墙原因,一般都下载不了~~
所以,只能找国内的镜像下载,清华有个镜像,真良心。
但我这边执行这个,就因为网络原因停了。
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-6.0.1_r1
原来是下载xml时,还会去下载repo的一些python脚本。下面这些
但repo的脚本地址是放在google服务器的。所以要修改repo的服务器地址。编辑 ~/bin/repo文件,把 REPO_URL 一行替换成下面的:
REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'
参考:http://m.blog.csdn.net/article/details?id=51348647
这样我们就能跑去清华那里下载罗。
一些git仓库地址
google的都放在这里
https://android.googlesource.com
清华的放在这里,丑哭了~
http://mirrors.ustc.edu.cn/aosp/platform/
下载
最后repo sync 就可以下载了!
关于git下载
有两种方式,效果是一样的!
git clone git://github.com/wenfengtou/BedWatching
git clone https://github.com/wenfengtou/BedWatching.git
总结
1.下载repo工具
2.repo init 可以下载一个xml文件和部分repo辅助工具,xml里面纪录着要下载的仓库和分支。
3.repo sync 完成下载。