1、安装Ubuntu,官方推荐14.04,但是我在学编译之前安装的16.04,所以将就着用了,遇到坑就google,解决问题也是一种学习能力。(Git和JDK就不介绍了,blog有记录)
2、下载repo工具,就不介绍这个工具了,google一下到处都是。
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
echo "export PATH=~/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
也可以去 GitHub下载,再按上面步骤赋执行权限,export环境变量。
3、找个空闲空间大的分区(100G以上),我这里是挂载win10下的磁盘。
$ mkdir /media/leon/downloads/android/android-rom/cm13
$ cd /media/leon/downloads/android/android-rom/cm13
$ repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0
4、初始化repo完成后,在上面创建的cm13目录下,找到.repo文件夹,修改其中的manifest.xml
<remote name="aosp"
fetch="https://aosp.tuna.tsinghua.edu.cn" #添加这行,将官方镜像替换为清华的aosp
fetch="https://android.googlesource.com/" #删除这行,aosp在官方下载慢的惊人
review="android-review.googlesource.com"
revision="refs/tags/android-6.0.1_r74" />
5、在.repo目录下,建立local_manifests文件夹,
$ mkdir ./local_manifests
$ vim ./local_manifests/roomservice.xml
将一下内容添加到文件中:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_nubia_nx531j" path="device/nubia/nx531j" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_kernel_nubia_msm8996" path="kernel/nubia/msm8996" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_vendor_nxp-nfc_opensource_frameworks" path="vendor/nxp-nfc/opensource/frameworks" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_vendor_nxp-nfc_opensource_libnfc-nci" path="vendor/nxp-nfc/opensource/libnfc-nci" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_vendor_nxp-nfc_opensource_Nfc" path="vendor/nxp-nfc/opensource/Nfc" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_external_stlport" path="external/stlport" remote="github" revision="cm-13.0" />
</manifest>
6、同步源码,大概25G左右
$ cat /proc/cpuinfo |grep "cores"|uniq #查看cpu核心数,我的是4核,于是并行编译时参数位-j8(即4×2)
$ repo sync -j8 --no-clone-bundle #同步源码