编译环境搭建
1. Ubuntu11.04 32位机器
2. JDK下载及环境变量配置
vim /etc/profile(我将环境变量都配到了/etc/profile里,下同)
在文件中export 。。。。
3. 下载Android SDK
因为编译源码时,会用到adb
下载Android SDK包,解压即可。
export PATH=${PATH}:<你sdk的目录>/tools
4. 安装需要的软件
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 pngcrush schedtool
CyanogenMod源码下载
1. Repo的安装
repo的安装比较方便,之需要下载一个文件,并设置成可执行权限,并添加到系统环境中去即可,具体命令如下:
创建目录:
cd ~
mkdir bin
配置环境变量:
export PATH=$PATH:~/bin
安装Repo
curl http://android.git.kernel.org/repo > ~/bin/repo
chmod a+x ~/bin/repo
2. 下载源码
a) 创建源代码目录:
cd ~
mkdir CyanogenMod
cd CyanogenMod
b) 在cyanogenmod目录执行repo命令,设定需要同步的源码内容:
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
说明:网址即为cyanogenmod的地址,-b表示我们选择需要同步的分支,cyanogenmod有不少分支,比如dount,eclair, froyo,我们目前需要编译的是2.3,即gingerbread,则通过-b gingerbread来选择2.3的分支。
c) 在配置过程中,会让你选择名字和邮箱,这个会显示在你最后编译出来的rom
的基础信息里,可以选择你喜欢的来写
d) 配置完成后,就可以开始同步源码了:
repo sync -j16
e) 说明:这里说一下repo sync 这个过程那是相当的慢的。使用repo sync -jn,n表示同时打开的网络链接数,开启多个网络连接来下载,这样速度会有所提升的
编译环境的设置
1. 编译环境的建立
同步完源码后,首先需要建立编译环境,CM的源码把这些命令都写成了脚本,我们只需运行相应的脚本即可,首先,先cd到源码的根目录,然后执行如下命令:
./build/envsetup.sh
lunch cyanogen_generic-eng
2. 专属文件的提取(针对不同设备,本人只是刷了模拟器)
a) 虽然Android系统是开源的,但有部分Dream的专属文件是不开源的,所以并不包含在源码树中。但如果希望rom能在Dream真机上运行,又需要这些文件,所以需要将这些文件提取出来
b) 首先你要确保安装成功了上述所有软件,然后,将Dream通过usb连接到电脑上。
c) cd到源码的/vendor/htc/dream_sapphire目录,然后执行脚本:
./extract-files.sh
d) 这个操作会调用adb命令,从你的手机里pull所需要的专属文件到vendor目录。
3. 编译文件的修改(本人没进行此操作,直接全部编译)
a) 默认的编译过程包含了所有的语言和程序,但其实我们并不需要这些,可以通过编译文件的修改来定义需要输出的语言和软件
b) 打开/vendor/cyanogen/products 目录下的cyanogen.mk文件,里面定义了要输出的软件和语言,对于不需要的软件,可以直接删除。但不建议在这里修改,可以从最后的输出目录里删除不需要的,直接在这里改容易出错
c) 在文件的最后,有一行”PRODUCT_LOCALES”,这里就包含了rom支持的语言类型,默认有几十种,编译出来后,软件会比较大,一般我们只需要保留其中的常用语言即可,笔者选择保留了en_US,zh_CN和zh_TW这三种语言,编译出来的软件就小了很多。
CyanogenMod编译
源码的根目录,下执行
mka
重要:在编译前先执行make update-api,在执行mka进行编译,否则会报错,具体原因是CM中添加了新的API 。
编译结束后,在out/target/product目录下回出现三个镜像文件ramdisk.img system.img 和 userdata.img
若在该目录下执行
emulator -system system.img -data userdata.img -ramdisk ramdisk.img
模拟器启动会出现黑屏
重要:安装上述方法执行后,模拟器黑屏
解决办法:在CM源码中找到kernel-qemu-armv7,位置在~/prebuilt/android-arm/kernel/kernel-qemu-armv7
将它拷贝到镜像文件的相应目录,执行如下命令:
emulator -system system.img -data userdata.img -ramdisk ramdisk.img -kernel kernel-qemu-armv7
分享到:
相关推荐
CyanogenMod编译环境的搭建和可刷机文件的编译及打包
CyanogenMod android平台 android 4.0 launcher 2 源码 eclipse可以编译. 经过大量修改: 它支持android 4.0 系统, 它支持android 4.1 系统. 均通过真机测试. 联系我获得技术支持.
IT168_NOVA微博请务必关注,特别感谢CyanogenMod的源码 如需转载或者修改请复制本帖说明前两段,如果做到此处说明,IT168_NOVA开发组欢迎你 更新说明 1、此ROM是移植CyanogenMod7.1而来, Android版本为2.3.7, 内核...
下载刷机包,复制到设备的SD卡中; 2。设备进入 CWM/TWRP Recovery(原厂 Recovery 不能刷); 3。在 Recovery 中将刚刚复制到 SD 卡的刷机包刷入; 4。重启设备,更新完成。 〖方法②〗:手动替换 1、手动替换的...
本代码使 Android 系统能够自动挂载 NTFS 与 exFAT...使用的是 CyanogenMod 10.1 的源代码,并在 Samsung GT-I9100 上测试通过。 具体编译说明请参考 http://http://blog.csdn.net/hackpascal/article/details/8850688
第十六期 CyanogenMod 小米3W刷机《手机就是开发板》-附件资源
CyanogenMod 入门 要开始使用 Android/CyanogenMod,您需要熟悉 。 要使用 CyanogenMod 树初始化本地存储库,请使用如下命令: repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0 然后将 local_...
CyanogenMod 驱动程序和包装器实现_C++_代码_相关文件_下载
IT168_NOVA微博请务必关注,特别感谢CyanogenMod的源码 如需转载或者修改请复制本帖说明前两段,如果做到此处说明,IT168_NOVA开发组欢迎你 =====================================================================...
类别 图形相关 版本2.0.00 时间2014-10-16 大小6.41MB 语言英文, 中文 简介 简介 《Cyanogenmod相机》让你拍照,录制...在你拍好照片之后,全新的图库应用将会通过组织拍照地点和时间来帮你记住你生活中的美好瞬间。
特别说明:两个包下载后,用haozip解压缩 ,用线刷,不能卡刷 (c) Google & Cyanogen9 R1 (p) IT168_NOVA_Patchers (r) http://lephone.it168.com ==============================================================...
特别说明:两个包下载后,用haozip解压缩 ,用线刷,不能卡刷 (c) Google & Cyanogen9 R1 (p) IT168_NOVA_Patchers (r) http://lephone.it168.com ==============================================================...
特别说明:两个包下载后,用haozip解压缩 ,用线刷,不能卡刷 (c) Google & Cyanogen9 R1 (p) IT168_NOVA_Patchers (r) http://lephone.it168.com ==============================================================...
IT168_NOVA微博请务必关注,特别感谢CyanogenMod的源码 如需转载或者修改请复制本帖说明前两段,如果做到此处说明,IT168_NOVA开发组欢迎你 =====================================================================...
纯CyanogenMod 13
CyanogenMod文件管理器AOSP的文件管理器,专注于植根设备,是专门为CyanogenMod项目设计的。 此源是根据许可条款发行的。 访问和以获取源代码和补丁。 版权所有:copyright:2012 The CyanogenMod Project
纯氰Mod 13
本代码使 Android 系统能够自动挂载 NTFS 与 exFAT...使用的是 CyanogenMod 10.1 的源代码,并在 Samsung GT-I9100 上测试通过。 具体编译说明请参考 http://http://blog.csdn.net/hackpascal/article/details/8850688
下载刷机包,复制到设备的SD卡中; 2。设备进入 CWM/TWRP Recovery(原厂 Recovery 不能刷); 3。在 Recovery 中将刚刚复制到 SD 卡的刷机包刷入; 4。重启设备,更新完成。 〖方法②〗:手动替换 1、手动替换的...