Android源码获取

☞ Github ☜  ☞ Gitee ☜

配置

创建目录

$ mkdir android_13
$ cd android_13

配置代码源

方式一:Android官方镜像(已配置科学上网环境)

$ wing -space add aosp https://android.googlesource.com/ platform/manifest.git

方式二:清华开源镜像

$ wing -space add aosp https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/ platform/manifest.git

查看配置

$ wing -space

[aosp]
host: https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/
manifest: project/manifest.git

获取代码

初始化

这里以获取分支android-cts-13.0_r7为例,如果不知道,可以先随便写一个,初始化完成后,到.wing/manifests目录下通过git命令查看分支。

$ wing init aosp android-cts-13.0_r7 default.xml

获取的.wing/manifes目录为:

$ wing -tree 1
├── .git
├── GLOBAL-PREUPLOAD.cfg
└── default.xml

default.xml即为各模块git库的索引,如:

你可以根据需要进行删减,去除不需要的模块,节省同步时间。

<?xml version="1.0"?>
<manifest>
<remote name="aosp" fetch=".." review="https://android-review.googlesource.com/"/>
<default remote="aosp" sync-j="4" revision="refs/tags/android-cts-9.0_r20"/>
<project path="build/make" name="platform/build" groups="pdk">
<copyfile src="core/root.mk" dest="Makefile"/>
<linkfile src="CleanSpec.mk" dest="build/CleanSpec.mk"/>
<linkfile src="buildspec.mk.default" dest="build/buildspec.mk.default"/>
<linkfile src="core" dest="build/core"/>
<linkfile src="envsetup.sh" dest="build/envsetup.sh"/>
<linkfile src="target" dest="build/target"/>
<linkfile src="tools" dest="build/tools"/>
</project>
<project path="build/blueprint" name="platform/build/blueprint" groups="pdk,tradefed"/>
<project path="build/kati" name="platform/build/kati" groups="pdk,tradefed"/>
<project path="build/soong" name="platform/build/soong" groups="pdk,tradefed">
<linkfile src="root.bp" dest="Android.bp"/>
<linkfile src="bootstrap.bash" dest="bootstrap.bash"/>
</project>
<project path="art" name="platform/art" groups="pdk"/>
<project path="bionic" name="platform/bionic" groups="pdk"/>

<!-- ...... -->

</manifest>

同步代码

由于代码量比较大,中间可能出现同步失败,这个时候可以执行以下命令继续同步代码:

# 安全同步,同步失败不做处理,当前分支和索引不一致不同步
$ wing sync