環(huán)境搭建:
1.安裝64位Ubuntu系統(tǒng)(實(shí)體安裝、虛擬機(jī)安裝均可)
注意:要求機(jī)器至少4G內(nèi)存(虛擬機(jī)至少分配4G內(nèi)存),硬盤至少100G空間(源碼20G+,編譯后整個(gè)目錄約60~70G)
安裝方法請(qǐng)百度~
2.更新系統(tǒng)至最新版本,在終端下輸入
sudo apt-get update
sudo apt-get upgrade
復(fù)制代碼
3.安裝編譯必需軟件包
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
復(fù)制代碼
4.建立repo命令
mkdir -p ~/bin
curl
https://storage.googleapis.com ... /repo > ~/bin/repo
chmod a+x ~/bin/repo
echo 'export PATH=~/bin:$PATH' >> ~/.bashrc
復(fù)制代碼
注意,第二行要從谷歌那里下載repo小程序,國(guó)內(nèi)網(wǎng)絡(luò)你懂的,可以在瀏覽器上面掛個(gè)代理通過(guò)以下地址下載好,拷貝到~/bin/repo,再執(zhí)行第三行和第四行命令
https://storage.googleapis.com ... /repo 復(fù)制代碼
同步源碼:
1.新建一個(gè)儲(chǔ)存源碼的文件夾,這里以~/android/cm為例
mkdir ~/android/cm
cd ~/android/cm
復(fù)制代碼
2.初始化源碼目錄
repo init -u git://github.com/CyanogenMod/android.git -b cm-12.0
復(fù)制代碼
3.添加一加專用文件目錄
mkdir ~/android/cm/.repo/local_manifests
gedit ~/android/cm/.repo/local_manifests/local_manifests.xml
復(fù)制代碼
把以下內(nèi)容復(fù)制進(jìn)去
復(fù)制代碼
4.針對(duì)國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境的處理(無(wú)需FQ)
sudo gedit /etc/hosts
復(fù)制代碼
在hosts文件中加入
203.208.49.187 googlesource.com
203.208.49.187 android.googlesource.com
203.208.49.187 gerrit.googlesource.com
復(fù)制代碼
注意,203.208.49.187只是我這里臨時(shí)獲取的ip,請(qǐng)?zhí)鎿Q成適合你的地區(qū)的ip,具體獲取方法如下
ping ad.doubleclick.net
復(fù)制代碼
這樣就可以解析出來(lái)一個(gè)ip地址,這個(gè)ip地址是可以正常訪問(wèn)谷歌的~
5.拉取代碼(需要下載約十幾個(gè)G的內(nèi)容,花費(fèi)時(shí)間參考各自網(wǎng)速)
repo sync
復(fù)制代碼
如果中間斷網(wǎng)了,或者出錯(cuò)了,重新repo sync一下就可以繼續(xù)了~
6.獲取預(yù)編譯的部分文件
cd ~/android/cm/vendor/cm
./get-prebuilts
復(fù)制代碼
編譯ROM
1.初始化編譯環(huán)境
cd ~/android/cm
. build/envsetup.sh
lunch cm_bacon-userdebug
復(fù)制代碼
2.編譯ROM(我筆記本下面虛擬機(jī)花費(fèi)時(shí)間約2小時(shí),取決于個(gè)人電腦性能)
make bacon -jX
復(fù)制代碼
其中X是你CPU的線程數(shù),比如我給虛擬機(jī)分配的是6線程,編譯命令就是
make bacon -j6
復(fù)制代碼
注意:目前編譯剛開(kāi)始出現(xiàn)下面幾行是正?,F(xiàn)象,不影響的~
find: 'src': No such file or directory
find: 'phone/java': No such file or directory
find: 'dummy': No such file or directory
復(fù)制代碼
再次編譯
1.建議每次編譯都要把上一次編譯的內(nèi)容清除,否則有可能出現(xiàn)莫名其妙的問(wèn)題
make clobber
復(fù)制代碼
2.再次同步源碼到最新版本
repo sync
復(fù)制代碼
3.初始化編譯環(huán)境
. build/envsetup.sh
lunch cm_bacon-userdebug
復(fù)制代碼
4.編譯ROM
make bacon -jX
復(fù)制代碼
參考
CM官方指導(dǎo)
http://wiki.cyanogenmod.org/w/Build_for_bacon 魔趣官方指導(dǎo)
http://wiki.mokeedev.com/Setti ... nment GRMrGecko的教程
http://forum.xda-developers.com/ ... neplus-one-t2947949**