AOSP源码下载

MuYusen 于 2020-01-04 发布 本文总阅读量

AOSP源码下载

Android的源代码位于由谷歌托管的Git仓库。

安装Repo

Repo是一款使android源码下载更容易的工具。

  1. 在你的home目录下面新建bin目录,并将该目录加到环境变量中。
     mkdir ~/bin
     PATH=~/bin:$PATH
    
  2. 下载repo工具,并修改它的权限,使它是可执行的。
     curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
     chmod a+x ~/bin/repo
    

    初始化Repo Client

安装好Repo之后,配置你的客户端,使其可以访问Android源码库。

  1. 用一个你喜欢的名字,新建一个空目录,用来存放你要下载的代码。
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
  1. 使用你注册的Google账号,在你的本机上配置git。这样可以使你访问google 的code-review系统。
    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"
  1. 运行repo init命令下载最近进行了bugfix的新版Repo,这时你需要指定一个manifest的url,这个url包含了aosp各种版本的信息库。默认下载master分支,但是也可以指定分支。
    repo init -u https://android.googlesource.com/platform/manifest
    或
    repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

命令执行结束之后,在你的工作空间下或有一个.repo的目录,这时说明你已经初始化成功了。

下载Android源码

初始化完成之后,你就可以执行命令,根据你定义的manifest文件,来pull down android 源码。

    repo sync

使用本地镜像

当使用多个客户,尤其是在带宽匮乏的情况下,最好创建整个服务器内容的本地镜像,并为客户从镜像同步(它不需要网络访问)。这样可以很好的减小带宽的压力,加快下载的速度。。

首先在执行repo init的时候使用–mirror,来建立本地镜像。

    mkdir -p /usr/local/aosp/mirror
    cd /usr/local/aosp/mirror
    repo init -u https://android.googlesource.com/mirror/manifest --mirror
    repo sync

一旦本地镜像sync完毕,你就可以从镜像同步代码,这是只需要修改manifest的url就可以了。

    mkdir -p /usr/local/aosp/master
    cd /usr/local/aosp/master
    repo init -u /usr/local/aosp/mirror/platform/manifest.git
    repo sync

最终,定期更新你的本地镜像和代码。

    cd /usr/local/aosp/mirror
    repo sync
    cd /usr/local/aosp/master
    repo sync

国内下载android源码

因为google在国内是被墙掉的,所以使用官方版下载是很难下载成功。不过还好,我们可以通过国内的镜像下载(科大源或清华源)。

方法一

参考Google官方教程或《同步android源码(官方版)》,将里面的url: https://android.googlesource.com/ 全部使用 https://aosp.tuna.tsinghua.edu.cn/ 或 git://mirrors.ustc.edu.cn/aosp/ 代替即可。

方法二

修改本地的.gitconfig文件,在这个文件里面改变url指向。然后其他命令操作不变,继续执行。

    [url "https://aosp.tuna.tsinghua.edu.cn/"]
        insteadOf = https://android.googlesource.com/
    
    或
    
    [url "git://mirrors.ustc.edu.cn/aosp/"]
        insteadOf = https://android.googlesource.com/

方法三

使用每月更新的初始化包

由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,我们强烈建议您使用初始化包进行初始化。

下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar, 或 http://mirrors.ustc.edu.cn/aosp-monthly/aosp-latest.tar 下载完成后记得根据 checksum.txt 的内容校验一下。

由于所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以我们只保留了 .repo 目录,下载后解压 再 repo sync 一遍即可得到完整的目录。

使用方法如下:

    wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
    或
    wget http://mirrors.ustc.edu.cn/aosp-monthly/aosp-latest.tar
    
    tar xf aosp-latest.tar
    cd AOSP   # 解压得到的 AOSP 工程目录
    # 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
    repo sync # 正常同步一遍即可得到完整目录
    # 或 repo sync -l 仅checkout代码

此后,每次只需运行 repo sync 即可保持同步。 我们强烈建议您保持每天同步,并尽量选择凌晨等低峰时间