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包刷到手机上,看下效果