Android-源码下载

1,804 阅读4分钟

01 前言

本篇将记录如何使用Repo 工具在Linux环境下,下载Android AOSP的源码;
这里是参阅官方文档进行实践的一篇记录文档,建议大家学习还是多看官方文档。
官方文档,请看这里

02 课前知识

什么是Repo ,和 git的区别?

Repo其实是一个Pyhton脚本,是Google编写来调用Git操作的一个脚本;它可以管理多个Git仓库,比如源码中有很多APP模块,每一个APP模块目录就是一个git仓库,Repo可以管理整个源码(包含多个Git仓库),但Git只能管理自己的那个仓库。 什么是AOSP源码? "Android Open-Source Project"的缩写。中文意为"Android 开放源代码项目"。简而言之:就是Android系统的开源代码,各个厂商,比如:华为,小米,OPPO等就是基于此版本进行硬件适配和ROM定制的。而每个开源的AOSP版本都是支持部分机型的,也就是说编出来的镜像可以直接跑在这些机型上,而不需要进行额外的适配。

点击这里,查看不同版本AOSP支持的机型

03 下载源码

Step 1:安装Repo

工欲善其事,必先利其器; 我们需要通过Repo工具来下载源码,首先安装Repo工具

  1. 确保主目录下有一个 bin/ 目录,并且该目录包含在路径中:
mkdir ~/bin
PATH=~/bin:$PATH
  1. 下载 Repo 工具,并确保它可执行:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

注意:一般情况下,https://storage.googleapis.com/git-repo-downloads/repo我们不能直接访问,所以需要通过镜像来下载

  1. (镜像)下载 Repo 工具,并确保它可执行:
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo  > ~/bin/repo #下载repo脚本
chmod a+x ~/bin/repo #添加权限

对于 1.21 版,Repo 的 SHA-1 校验和为 b8bd1804f432ecf1bab730949c82b93b0fc5fede
对于 1.22 版,Repo 的 SHA-1 校验和为 da0514e484f74648a890c0467d61ca415379f791
对于 1.23 版,Repo 的 SHA-256 校验和为 e147f0392686c40cfd7d5e6f332c6ee74c4eab4d24e2694b3b0a0c037bf51dc5

Step 2: Repo初始化客户端

安装好Repo之后,我们进行客户端初始化,

  1. 创建一个目录,比如:\AOSP作为源码根目录
mkdir AOSP
cd AOSP
  1. 配置姓名和邮箱
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
  1. 运行 repo init 以获取最新版本的 Repo 及其最近的所有错误更正内容
repo init -u https://android.googlesource.com/platform/manifest

这种方式默认是checkout主分支(master)的代码,如果要制定某个分支,请在最后添加分支名

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

点击这里,可以看到所有分支列表

注意:正常情况下,第3点是执行不成功的,因为https://android.googlesource.com在不翻墙的情况下,我们无法访问,所以我们通过国内镜像下载

3.(镜像方式) 运行 repo init 以获取最新版本的 Repo 及其最近的所有错误更正内容

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest

编辑文件~bin/repo,进行以下修改

将:REPO_URL = 'https://gerrit.googlesource.com/git-repo' 
修改为: REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'

备注:整个步骤2可以合并成一个命令

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.1.0_r11 --repo-url=https://gerrit-googlesource.lug.ustc.edu.cn/git-repo

Step 3: Repo同步源码

万事俱备,只欠东风。
此时,我们只需要执行下面的命令就可以源码同步了!

  1. 同步源码
repo sync [-c --no-tag]  []的内容为可选项 

04 总结一下

如果顺利的话,整个过程可能需要3个小时左右,大概需要40G的空间;如果中途网络中断了,也不要担心,执行最后一步repo sync即可继续下载。在上面的步骤中,有些地方使用了清华的镜像资源,一般情况下是完全可以用的,但如果出了问题,我们可以换成其他镜像资源,如:科大源