TWRP这个是一个老外的开源项目,全称Team-Win-Recovery-Project

Source:https://github.com/TeamWin/Team-Win-Recovery-Project

项目网址:http://teamw.in/project/twrp2

目前更新到 twrp 2.5的版本了。

废话少说,开始讲解如何编译TWRP了

我的工作环境:ubuntu 12.04(推荐) openjdk 源码目录 ~/android/yemod/

机器配置:E1230 v2 8G内存,个人配置

首先你必须要有一份CM代码,不管是CM7,9,10,10.1都可以,这里我使用CM10.1代码(基于android 4.2.2)

如何同步CM10.1代码,请打开搜索引擎搜索,这里就不说明了,或者搜寻我的新浪博客,我原来写过CM7的同步方式

打开终端 cd到你的源码目录里面 比如我的 cd ~/android/yemod/

由于CM自带的是CWM,但今天我们讲的是 TWRP,所以我们需要删除TWRP 输入命令,

rm -rf bootable/recovery1 `

删除了CWM之后,我们把 TWRP的代码同步下来

git clone git://github.com/TeamWin/Team-Win-Recovery-Project.git -b twrp2.4 recovery

这里我们使用分支为 twrp2.4 保存目录为 recovery

代码同步完成之后,我们的初始化工作就搞定了。

下一步就是如何编译适配各种机器的TWRP了

今天我们就拿C8813来做例子吧

首先我们需要拿到官方的固件包UPDATE.APP 或者UPDATA.APP

然后使用脚本解压这个固件包

脚本下载地址:git://github.com/ivan19871002/huawei_firmware_unpacker.git

把脚本和官方固件包放到同一个目录终端输入

./split_updata.pl UPDATE.APP

稍等骚年,会解压出很多文件,有可能脚本解压出来的recovery.img不是你需要的,因为华为不同的机器解压出来的都有不同

一般来说 boot.img 和 recovery.img大小都在4M-10M 之间,system.img 就是最大的,找到了boot.img system.img recovery.img之后

我们可以制作卡刷包,但是今天我们讲的是如何制作TWRP,所以我们只用到recovery.img就行了

大家可以拿厨房去测试,厨房里面有一项是解压recovery.img和boot.img的,拿官方固件解压出来的文件一个一个去解压,如果解压成功的不是boot 就是recovery的img文件

找到解压成功的目录 里面如果存在 boot.img-ramdisk/etc/recovery.fstab 那么就证明 是recovery.img

OK,如果我们拿到了正确的recovery.img我们就开始下一步吧

依然是终端 cd 到源码根目录 执行此命令:. build/envsetup.sh (注:build 前面是个空格然后是 点)

初始化环境,然后执行 make -j4 otatools 编译出需要的工具,机器配置不好的同鞋可能需要时间比较久,不急慢慢等。

编译结束之后我们可以在源码目录/home/ivan/android/yemod/out/host/linux-x86/ 这里看到已经编译出来很多东西了

这个时候依然是在刚刚编译过 otatools的终端,再次执行:

./build/tools/device/mkvendor.sh huawei c8813 /your/path/to/the/recovery.img (recovery.img可以用 boot.img替代)

如果所有都工作正常,你将看到”Done!”这样的确认信息。

ivan@HQW-PC:~/android/cm10$ ./build/tools/device/mkvendor.sh huawei c8813 ./recovery.img

Arguments: huawei c8813 ./recovery.img

Output will be in /home/ivan/android/yemod/device/huawei/c8813

Done

Use the following command to set up your build environment

lunch full_c8813-eng

And use the follwowing command to build a recovery:

. build/tools/device/makerecoveries.sh full_c8813-eng

mkvendor.sh脚本也将在你的android源码树中创建以下目录

huawei/c8813'

如果已经建立成功了,那么我们开始配置吧

打开进入设备C8813设备的目录,使用开始我们解包官方固件中的boot.img-ramdisk/etc/recovery_emmc.fstab 替代 该目录下的recovery.fstab目录

因为C8813使用了EMMC分区格式,所以要使用recovery_emmc.fstab

我们分析一下C8813这个机器的硬件,

CPU架构Armv7

分辨率480*854

EMMC EXT4分区格式5

没有misc分区(从recovery.fstab中可以发现)

OK,分析完了这些之后,我们开始着手配置文件吧

然后打开:BoardConfig.mk 这个文件

因为编译TWRP多了很多需要手动设置硬件方面的配置参数,没有默认设置的,所以我们需要写入这些

# Platform)

TARGET_CPU_ABI := armeabi-v7

TARGET_CPU_ABI2 := armeabi

TARGET_ARCH_VARIANT := armv7

ARCH_ARM_HAVE_TLS_REGISTER := true

ARCH_ARM_HAVE_NEON :=true

ARCH_ARM_HAVE_VFP := true

由于C8813使用的是EXT4分区所以我们还要写入

TARGET_USERIMAGES_USE_EXT4 := true

BOARD_USES_MMCUTILS := true

BOARD_HAS_LARGE_FILESYSTEM := true

我们设置没有select按钮

BOARD_HAS_NO_SELECT_BUTTON := true

分辨率 480*854

DEVICE_RESOLUTION := 480×854

没有misc分区

BOARD_HAS_NO_MISC_PARTITION := true

OK基本配置完毕,开始编译吧;

终端 切换到源码目录,)

. build/envsetup.sh && breakfast c8813

等初始化完毕之后,输入make recoveryimage -j8 (如果机器配置高你可以把 8 改成16,如果机器不行 请设置4 或者以下)

OK教程到此结束

编译TWRP-recovery教程及源码地址相关推荐

  1. FPS教程附带源码 更换基址 编译可用 包括csgo cf

    FPS教程附带源码 更换基址 编译可用 有需要可以联系我 包括csgo cf

  2. NanoPi NEO Air使用七:获取并编译U-boot和Linux的源码

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  3. [译] 论 Rust 和 WebAssembly 对源码地址索引的极限优化

    原文地址:Oxidizing Source Maps with Rust and WebAssembly 原文作者:Nick Fitzgerald 译文出自:掘金翻译计划 本文永久链接:github. ...

  4. C# 读取西门子S7系列PLC教程及源码

    创建 PLC 实例,连接和断开连接 若要创建驱动程序的实例,需要使用此构造函数: public Plc(CpuType cpu, string ip, Int16 rack, Int16 slot) ...

  5. 超简单的pyTorch训练-onnx模型-C++ OpenCV DNN推理(附源码地址)

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为1974字,预计阅读5分钟 前言 很早就想学习深度学习了,因为平时都是自学,业余时间也有限,看过几个pyTorch的入门,都是一 ...

  6. Ubuntu16.04编译Android 6.0系统源码过程简要记录总结

    一,安装VMware Workstation,百度网盘下载(内含注册机) 链接: https://pan.baidu.com/s/1wz4hdNQBikTvyUMNokSVYg 提取码: yed7 V ...

  7. 毕业设计-基于SSM框架大学教务管理平台项目开发实战教程(附源码)

    文章目录 1.项目简介 2.项目收获 3.项目技术栈 4.测试账号 5.项目部分截图 6.常见问题 毕业设计-基于SSM框架大学教务管理平台项目实战教程-附源码 课程源码下载地址:https://do ...

  8. ASP .NET CORE 源码地址

    ASP .NET CORE 源码地址:https://github.com/dotnet/ 下拉可以查找相应的源码信息, 例如:查找 ASP .NET CORE Microsoft.Extension ...

  9. Odoo16 教程含源码

    Odoo16 教程含源码 Odoo16 开发教程 版本变化 模块开发步骤 源码 Odoo16 开发教程 Odoo 号称全球第一的开源ERP平台,除了提供一站式的企业应用开发解决方案,作为一个网站设计器 ...

最新文章

  1. etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具etcdkeeper)
  2. day31 logging 日志模块
  3. Adobe将于2020年末停止对Flash的支持
  4. java shiro原理_Springboot shiro认证授权实现原理及实例
  5. Python 技术篇 - 使用pypandoc库实现html文档转word文档实例演示
  6. python编译安装pyaudio
  7. percona-toolkit 之 【pt-slave-delay】说明
  8. code标签无法渲染html,【菜鸟笔记】记一次django无法正常在ie和edge浏览器渲染html页面-站长资讯中心...
  9. Cesium场景导出为图片
  10. duliu——思维+线段树
  11. Android LiveData组件分析
  12. XTP: 从XTP看Rust与C++接口FFI通信
  13. 西电计算机软件考研,西安电子科技大学软件工程硕士考研
  14. Cookie机制、属性参数
  15. 深度学习(PyTorch)——shape、view、reshape用法及其区别
  16. Android数据库备份和恢复
  17. 苹果手机数据转移到新手机_怎么把旧手机的东西导入新手机?苹果手机数据迁移的几种方法...
  18. 力扣(98.107)补9.10
  19. 关于嵌套滚动机制的一点思索
  20. Linux中fan的含义,Linux 常用命令总结

热门文章

  1. 无锡职业培训——在无锡如何考教师证面试
  2. CAN总线学习笔记(2)- CAN协议数据帧与遥控帧
  3. 深夜服务器挂了,老板给你打电话,如何应对
  4. 基于异构信息网络的元学习冷启动推荐
  5. boseqc35能不能连电脑_BOSE qc35怎么连接电脑?
  6. python cursor游标_精通 Oracle+Python,第 1 部分:查询最佳应践
  7. SCS【3】单细胞转录组数据 GEO 下载及读取
  8. 示波器的使用方法和步骤(正文)
  9. mapper批量插入
  10. 用vs编写html后sel,选择后插入HTML