原文链接:http://forum.xda-developers.com/showthread.php?t=1866545

你必须使用32位或64位Ubuntu系统,关于如何建立编译环境和同步源码的指导,请自己查找有关指导的文章。

1,

安装所需要的包

2,

建立编译的环境,并同步CWM所需的源码,CyanogenMod源码中附带CWM源码

CWM 5 - Gingerbread
CWM 6 - Jellybean

3,

下面我们进入真正的编译阶段,确保你已经使用“repo sync ”命令同步了最新的源码

进入源码的目录

放出以下命令:

     make -j4 otatools

3.5,

如果你的机型不被CM10官方支持,请执行这一步

在你的手机终端上执行以下命令,

dump_image boot /sdcard/boot.img

这将boot镜像导出到你手机的sdcard,复制该镜像至你的home目录下

为一款新设备编译android源码,需要建立相应的配置文件和makefile文件,这通常比较麻烦,如果仅仅编译recovery镜像,会容易的多。在android源码根目录下(假设已运行envsetup.sh),运行以下命令(使用适当的名称取代命令中的名称)

build/tools/device/mkvendor.sh device_manufacturer_name device_name /your/path/to/the/boot.img

例如,你拥有Samsung Galaxy Ace这款设备,你应该使用以下这条命令

build/tools/device/mkvendor.sh Samsung cooper ~/boot.img
 
Please note that Cooper is the device name. Only use "~/boot.img" if you have the boot image in your home directory. Or else please specify the correct path.

如果所有都工作正常,你将看到"Done!"这样的确认信息。mkvendor.sh脚本也将在你的android源码树中创建以下目录:

manufacturer_name/device_name

4,

现在你已经拥有相关的配置文件

在源码目录下,在terminal终端下键入以下命令

. build/envsetup.sh

这一步将为你建立编译环境

现在使用这条命令

lunch full_device_name-eng

这将为你的设备建立起build system。用文件管理器或IDE打开目录,你应该拥有以下文件: AndroidBoard.mk, AndroidProducts.mk, BoardConfig.mk, device_.mk, kernel, system.prop, recovery.fstab, 和 vendorsetup.sh

对你感兴趣的应该是recovery.fstab和kernel这两个文件,kernel这个文件是你之前从boot.img文件中提取出的。recovery.fstab将适用于大部分拥有 mtd, emmc,或者其他分区的设备。如果没有,recovery.fstab将需要优化以支持加载这些点。例如 /sdcard被加载至/dev/block/mmcblk1p1,

你需要将下面这段加入到你的BoardConfig.mk文件中

/sdcard vfat /dev/block/mmcblk1p1

一旦recovery.fstab已经适当的装载,你可以开始下一步了

5,

现在,我们开始编译Recovery

make -j4 recoveryimage

这个命令用于编译recovery镜像

你能使用这个命令

make -j4 recoveryzip

用于建立一个临时的recovery.zip刷机包在你真实的设备上测试

你编译好的recovery可以在"your_source_directory/OUT/target/product/device/recovery.img"目录下找到。而.zip刷机包可以在相同目录下的utilities文件夹下找到。

如果各项测试正常,就可以有一个成功的recovery

一旦你编译通过了recovery,通知"koush",在Github上,他就能根据你的编译文件发放官方版的CWM Recovery,并使Rom Manager提供相应的支持。

小贴士:

如果你想编译CWM6,使用以下命令同步jellybean分支源码

repo init -u git://github.com/CyanogenMod/android.git -b jellybean
 
repo sync

如果你改变了BoardConfig.mk文件,在编译期间运行"make clobber",否则你做的更改就不会生效。

如果你在32位系统上编译CWM6,你需要同步以上源码,更多信息请参考readme。

