Android 第三方ROM CyanogenMod 源码下载,编译,刷机

转自: http://blog.csdn.net/androiddevelop/article/details/8661120

一、 背景介绍

        当前文章是记录自己HTC G12下载,编译,刷入手机   CyanogenMod  7.1稳定版 Android源码2.3.7,CM 最新也支持Android 4  的版本,只要是CM支持的手机和系统版步骤都是一样的,应该只有下载选择分支时不同,如果想在其他手机编译刷不同版本也可以参考。


二、配置环境

名字版本说明
Ubuntu12.04 LTS 32由于是Android 2.3系统限制必须使用32位,如果是Android 4支持64位系统
SDK   《安装配置Android SDK》
USB连接手机    《配置识别Android手机》


三、下载CyanogenMod 源码

1. 安装编译所需软件,包括JDK

  1. sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-6-jre openjdk-6-jdk pngcrush schedtool libxml2 xsltproc  

2. 创建源码下载保存目录

  1. $ mkdir -p ~/bin  
  2. $ mkdir -p ~/android/system  

3. 下载repo命令工具

  1. $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo  
  2. $ chmod a+x ~/bin/repo  
  3. $ export PATH=${PATH}:~/bin  

4.初始化repo参数

  1. $ cd ~/android/system/  
  2. $ repo init -u git://github.com/CyanogenMod/android.git -b 分支名  

首先看分支是否支持你的手机,查看方法。。。。

我使用的是

  1. // 此分支支持G12  
  2. $ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread-release  

5. 下载源码

 可以直接直接通过命令repo sync下载源码,但是由于伟大的母亲把Android 源码相关的网站都墙了,这得多想我们进步啊。。。,可以通过以下脚本下载,目的是如果下载失败自动重新请求下载

  1. #!/bin/bash  
  2. echo "======start repo sync======"  
  3. repo sync  
  4. while [ $? == 1 ]; do  
  5. echo "======sync failed, re-sync again======"  
  6. sleep 3  
  7. repo sync  
  8. done  

下载成功显示如下,连着开机2天才下载完,这个完全拼人品,之前下载Android官网源码,一次一晚上,第二次下载就用了一星期。。。。



四、编译CyanogenMod 源码

1. 配置Rom Manager,用于把Rom管理相关的app加载并安装。

  1. $ cd ~/android/system/vendor/cyanogen  
  2. $ ./get-rommanager  

2. 编译配置

  1. $ cd ~/android/system/  
  2. $ source build/envsetup.sh  
  3. $ lunch  

source build/envsetup.sh 执行后截图:



lunch执行后截图:



不同机型选择模式不同,我当前选择

  1. $ lunch htc_saga-userdebug  

可能会出现以下异常:
  1. build/core/product_config.mk:194: *** _nic.PRODUCTS.[[vendor/cyanogen/products/cyanogen_olympus.mk]]: "device/motorola/olympus/olympus.mk" does not exist。 停止。  
  2.   
  3. ** Don't have a product spec for: 'htc_saga'  
  4. ** Do you have the right repo manifest?  

我要想配置的是HTC手机,显示motorola olympus 摩托罗拉olympus 款配置有问题? 跟我没啥关系,既然出错删除相关的代码不让读取相关配置文件。
  1. $ cd ~/android/system/vendor/cyanogen/products/  
  2. // 按照上面错误提示,删除下面一行,保存  
  3.     $(LOCAL_DIR)/cyanogen_olympus.mk \  

重新lunch , 如果正常显示如下:



3. 提取手机配置文件

需要先连接手机,最好先设置下出厂设置(注意:设置出厂设置会清空联系人及手机所有自己安装的软件,一定要先做好备份再执行此操作)

验证是否ADB成功连接手机,可以在命令行输入

  1. $ adb devices  
  2. List of devices attached  
  3. // 如果没有如下显示,说明SDK安装和配置有问题  
  4. SH***TJ06**1    device  


  1. // 提起G12手机配置文件目录  
  2. $ cd ~/android/system/device/htc/saga  
  3. // CM支持手机只是上面目录不同,都通过以下命令提取  
  4. $ ./extract-files.sh  

4. 配置CCAHE,如果仅编译当前一次,之后不打算再编译也可以不配置

  1. $ export USE_CCACHE=1  

ccache 介绍 -- 高速的C/C++编译工具 
     ccache(“compiler cache”的缩写   官方网站    )是一个编译器缓存,该工具会高速缓存编译生成的信息,并在编译的特定部分使用高速缓存的信息, 比如头文件,这样就节省了通常使用 cpp 解析这些信息所需要的时间。如果您编译清单 2 中的文件,假定   foobar.h   中包含对其他头文件的引用,ccache 会用那个文件的 cpp-parsed 版本来 取代   include  声明。就那么简单。不是真正去读取、理解并解释其内容,ccache 只是 将最终的文本拷贝到文件中,使得它可以立即被编译。

   如果不需要再次编译Android可以不配置ccache,初次编译使用ccache会减低些速度,但是要是重新编译的会会提升5~10倍速度。
   如果想了解更多使用,可以参考 ccache使用教程


5. 开始Build

  1. $ croot  
  2. $ brunch saga  

如果提示没有croot,brunch,lunch命令,需要再次执行步骤 (四.2编译配置)


6. 生成zip文件   

  1. // 编程成功后生成zip文件  
  2. ~/android/system/out/target/product/saga/update-cm-7.1.0-DesireS-KANG-signed.zip  


五、刷机

1. 手机恢复出厂设置(注意:设置出厂设置会清空联系人及手机所有自己安装的软件,一定要先做好备份再执行此操作)


2. 把生成的zip文件拷贝到SD卡中


3. 进入Recovery模式,不同机型可能进入方式不同,

  1. HTC Desire S(G12)  
  2. 音量下键+开机键  
  3. 进入HBOOT界面后,音量键将光标移动到Recovery选项上,按电源键选择  


4. 清理手机数据,之前设置出厂设置也可以省略此步骤
  1. 在蓝色recovery界面依次执行,音量键选择,电源键确认。  
  2. wipe data/factory reset——Yes——delete all user data.  
  3. wipe cache partition——Yes-Wipe Cache.  


5. 选择zip文件进行安装
  1. 依次执行,音量键选择,电源键确认。  
  2. install zip from sdcard.  
  3. choose zip from sdcard.  
  4. update-cm-7.1.0-DesireS-KANG-signed.zip  
  5. Yes-install update-cm-7.1.0-DesireS-KANG-signed.zip  
  6. 等待完成后点击返回键,选择Reboot system now手机会自动重启。  


搞定,有图有真相



六、参考资料

1. CM官方文档  How to Build CM for the Desire S


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值