本来想下载Android官方源代码,没想到android.git.kernel.org被黑,不能访问,非常遗憾,并因此还郁闷了几天。
后来一想,竟然忘记了CyanogenMod这茬,这可是的的确确的开源啊,我的手机一直也在用CyanogenMod系统的,感觉确实不错。
1.准备我得环境如下,
Ubuntu10.04.3(64位)
下载CyanogenMod的gingerbread分支
Ubuntu的环境配置大家可以参考http://source.android.com/。如果是新系统可以用脚本 install.tar
这里着重说下Android 2.3以上需要借助JAVA6,安装Java6,推荐如下安装:
sudo add-apt-repository “deb http://archive.canonical.com/ubuntu lucid partner”
sudo add-apt-repository “deb-src http://archive.canonical.com/ubuntu lucid partner”
sudo apt-get update
sudo apt-get install -y sun-java6-jdk
2.安装repo
因为android.git官方已经不能访问,所以我这里提供一个repo文件的下载地址,免的大家到处搜索:http://www.embest.net/repo
把repo拷贝到ubuntu根目录下得bin下
操作方法:
$ mkdir ~/bin $ PATH=~/bin:$PATH$ curl http://www.embest.net/repo > ~/bin/repo $ chmod a+x ~/bin/repo
3.ubuntu中环境的配置
JDK前面已经说了,其他的软件列表如下:
1
$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
这些软件都安装好之后我们开始下载CyanogenMod源码。
4.下载CyanogenMod源码
1
//从用户根目录下开始
2
//创建CyanogenMod文件夹来放置后面所有的代码
3
$mkdir CyanogenMod
4
//获取gingerbread的分支源代码
5
$repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
6
//同步服务器代码到本地,-j16是多线程,从而能提高下载速度
7
$repo sync -j16
这个过程非常的漫长,大家慢慢的等吧,本人是晚上睡觉的时候下载,第二天早上醒来就Done了。
5.编译源码
在CyanogenMod/device目录下有很多款手机的对应版本:
我手机是中兴V880,进入zte可以看到blade
所以本人决定编译一个我手头上的liberty对应的系统版本,编译完成后我们直接刷机。
第一步:读取手机上的一些私有配置文件
1
$cd CyanogenMod/device/zte/blade
2
$./extract-files.sh
图示如下:
这是读取手机里面.so库文件,所以一定要连接手机,并且adb能通,如果不通,请参考《用手机为Android开发Debug》,或者用我提供的脚本usb.tar
lsusb查看手机PID,
sudo sh usb.sh PID
sudo adb kill-server #如果ADB找不到,请下载SDK
sudo adb start-server #加sudo
例如:sudo sh usb.sh 19d2 #19D2是中兴的PID
第二步:生成编译脚本文件
1
$cd ~/CyanogenMod/vendor/cyanogen
2
$./get-rommanager
3
$./extract-google-files
4
//复制编译脚本文件到CyanogenMod目录下,后面编译整个系统用的就是这个文件
5
$cp ~/CyanogenMod/vendor/cyanogen/products/cyanogen_blade.mk ~/CyanogenMod/buildspec.mk
贴上进行时图片:
第三步:编译脚本
回到CyanogenMod目录下,执行脚本。
1
//初始化脚本,这个是后面的重要基础步骤
2
$source build/envsetup.sh
3
//选择编译的产品
4
//这个命令需要一小会儿时间,但是又没提示,耐性等待一下
5
$lunch cyanogen_blade-eng
6
//开始编译
7
$make -j4 CYANOGEN_WITH_GOOGLE=true otapackage
这个过程也是相当的漫长,还好一般情况下我们只是第一次需要项目整个编译,后面只需要编译某个模块。
第四步:生产刷机zip包。
1
./vendor/cyanogen/tools/squisher
有图为赏:
用这个zip包,我刷到我手机上,一切正常。
6.定制ROM
有了以上的环境后,我们就可以大展手脚,深度定制ROM, 做自己的操作系统,自己的CyanogenMod,自己的MIUI,自己的Android系统。
截图一张。防止图片打不开。