CyanogenMod×××和编译以及简单修改
http://sunzeduo.blog.51cto.com/2758509/1349134

这篇博文是将gingerbread的版本也就是android 2.3.7的版本编译成 nexus S crespo 手机能够使用的rom的包
但是,CyanogenMod 下的官网其实目前是用的

repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2

这个版本来进行编译说明的,并且

该手机支持的cm版本如下
CM Support:     7, 9, 10, 10.1, 10.2, 11

这里我们再进行一次新版本的编译,通过这次操作,可以完成一个手机烧入不同的android版本的rom包的效果。

一 前提条件:
1 配置好 android的编译环境
 配置方法详见  http://source.android.com/source/initializing.html 网页

2 下载源码

  curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  需要用 CyanogenMod 提供的 repo工具

  repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2  
  下载相应的分支

  repo sync
  下载

  和前面的一样,如果已经下载了cm-10.2版本,就不需要再下载了,能够节省好多时间。

3 Samsung Google Google Nexus S ("crespo") 手机一部,
 我的手机中
 关于手机
 型号:Nexus S
 基带版本: I9020XXKl1

4 刷机工具,比如完美刷机




二 重要网页
1 http://wiki.cyanogenmod.org/w/Devices#vendor=;
 这个网页包含了cm 支持的所有机型,以及相应的驱动

2 http://wiki.cyanogenmod.org/w/Crespo_Info
 这个网页包含了 crespo 这个设备的编译前需要的各种信息
 其中 最重要的是
 Device https://github.com/cyanogenmod/android_device_samsung_crespo
 Kernel https://github.com/cyanogenmod/android_kernel_samsung_crespo
 这两个包都需要下载,

 其中驱动包:
 下载解压缩以后,放在 cm-10/device/samsung/crespo 其中 crespo 这个文件夹如果没有要新建

 内核包
 下载解压缩以后,放在 cm-10/kernel/samsung/crespo 其中 crespo 这个文件夹如果没有要新建


 另外注意,还有一个硬件包

 https://github.com/CyanogenMod/android_hardware_samsung

 下载解压缩以后,放在 cm-10/hardware/samsung  其中samsung 这个文件夹如果没有要新建



3 http://wiki.cyanogenmod.org/w/Build_for_crespo
 这个网页告诉了如何编译 crespo cm-10.2 这个版本的代码


三 编译源码
1 编译前的准备工作
 cd ~/android/system/vendor/cm
 ./get-prebuilts

2 ./extract-files.sh

首先连接好samsung nexus S 手机,然后来到 cm-10/device/samsung/crepso 这个目录下,执行上面的指令。

这个脚本的主要作用是将手机中的驱动so库pull出来,然后新建 cm-10/vendor/samsung/crespo 这个目录,然后在里面放相应的库文件。
我的手机在执行这个命令的时候,一个错也没有报,如果缺少什么文件的话,见前面的文章,将so库给补齐即可。

3 真正开始编译
 以前lunch 命令再选择编译哪个版本都不需要了,CyanogenMod 已经把这些封装成更简单的命令了

 回根目录后
 export USE_CCACHE=1
 据说这样会加快编译速度

 . build/envsetup.sh
 这个重要 执行成功后,后面的命令才能继续执行
 croot
 brunch crespo
 ok  开始编译了


四 使用刷机工具将rom包刷到手机上,看下效果