源码编译CM教程 支持UB16

自己整理的编译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

 

 

源码编译CM教程 支持UB16-我的技术分享