文章目录
前言
由于国内长城防火墙的存在,没有VPN的话无法按照Google的官方下载方法下载源码(~现在因为疫情的原因就算有VPN也不敢用~),但是我们可以从清华大学的AOSP镜像下载各个版本的AOSP源码用于分析。
一、AOSP是什么?
AOSP是Android Open-Source Project的缩写,它跟Android的关系参见:AOSP (Android Open-Source Project) 跟 Android 是何关系?
二、从清华大学AOSP镜像下载
# 下载全部
repo init -u https://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-s-preview-1
只能参考这个清华的这个帮助文档,如果真按上面操作估计几天都未定下载的下来,所以下面我介绍一种纯粹使用git就能完成下载的,而且可以单独下载某个仓库,或者批量下载,或者全部下载所有仓库
1. 首先下载manifest仓库
什么是manifest仓库?就是使用repo init初始化后.repo目录里面的manifests git仓,这个仓库里面有各个分支的仓库清单,我们下载这个主要是为了checkout出所需的分支对应的仓库清单,然后使用清单去批量下载。
$ git clone https://mirrors.ustc.edu.cn/aosp/platform/manifest.git
2. 查看manifest仓库包含哪些分支
$ cd manifest
$ git branch -a|grep android-
remotes/origin/android-10.0.0_r1
remotes/origin/android-10.0.0_r10
remotes/origin/android-10.0.0_r11
remotes/origin/android-10.0.0_r12
remotes/origin/android-10.0.0_r13
remotes/origin/android-11.0.0_r1
remotes/origin/android-11.0.0_r10
remotes/origin/android-11.0.0_r11
remotes/origin/android-11.0.0_r12
remotes/origin/android-11.0.0_r13
remotes/origin/android-11.0.0_r14
remotes/origin/android-11.0.0_r15
remotes/origin/android-11.0.0_r16
remotes/origin/android-11.0.0_r17
remotes/origin/android-11.0.0_r18
remotes/origin/android-11.0.0_r19
remotes/origin/android-11.0.0_r2
remotes/origin/android-11.0.0_r20
remotes/origin/android-11.0.0_r21
remotes/origin/android-11.0.0_r25
remotes/origin/android-11.0.0_r3
3. checkout所需的分支清单文件
截止2020/12/11当前最新的分支是android-11.0.0_r25,下面以下载这个分支的代码为例进行介绍。
$ git checkout -b android-11.0.0_r25 remotes/origin/android-11.0.0_r25
Branch 'android-11.0.0_r25' set up to track remote branch 'android-11.0.0_r25' from 'origin'.
Switched to a new branch 'android-11.0.0_r25'
$ git branch
* android-11.0.0_r25
master
$ ls
GLOBAL-PREUPLOAD.cfg default.xml # default.xml就是我们所需的仓库清单文件
$ vi default.xml
<manifest>
3
4 <remote name="aosp"
5 fetch=".."
6 review="https://android-review.googlesource.com/" />
7 <def