Skip to content

3. 同步android源码

wzv5 edited this page Jul 26, 2017 · 1 revision

android 源码统一使用 repo 进行同步,这个工具是 Google 提供的,可以算是 git 的增强脚本,底层还是 git,所以知道点 git 基础使用还是很有帮助的(虽然不会也没什么大关系)。

1. 安装 repo

如果你像我一样使用 Arch Linux,那么直接从包管理器里安装 repo 即可:

sudo pacman -S repo

如果包管理器里没有 repo,就需要手动安装:

sudo wget https://storage.googleapis.com/git-repo-downloads/repo -O /usr/bin/repo
sudo chmod +x /usr/bin/repo

为了方便使用,我这里直接把 repo 安装到 /usr/bin 目录下了。

2. 创建源码目录

mkdir -p ~/android/sudamod
cd ~/android/sudamod

3. 创建 Python 虚拟环境(可选)

repo 需要 Python2 来运行。

如果你使用的 Linux 发行版默认的 Python 版本是2,那么直接跳过这一步即可。

Arch 也可跳过,因为从包管理器里安装的 repo 会自动处理好这些问题。

pip install virtualenv
virtualenv -p python2 pyenv
source pyenv/bin/activate

4. repo初始化(下载核心清单文件)

repo init -u git://github.com/SudaMod/android.git -b sm-3.1

5. 下载我整理好的z2特定清单文件

mkdir -p .repo/local_manifests
cd .repo/local_manifests
wget https://raw.githubusercontent.com/wzv5/android_device_zuk_z2_plus/sm-3.1/z2_sm_manifest.xml

6. 开始同步

cd ~/android/sudamod
repo sync -c -f -j8 --force-sync --no-clone-bundle

整个同步过程可能会持续3个小时或更长时间,有时1天也难以完成,请耐心等待。

如果网络有问题,比如科学上网不稳定,可能会出错,这时重新执行同步命令即可,会自动跳过已下载的内容。