下载CM源代码其实跟下载google的纯Android源代码是类似的,下面的是CM的官方网站,你要先下载你的手机对应的ROM,放入SDCARD根目录,以防万一。
下面再介绍一个网站:http://forum.xda-developers.com/index.php
这是XDA开发者论坛,里面高手如云,会对你有帮助的
现在开始告诉大家如何下载源码、编译源码、并将其刷到手机上
1、安装需要的软件
我用的是ubuntu 11.04
sudo apt-get install <软件列表>
下面是软件列表:
- 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、开始下载喽
- curl http://android.git.kernel.org/repo > ~/bin/repo
- chmod a+x ~/bin/repo
用下载的repo下载Cyanogenmod源代码
- repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
- repo sync -j16
这里说一下repo sync 这个过程那是相当的慢的。使用repo sync -jn,n表示同时打开的网络链接数,开启多个网络连接来下载,这样速度会有所提升的。
4、下面开始编译源代码
首先,需要将你的手机的USB调试打开,并连接到电脑。
- cd ~/cyanogenmod/device/samsung/crespo
- ./extract-files.sh
然后
- cd ~/cyanogenmod/vendor/cyanogen
- ./get-rommanager
- ./extract-google-files
5、拷贝一个文件,注意名字要一致
- cp ~/cyanogenmod/vendor/cyanogen/products/cyanogen_crespo.mk ~/cyanogenmod/buildspec.mk
6、在cyanogenmod根目录下执行脚本,配置一下变量
- . build/envsetup.sh
- 或者
- source build/envsetup.sh
7、Lunch一下,选择你要编译的版本
- lunch cyanogen_crespo-eng
- 或者
- lunch
- 这样会出现选项,选择你要编译的选项
8、开始编译
- make -j4 CYANOGEN_WITH_GOOGLE=true otapackage
9、执行一下
- ./vendor/cyanogen/tools/squisher
这样就会在~/cyanogenmod/out/target/product/crespo下有一个update的zip包,那个就是你编译生成的了。
你可以将其刷到手机上
其实CM的一个好处就是不用你自己再编译内核源码,并且直接生成zip包,免去了制作zip包的麻烦了
如果没有手机,可以用模拟器测试一下,将kernel/cm-kernel/arch/arm/boot目录下的zImage拷贝的一个文件夹中,注意,你要安装了sdk才行,还有下载一个fastboot小工具
- 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
- Chmod u+x jdk-6u24-linux-i586.bin
- ./jdk-6u24-linux-i586.bin
安装结束后:
- 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
完了以后继续改变下全局变量,代码:
- 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
软件的安装
第一步配置的源在这就有效果了,下面列出需要安装的常用软件:
• 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
其他的软件类似。
源码同步
代码:
- 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
- repo init -u git://github.com/cyanogen/android.git -b gingerbread
再接下来开始同步源码。
在cm文件夹里建立一个文件do.sh
用文本编辑它,复制下面的代码进去:
- #!/bin/sh
- repo sync -j16
- while [ $? -ne 0 ]
- do
- repo sync -j16
- done
保存,完了以后继续在终端写代码:
- cd ~
- cd cm
- ./do.sh
基本就是这些了,有问题的可以直接回复。