自己整理的编译cm的大致步骤,英文能力不错的可以去cm的官方wiki看看。
1.环境搭建
先安装几个必要的组件,包括:
bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev
libwxgtk2.8-dev libxml2 libxml2-utilslzop maven openjdk-7-jdk
pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
64bit的系统额外需要安装下面的组件:
g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
特别说明:
UB15.10系统:
lib32readline-gplv2-dev 更改为lib32readline6-dev
UB16.04系统:
libwxgtk2.8-dev更改为 libwxgtk3.0-dev
openjdk-7-jdk 更改为 openjdk-8-jdk
设置环境变量:export EXPERIMENTAL_USE_JAVA8=true
(UB16中移除了openjdk7 你非要用的话 参考这篇文章)
2.下载源码
下载Repo(需翻墙)
$ mkdir -p ~/bin
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$PATH=$HOME/bin:$PATH
下载CM源码
$ mkdir -p ~/android/system
$ cd ~/android/system/
$ repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0
$ repo sync -c -j 8
3.下载或者创建机型配置
这步是最难的,每个机型都不一样,网上也没什么教程。
1.已有相关device的机型处理
如果你的机型是被cm官方支持的,那么你可以这么操作
$ . build/envsetup.sh
$ lunch
$ cm_{you-device-code}-userdebug
通过lunch来选择机型,如果你的机型被支持。那么会自动下载所需的配置和代码到本地
2.官方不支持但有人分享了device配置
如果官方不支持的话,你可以去github搜索看看,运气好就搜到咯~
关键词么,大概是设备的品牌名称和机型的代号
然后下载对于的devices到本地cm代码目录
3.自己创建device
这已经超出我的能力了,有能力的也不会看我的教程 -__-
repo init -u git://github.com/CyanogenMod/android.git -b cm-13.0
repo sync
source build/envsetup.sh
lunch cm_gemini-userdebug
export USE_CCACHE=1
prebuilts/misc/linux-x86/ccache/ccache -M 50G
make otatools
make otapackage
make clobber
repo forall -c git reset --hard