本文基于清华镜像源,讲解在Ubuntu上下载AOSP(Android Open-Source Project,Android 开放源代码项目)的具体过程。
1. 下载并配置git
# 先查看Ubuntu有没有安装git
xxdty@ubuntu20:~$ git --version
# 如果没有安装git,则通过apt命令安装git
xxdty@ubuntu20:~$ sudo apt install git
# 给git设置用户名和邮箱,用户名和邮箱随意设置
xxdty@ubuntu20:~$ git config --global user.email "you@example.com"
xxdty@ubuntu20:~$ git config --global user.name "Your Name"
# 查看设置的用户名和邮箱是否生效
xxdty@ubuntu20:~$ git config --global user.name
xxdty@ubuntu20:~$ git config --global user.email
2. 安装curl
# 通过apt命令安装curl
xxdty@ubuntu20:~$ sudo apt install curl
3. 在当前用户家目录创建bin目录并将其添加到PATH环境变量
# 在当前用户家目录创建bin目录
xxdty@ubuntu20:~$ mkdir ~/bin
# 查看bin目录是否创建成功
xxdty@ubuntu20:~$ ls
bin Desktop Documents Downloads Music Pictures Public Templates Videos
# 将bin目录路径添加到PATH环境变量
xxdty@ubuntu20:~$ PATH=~/bin:$PATH
# 查看bin目录路径是否添加到PATH环境变量
xxdty@ubuntu20:~$ echo $PATH
/home/xxdty/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
4. 安装repo并设置可执行权限
# 安装repo到~/bin目录
xxdty@ubuntu20:~$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
# 进入bin目录
xxdty@ubuntu20:~$ cd bin
# 给repo添加可执行权限
xxdty@ubuntu20:~/bin$ chmod a+x repo
# 查看repo是否已具备可执行权限
xxdty@ubuntu20:~/bin$ ll
total 48
drwxrwxr-x 2 xxdty xxdty 4096 8月 16 00:11 ./
drwxr-xr-x 19 xxdty xxdty 4096 8月 16 12:23 ../
-rwxrwxr-x 1 xxdty xxdty 39134 8月 16 00:11 repo*
5. 创建保存AOSP的目录
# 在当前用户家目录下创建workspace目录,用于保存即将下载的AOSP
xxdty@ubuntu20:~$ mkdir workspace
# 查看workspace目录是否创建成功
xxdty@ubuntu20:~$ ls
bin Desktop Documents Downloads Music Pictures Public Templates Videos workspace
6. 从清华镜像源下载AOSP初始化包
# 进入workspace目录
xxdty@ubuntu20:~$ cd workspace
# 开始下载AOSP初始化包,下载过程较漫长
xxdty@ubuntu20:~/workspace$ wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
# 下载后查看aosp-latest.tar
xxdty@ubuntu20:~/workspace$ ll
drwxrwxr-x 3 xxdty xxdty 4096 8月 16 12:26 ./
drwxr-xr-x 19 xxdty xxdty 4096 8月 16 12:23 ../
-rw-rw-r-- 1 xxdty xxdty 85619834880 7月 1 01:06 aosp-latest.tar
# 解压aosp-latest.tar,得到aosp目录,解压过程漫长
tar xf aosp-latest.tar
# 解压后查看aosp目录
xxdty@ubuntu20:~/workspace$ ll
total 83613140
drwxrwxr-x 3 xxdty xxdty 4096 8月 16 12:26 ./
drwxr-xr-x 19 xxdty xxdty 4096 8月 16 12:23 ../
drwxr-xr-x 28 xxdty xxdty 4096 8月 16 13:34 aosp/
-rw-rw-r-- 1 xxdty xxdty 85619834880 7月 1 01:06 aosp-latest.tar
7. 进入aosp目录进行同步,得到完整的aosp
# 进入aosp目录
xxdty@ubuntu20:~/workspace$ cd aosp
# 查看aosp目录下的内容,只有一个隐藏.repo目录,
xxdty@ubuntu20:~/workspace/aosp$ ll
drwxr-xr-x 28 xxdty xxdty 4096 8月 16 13:34 ./
drwxrwxr-x 3 xxdty xxdty 4096 8月 16 12:26 ../
drwxr-xr-x 7 xxdty xxdty 4096 8月 16 13:13 .repo/
# aosp的所有代码都是从.repo目录中checkout出来的,所以再进行repo sync同步,即可得到完整的aosp,同步过程较漫长
xxdty@ubuntu20:~/workspace/aosp$ repo sync
# 同步结束后,查看aosp目录下的内容
xxdty@ubuntu20:~/workspace/aosp$ ll
total 124
drwxr-xr-x 28 xxdty xxdty 4096 8月 16 13:34 ./
drwxrwxr-x 3 xxdty xxdty 4096 8月 16 12:26 ../
lrwxrwxrwx 1 xxdty xxdty 19 8月 16 13:13 Android.bp -> build/soong/root.bp
drwxrwxr-x 35 xxdty xxdty 4096 8月 16 13:13 art/
drwxrwxr-x 15 xxdty xxdty 4096 8月 16 13:13 bionic/
drwxrwxr-x 3 xxdty xxdty 4096 8月 16 13:13 bootable/
lrwxrwxrwx 1 xxdty xxdty 26 8月 16 13:13 bootstrap.bash -> build/soong/bootstrap.bash*
drwxrwxr-x 5 xxdty xxdty 4096 8月 16 13:13 build/
drwxrwxr-x 3 xxdty xxdty 4096 8月 16 13:13 compatibility/
drwxrwxr-x 13 xxdty xxdty 4096 8月 16 13:13 cts/
drwxrwxr-x 8 xxdty xxdty 4096 8月 16 13:14 dalvik/
drwxrwxr-x 5 xxdty xxdty 4096 8月 16 13:14 developers/
drwxrwxr-x 20 xxdty xxdty 4096 8月 16 13:14 development/
drwxrwxr-x 10 xxdty xxdty 4096 8月 16 13:15 device/
drwxrwxr-x 326 xxdty xxdty 12288 8月 16 13:20 external/
drwxrwxr-x 17 xxdty xxdty 4096 8月 16 13:33 frameworks/
drwxrwxr-x 14 xxdty xxdty 4096 8月 16 13:21 hardware/
drwxrwxr-x 5 xxdty xxdty 4096 8月 16 13:22 kernel/
drwxrwxr-x 19 xxdty xxdty 4096 8月 16 13:22 libcore/
drwxrwxr-x 10 xxdty xxdty 4096 8月 16 13:22 libnativehelper/
-r--r--r-- 1 xxdty xxdty 92 8月 16 13:13 Makefile
drwxrwxr-x 9 xxdty xxdty 4096 8月 16 13:23 packages/
drwxrwxr-x 6 xxdty xxdty 4096 8月 16 13:23 pdk/
drwxrwxr-x 10 xxdty xxdty 4096 8月 16 13:23 platform_testing/
drwxrwxr-x 33 xxdty xxdty 4096 8月 16 13:32 prebuilts/
drwxr-xr-x 7 xxdty xxdty 4096 8月 16 13:13 .repo/
drwxrwxr-x 22 xxdty xxdty 4096 8月 16 13:33 sdk/
drwxrwxr-x 42 xxdty xxdty 4096 8月 16 13:33 system/
drwxrwxr-x 10 xxdty xxdty 4096 8月 16 13:34 test/
drwxrwxr-x 4 xxdty xxdty 4096 8月 16 13:34 toolchain/
drwxrwxr-x 21 xxdty xxdty 4096 8月 16 13:34 tools/
# 查看当前aosp的版本,PLATFORM_SDK_VERSION := 29 对应Android 10
xxdty@ubuntu20:~/workspace/aosp$ cat build/core/version_defaults.mk | grep "PLATFORM_SDK_VERSION :"
PLATFORM_SDK_VERSION := 29
此后,每次只需运行 repo sync ,即可从清华镜像源同步到最新的aosp。
此外,可以在 repo sync 之前,先指定aosp版本,这样便可以同步到指定版本的aosp代码。
xxdty@ubuntu20:~/workspace/aosp$ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-5.0.2_r1
xxdty@ubuntu20:~/workspace/aosp$ repo sync
网友评论