1. 同步cm10.1的源码,具体操作请百度之~~

2. 打开终端,到源码目录下:

cd Android/cm10.1                   //我的源码目录

3. 如果不想使用cm10.1的英文源码,可以按如下操作获取我的recovery汉化源码:(如不需要,请直接下一步!)

rm -rf bootable/recovery         //删除原来的cm10.1的recovery源码

git clone git@github.com:APAR1992/CWM_Recovery_v6037_cn.git bootable/recovery      //获取我的recovery源码

我有源码,就不执行上面这句了,直接复制一下~~

4. 获取你的机子的recovery.img(原厂的或者别人编译的也行),具体请自己搞定,线刷包里面有,没有的自己想办法提取,

这儿就不说了。为了方便,将名字改为你的机子的型号(eg:G6.img),然后将其放到主目录(~/G6.img)。

放到其它目录也行,按自己情况随便放吧。

5. 在源码目录执行如下语句生成 otatools ,下一步会用到:

make otatools -j4       //注意空格,后面的 -j4 可以视你的电脑配置而定,电脑配置不行就不加或者 -j2 ,

电脑配置好点呢就 -j8 或者 -j16 ,你可以试试,不过太大了电脑会卡死~~

执行这步可能需要比较长的时间,有可能在1小时左右,请耐心等待(已经编译过的,请直接下一步!)

otatools编译完成之后还需要把 out/host/linux-x86/bin 文件夹加入到环境变量中去,这个请百度一下吧,

ubuntu直接在主目录下终端执行 gedit .bashrc ,打开修改就行了,网上都有,按情况添加就行了,其他linux版本可能没有

~/.bashrc 文件,可以加到/etc/environment 里面,都是一样的效果

完了之后执行  source .bashrc (source /etc/environment)  使修改生效,重启一下也是可以的~~百度都有,就不详细说了

我已经有了,所以这一步就不用执行了,跳过~~

6. 执行如下语句生成你的机型device:

./build/tools/device/mkvendor.sh XiaoCai G6 ~/G6.img      //(cpio: 归档非正常终止 )不用管,mtk的就这样,不影响编译。

请注意命令中的空格,不要打错!!!

生成device文件了~~~好像没什么可说的~~

7. 修改你的机子的device,主要是改BoardConfig.mk ,因为只是编译recovery,所以稍微修改一下就可以了。

可以打开 recovery/README.md 查看需要额外添加的语句。加上我上面加的那两句就行了,其他可以不用管。

还有一个要改的就是分区表 recovery.fstab ,这个没法说清楚,请查看自己机子的分区对应修改!

可以看一下我给别的机子改的分区表,大概就那个样子,按照自己的机子分区改一下就行了~~

8. 然后就可以编译了,为了方便,可以在你的机型目录下新建一个 vendorsetup.sh 。并且在里面写上你的机型。

打开你的机型文件夹,然后右键新建文档,改名 vendorsetup.sh ,打开修改,按情况在里面加上一句:

add_lunch_combo cm_G6-eng 。下一步在lunch的时候就会有你的机型了。

9. 开始编译,执行如下命令:

. build/envsetup.sh(或者 source build/envsetup.sh)        //执行这句很重要!   一般还是执行source build/envsetup.sh 这句吧

lunch       // lunch,然后选择你的机型,输入序号即可

make recoveryimage -j4      //注意空格,回车之后就开始编译了。(我i5-2450的处理器,-j8还行,不会卡爆~~)

应该是在加载文件,所以有点慢,请等待~~  之后CPU会满载进行编译~~

只要不出现error ,不停止就没问题,直接编译完成就行了~~大概需要3分钟左右吧~~

刚才看到的那些chinese一段是在执行汉化脚本的编译~~

10. 编译完了~~高通的一般能直接使用,mtk的需要另外处理(具体请自己搞吧~~)

G6/recovery/root里面的文件就是编译生成的,mtk的经过重新打包就能用了。我不写了,上课去~~

刷入之后有问题的,比如无法挂载分区,无法挂载U盘等等的,请检查分区表配置文件!

