下載CM原始碼其實跟下載google的純Android原始碼是類似的,下面的是CM的官方網站,你要先下載你的手機對應的ROM,放入SDCARD根目錄,以防萬一。
http://www.cyanogenmod.com/
下面再介紹一個網站:http://forum.xda-developers.com/index.php
這是XDA開發人員論壇,裡面高手如雲,會對你有協助的
現在開始告訴大家如何下載源碼、編譯源碼、並將其刷到手機上
1、安裝需要的軟體
我用的是ubuntu 11.04
sudo apt-get install <軟體列表>
下面是軟體列表:
Java代碼
- git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool
注意:如果JDK無法安裝的話,可以自己下載,或者參考我的這篇部落格:
http://hualang.iteye.com/blog/1132207
2、建立目錄
mkdir -p ~/cyanogenmod
用於存放下載後的原始碼
3、開始下載嘍
Java代碼
- curl http://android.git.kernel.org/repo > ~/bin/repo
- chmod a+x ~/bin/repo
用下載的repo下載Cyanogenmod原始碼
Java代碼
- repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
- repo sync -j16
這裡說一下repo sync 這個過程那是相當的慢的。使用repo sync -jn,n表示同時開啟的網路連結數,開啟多個網路連接來下載,這樣速度會有所提升的。
4、下面開始編譯原始碼
首先,需要將你的手機的USB調試開啟,並串連到電腦。
Java代碼
- cd ~/cyanogenmod/device/samsung/crespo
- ./extract-files.sh
然後
Java代碼
- cd ~/cyanogenmod/vendor/cyanogen
- ./get-rommanager
Java代碼
- ./extract-google-files
5、拷貝一個檔案,注意名字要一致
Java代碼
- cp ~/cyanogenmod/vendor/cyanogen/products/cyanogen_crespo.mk ~/cyanogenmod/buildspec.mk
6、在cyanogenmod根目錄下執行指令碼,配置一下變數
Java代碼
- . build/envsetup.sh
- 或者
- source build/envsetup.sh
7、Lunch一下,選擇你要編譯的版本
Java代碼
- lunch cyanogen_crespo-eng
- 或者
- lunch
- 這樣會出現選項,選擇你要編譯的選項
8、開始編譯
Java代碼
- make -j4 CYANOGEN_WITH_GOOGLE=true otapackage
9、執行一下
Java代碼
- ./vendor/cyanogen/tools/squisher
這樣就會在~/cyanogenmod/out/target/product/crespo下有一個update的zip包,那個就是你編譯產生的了。
你可以將其刷到手機上
其實CM的一個好處就是不用你自己再編譯核心源碼,並且直接產生zip包,免去了製作zip包的麻煩了
如果沒有手機,可以用模擬器測試一下,將kernel/cm-kernel/arch/arm/boot目錄下的zImage拷貝的一個檔案夾中,注意,你要安裝了sdk才行,還有下載一個fastboot小工具
Java代碼
- adb reboot bootloader
- ./fastboot boot zImage
然後就等著看效果了
*************************************
該教程大量參考了slax大神和G1的NOirBRight大神的教程(因為有一些東西都過時了,會給部分讀者造成困擾)。
首先先安裝一個ubuntu,10.10(我用的是10.10,你有其他需求下新版本的也行,分區建議40g+)。
安裝完以後,可以先配置一下源。
這兒羅嗦幾句。
http://code.google.com/p/ailurus/downloads/list
建議下載這個軟體,格式是deb直接安裝就行,這個相當於windows的最佳化大師,裡面有一個源列表,能幫你測試出速度最快的源,勾選上以後就能直接改變源的檔案了,不用你開啟檔案再修改儲存了。
接下來就是環境的組建了。
JDK
到sun公司的官網下載jdk。
我下的是
jdk-6u24-linux-i586.bin。
這個檔案啟動並執行時候是在目前的目錄安裝的,所以找一個你想安裝的目錄,我用的是/usr/lib/jvm/java,
代碼:
- cd ..
- cd usr/lib
- mkdir jvm
- cd jvm
- mkdir java
- cd java
複製代碼
(然後把檔案jdk-6u24-linux-i586.bin複製進去。)
- Chmod u+x jdk-6u24-linux-i586.bin
- ./jdk-6u24-linux-i586.bin
複製代碼
螢幕持續滾動,直到讓你輸入yes/no,當然yes,斷行符號。
安裝結束後:
- gedit /etc/profile
複製代碼
在開啟的檔案最後添上:
#set java environment
JAVA_HOME=/usr/lib/jvm/java/jdk1.6.0_24
export JRE_HOME=/usr/lib/jvm/java/jdk1.6.0_24/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
(配置系統java環境)
重啟,檢測java:
- java -version
複製代碼
出現:
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Server VM (build 19.1-b02, mixed mode)
就代表安裝成功了。
Sdk
去android官網下載android-sdk_r10-linux_x86.tgz
完了以後直接解壓縮,得到android-sdk-linux_x86檔案夾。將檔案夾放到一個你想放的地方,比如我直接放在了案頭上(/root/案頭/android-sdk-linux_x86)。
這需要運行一些代碼,才能獲得一些常用的工具,如adb等,如下:
- cd /root/案頭/android-sdk-linux_x86
- cd tools
- ./android
複製代碼
會開啟一個視窗,選擇一些需要的包,像sdk tools和sdk platform-tools等,網路好的話,下載速度會快點。
完了以後繼續改變下全域變數,代碼:
- gedit ~/.bashrc
複製代碼
開啟後添加:
#set path for android sdk tools
export PATH=$PATH:/root/案頭/android-sdk-linux_x86/tools/
export PATH=$PATH:/root/案頭/android-sdk-linux_x86/platform-tools/
後面的一些檔案夾類似,這個就可以在終端中用sdk的工具了。
檢測,連上你的手機,代碼:
- adb devices
複製代碼
會出現一串數字和字母的序號的顯示的話,即表示SDK安裝成功。
軟體的安裝
第一步配置的源在這就有效果了,下面列出需要安裝的常用軟體:
• git-core
• gnupg
• flex
• bison
• gperf
• libsdl-dev
• libesd0-dev
• libwxgtk2.6-dev
• build-essential
• zip
• curl
• libncurses5-dev
• zlib1g-dev
• valgrind
• libreadline5-dev
用第一個做例子,代碼:
i. 在主目錄下建立一個檔案夾,作為源碼的存放目錄
代碼:
- apt-get install git-core
複製代碼
然後等一螢幕的英文,會讓你選擇y/n的,輸入y後,安裝完成。
其他的軟體類似。
源碼同步
代碼:
- cd ~
- mkdir bin
- gedit ~/.bashrc
複製代碼
開啟後在最後添加:
export PATH=$PATH:~/bin
儲存退出。
完了以後繼續代碼:
- curl http://android.git.kernel.org/repo > ~/bin/repo
- chmod a+x ~/bin/repo
- cd ~
- mkdir cm
- cd cm
複製代碼
(在主目錄下建立一個cm檔案夾用於存放cm7的源碼)
- repo init -u git://github.com/cyanogen/android.git -b gingerbread
複製代碼
打完上面的命令後過程比較短,結束後會讓你填一下名字和郵箱,填完就ok了。
再接下來開始同步源碼。
在cm檔案夾裡建立一個檔案do.sh
用文本編輯它,複製下面的代碼進去:
- #!/bin/sh
- repo sync -j16
- while [ $? -ne 0 ]
- do
- repo sync -j16
- done
複製代碼
(上面的16表示同時執行幾個線程,一般下載都有峰值的,弄太大也沒有效果)
儲存,完了以後繼續在終端寫代碼:
- cd ~
- cd cm
- ./do.sh
複製代碼
終端開始跳動英文,就表示開始同步了(這個檔案可以重複執行,就是說電腦關機了(或者關閉終端了),重新開機後(開啟終端),再執行一次就直接繼續下載了,不用擔心重複下載的問題。
基本就是這些了,有問題的可以直接回複。