0、安裝系統和開發環境:
a) 安裝Ubuntu10.04
b) 安裝Android SDK, 主要是後邊需要adb命令去連結裝置!
1、安裝必要的軟體:
$ sudo apt-get install git-core gnupg
$ sudo apt-get install flex bison gperf libsdl1.2-dev libesd0-dev
$ sudo apt-get install libwxgtk2.6-dev squashfs-tools
$ sudo apt-get install build-essential zip curl libncurses5-dev
$ sudo apt-get install zlib1g-dev pngcrush schedtool
$ sudo apt-get install sun-java6-jdk
2、建立目錄:
存放Cyanogenmod原始碼
$ mkdir -p ~/cyanogenmod
3、下載Cyanogenmod:
一般,先下載的repo,再用下載的repo程式下載Cyanogenmod原始碼
a)建立bin目錄,用來存放repo程式:
$ mkdir ~/bin
b)修改環境變數:
$ sudo gedit ~/.bashrc
在開啟的.bashrc檔案後增加一句:export PATH=$PATH:~/bin,配置環境變數。
CTRL+N新開一個視窗使用echo $PATH 命令可以看到我們新增的路徑生效
c)下載repo程式:
$ sudo curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo
很多文章上說使用$ sudo curl http://android.git.kernel.org/repo > ~/bin/repo ,獲得repo程式,經測試,每次提示HTTP錯誤,repo無法下載!
d)修改下載的~/bin/repo檔案將第五行:
REPO_URL='https://code.google.com/p/git-repo/'
改為
REPO_URL='http://code.google.com/p/git-repo/'
e)設定repo許可權:
$ sudo chmod a+x ~/bin/repo
f)使用repo下載CM原始碼,時間比較漫長:
$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
$ repo sync -j8
4、電腦USB資料線連結N1手機:
$ sudo adb kill-server
$ sudo adb devices
這時應該能看到裝置列表,如果命令找不到,安裝Android SDK,不多說了!
5、開始編譯原始碼:
a) 讀取手機設定檔,根據自己的機型找到相應的目錄:
$ cd ~/cyanogenmod/device/htc/passion
$ ./extract-files.sh
b)執行vendor下的get-rommanager檔案:
$ cd ~/cyanogenmod/vendor/cyanogen
$ ./get-rommanager
c)執行vendor下的extract-google-files 檔案:
$ ./extract-google-files
d) 拷貝一個檔案,注意名字要一致:
$ cp ~/cyanogenmod/vendor/cyanogen/products/cyanogen_passion.mk ~/cyanogenmod/buildspec.mk
e) 在cyanogenmod根目錄下執行指令碼,配置一下變數:
$ cd ~/cyanogenmod/
$ . build/envsetup.sh
f) Lunch一下,選擇你要編譯的版本,根據自己的機器進行選擇:
$ lunch cyanogen_passion-eng
如果不知到參數是什麼可以使用 $ lunch,這樣會出現選項,選擇你要編譯的選項
g) 開始編譯,漫長的等待:
$ make -j4 CYANOGEN_WITH_GOOGLE=true otapackage
當編譯結束會在~/cyanogenmod/out/target/product/passion/目錄下得到很多檔案,其中boot.img system.img userdata.img是我們安裝需要的鏡像檔案,可以打包成zip檔案進行安裝參考步驟h),也可以使用下邊方式進行測試,關機,長按手機電源鍵+軌跡球,進入了FASTBOOT介面,使用下邊命令更新手機系統:
$sudo fastboot flash boot boot.img
$sudo fastboot flash system system.img
$sudo fastboot flash userdata userdata.img
$sudo fastboot reboot
h) 打包簽名:
$ ./vendor/cyanogen/tools/squisher
將在~/cyanogenmod/out/target/product/passion/產生update-cm-7.1.0-N1-KANG-signed.zip
檔案,可以參考小米N1 MIUI zip包刷機教程,方法相同,下邊是教程地址:
http://www.miui.com/a-19.html
參考文章:
http://www.iteye.com/topic/1113040
http://hi.baidu.com/lizhengjun2010/blog/item/0b84aa406f2d579eb2b7dcf7.html
http://www.cnrgb.com/compile-cyanogenmod-for-hero-gsm-android-from-source-code