编译cwm-recovery(含部分修改步骤)[转]的更多相关文章

  1. MTK Recovery 模式横屏修改(适用于6.0 + 8.1)

    修改前 修改后 6.0 Recovery 模式横屏修改方法 修改相关文件 bootable\recovery\minui\Android.mk bootable\recovery\minui\mt_g ...

  2. 使用autotools工具用configure、make、make install编译安装linux工程的详细步骤

    使用autotools工具用configure.make.make install编译安装linux工程的详细步骤 转载tmxkwzy 最后发布于2016-11-24 10:20:15 阅读数 324 ...

  3. Gcc的编译流程分为了四个步骤:

    http://blog.csdn.net/xiaohouye/article/details/52084770(转) Gcc的编译流程分为了四个步骤: 1.预处理,生成预编译文件(.文件): Gcc ...

  4. gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解

    摘自http://blog.csdn.net/elfprincexu/article/details/45043971 gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解 C和C+ ...

  5. Qt与VS2005/2008的完美配合(自己编译Qt4.5.1的详细步骤)

    介绍 用过Linux的人想必都知道Qt(不是QuickTime,呵呵)这个名称,KDE就是用Qt写的,我也是接触Linux后才认识它的. Qt原先是奇趣科技TM(Trolltech)的产品,由Haav ...

  6. 记录魅族m1note编译TWRP recovery 3.1.0-0,包括mtk机型的处理方法

    1.安装64位linux系统,我用的是deepin os 15.3 2.将系统升级到最新版本 sudo apt-get update && sudo apt-get upgrade 3 ...

  7. Spark Tachyon编译部署(含单机和集群模式安装)

    Tachyon编译部署 编译Tachyon 单机部署Tachyon 集群模式部署Tachyon 1.Tachyon编译部署 Tachyon目前的最新发布版为0.7.1,其官方网址为http://tac ...

  8. VS2003编译后的网站如何修改代码

    VS2003编译后的网站,如果没有源代码,而要修改里面的代码时,可以以以下方式解决: 反编译dll,把找出cs代码文件,然后重新建一个类项目,把此文件中的代码修改后重新生成dll,放在编译的网站中的b ...

  9. C# 反编译-Reflector 反混淆-De4Dot 修改dll/exe代码-reflexil

    反编译工具 Reflector 破解版下载地址:http://pan.baidu.com/s/15UwJo 使用方法:略 反混淆工具De4Dot 开源软件 下载地址http://pan.baidu.c ...

随机推荐

  1. PowerShell 转码函数 Default->UTF8

    $chs='你好' function converToUft8($str){ $bs=[System.Text.Encoding]::Default.GetBytes($str); $u8Char=[ ...

  2. 关于Android读取不同位置(drawable,asset,SDCard)的图片资源的总结

    方式一: 已将图片保存到drawable目录下,通过图片id获得Drawable或者Bitmap,此方式最常用.(若只知道图片的名称,还可以通过图片的名称获得图片的id) (1)通过图片id获得Dra ...

  3. Android 使用Post方式提交数据(登录)

    在Android中,提供了标准Java接口HttpURLConnection和Apache接口HttpClient,为客户端HTTP编程提供了丰富的支持. 在HTTP通信中使用最多的就是GET和POS ...

  4. MFC基本框架

    MFC基本框架 By  小戴 发表于 2006-12-21 15:59:00  MFC 应用程序框架 1. MFC 简介: MFC ( Microsoft Foundation Class )是由 ...

  5. Java批量处理数据

    要求:共1000条数据,第一次批量插入100条,第二次批量插入101到200条,依次插入数据: 实现方式这里选择了两种常用的方式,都是使用List操作: 第一种实现思路如下: <1> 原先 ...

  6. 数组、List和ArrayList的区别

    有些知识点可能平时一直在使用,不过实际开发中我们可能只是知其然不知其所以然,所以经常的总结会对我们的提高和进步有很大的帮助,这里记录自己在工作之余的问题,持续更新,欢迎高手斧正. 数组.List和Ar ...

  7. POJ-2240

    Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 19063   Accepted: 8069 Descri ...

  8. npm 模块安装机制简介

    npm 是 Node 的模块管理器,功能极其强大.它是 Node 获得成功的重要原因之一. 正因为有了npm,我们只要一行命令,就能安装别人写好的模块 . $ npm install 本文介绍 npm ...

  9. Java编程思想-第四章练习题

    练习1:写一个程序,打印从1到100的值 public class Print1To100{ public static void main(String args[]){ for(int i = 1 ...

  10. Android笔记(二):从savedIndstanceState发散

    savedIndstanceState savedIndstanceState位于ActivityonCreate(Bundle savedInstanceState)方法的参数中.对这个参数的理解要 ...