如何编译CWM Recovery相关推荐

  1. 华为G520联通版 第三方CWM Recovery刷机系统 可充电可U盘模式

    前言: 要刷Recovery,需要机器官网解锁     点击此处进入 华为官方解锁地址 刷入recovery之后就可以刷机了 刷入方法: 1. 首先电脑需要安装好adb工具 2. 方法:解压adb工具 ...

  2. Linux的recovery分区编译,Recovery移植之高级小白教程——Recovery的编译

    目前一直在学习源码方面的知识,前段时间刚刚搞定了recovery的移植.这方面的资料真实少之又少啊,谷歌了几天,文章也就那几篇而已,更别提国内的资料了.你让我们热爱学习的小白情何以堪.于是乎就开始动手 ...

  3. 编译recovery及过程中的部分错误解决

    你必须使用32位或64位Ubuntu系统,关于如何建立编译环境和同步源码的指导,请自己查找有关指导的文章. 1, 安装所需要的包 2, 建立编译的环境,并同步CWM所需的源码,CyanogenMod源 ...

  4. 泛泰A880 Recovery

    CWM Recovery 中文版说明 --------------------------------------------------------- 1.仅适用于A880,系统版本4.2 2.基于 ...

  5. android分区知识,特别的recovery分区的构成

    第一部分,android的分区构成 1,分区介绍第二篇 1. bootloader   当我们拿到一款手机,第一件事应该就是按下电源键开机,那么从开机到进入到桌面程序这中间发生了些什么呢,我们从下面这 ...

  6. 三星(samsung)手机i699内容:解锁boot loader,刷recovery,刷机(刷rom),root综合教程

    此文为本人原创 1.1 手机和电脑(linux)比较: 启动过程比较: android启动过程: 1 Boot ROM > 2 Boot Loader > 3 正常模式:加载Kernel ...

  7. 【cofface作品】中兴U880 recovery 5.0.2.8中文版

    本recovery基于CWM Recovery 5.0.2.8汉化,修复U盘挂载模式. 免责声明: --------- * 本Recovery已在本人机器测试通过,纯属个人兴趣自制,非官方recove ...

  8. 移植recovery

    目前一直在学习源码方面的知识,前段时间刚刚搞定了recovery的移植.这方面的资料真实少之又少啊,谷歌了几天,文章也就那几篇而已,更别提国内的资料了.你让我们热爱学习的小白情何以堪.于是乎就开始动手 ...

  9. 下载AOSP源码编译、调试、刷机

    一.准备工作 系统最好是Linux或者mac OS(本文基于Ubuntu). Ubuntu设置永不休眠,在setting中搜索power.blank-screen选择never. 一块大一点儿的硬盘, ...

  10. Android APK+Dex文件反编译及回编译工具(APKDB)v.1.9.2 正式版

    http://idoog.me/?p=1913 [Android APK+Dex文件反编译及回编译工具 (APKDB)v.1.9.2 正式版] <APK+Dex文件反编译及回编译工具> 简 ...

最新文章

  1. NSNumber 以及NSInteger,NSNumber以及Int的区别
  2. [C++STL]string容器用法介绍
  3. [AT2699]Flip and Rectangles
  4. 源码解析Spring Boot2默认数据库连接池HikariCP(高性能原因分析)
  5. AI为癌细胞杀手“染色”,辅助医生选择治疗方案 | 附论文
  6. yum grouplist 安装gnome桌面环境
  7. 【有利可图网】字体设计:英文字体的气质和选用详解(二)
  8. android 文本滚动显示,Android 文本内容滚动显示
  9. Latex 自定义命令与环境、箱子
  10. arduino遥控器控制灯开关以及亮度
  11. Excel合并两列并自动换行
  12. Win10注册表无法保存对权限所作的更改拒绝访问
  13. 宝塔linux输入bt,Linux宝塔面板如何挂载硬盘?BT宝塔面板磁盘挂载超简单教程来了!...
  14. python 离线翻译软件_Python使用tkinter制作在线翻译软件
  15. 2022-2028全球与中国重型封箱机市场现状及未来发展趋势
  16. google的十大搜索技巧
  17. 关于解决SpringBoot中使用redirect重定向后,页面跳转后ulr地址后面出现jsessionid=xxxxxxx的问题
  18. 钉钉小程序上传附件(PDF等非媒体文件)至第三方文件服务器(企业内部应用)
  19. dell 去鼠标版功能widnows
  20. weblogic12C如何解决AdminServer.lok问题

热门文章

  1. java求职简历建议
  2. fluent瞬态计算终止条件在哪里设置_workbench 热传导及热应力计算
  3. 一文讲清楚【KL距离】、【torch.nn.functional.kl_div()】和【torch.nn.KLDivLoss()】的关系
  4. 川崎机器人f控制柜接线图_东莞Kawasaki机器人控制柜维修中心
  5. javascript代码混淆的原理
  6. java-jsoup爬虫
  7. 数据中心机房建设方案
  8. 电脑桌面数字时钟c语言,DesktopDigitalClock(桌面数字时钟)
  9. 冷高轮时间王思聪吃热狗电脑屏幕保护下载
  10. JAVA获取word书签内容_Java 操作Word书签(一):添加、删除、读取书签