编译TWRP-recovery教程及源码地址

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!”这样的确认信息。

[email protected]:~/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教程到此结束

时间: 2024-10-27 08:57:36

编译TWRP-recovery教程及源码地址的相关文章

http://src.chromium.org/svn/ 教程及源码

chromium 官网登不进去,最近在学习chrome插件制作,网上教程很多大多没有源码 其实作为开源软件 官方提供了全部源码地址:http://src.chromium.org/svn/ PRESUBMIT.py branches/ codereview.settings releases/ trunk/ 安装好TortoiseSVN就可以同步了了,一般我们只关注trunk/,直接把地址复制到TortoiseSVN就行了 SVN中tag branch trunk用法详解 2010-05-24

Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

一.前言 在之前的破解过程中可以看到我们唯一离不开的一个神器那就是apktool了,这个工具多强大就不多说了,但是如果没有他我们没法涉及到后面的破解工作了,这个工具是开源的,也是使用Java语言开发的,代码相对简单,我们今天就来分析一下他的大体逻辑,注意是大体逻辑哦,因为如果要一行一行代码分析,首先觉得没必要,其次浪费时间,有了源码,谁看不懂呢.至于为什么要分析这个工具其实原因只有一个,就是我们在之前的反编译过程中会发现,总是有那么几个apk应用不让我们那么容易的反编译,他们就利用apktool

编译Android 4.4.2源码

在之前的文章中,和大家分享了在天朝下下载android 4.4.2源码的过程(详见下载android4.4.2源码全过程(附已下载的源码)),现在写下编译的笔记. 虽然在android doc中,有提到可以用open jdk来编译,见:https://source.android.com/source/initializing.html,描述如下: Installing the JDK The master branch of Android in the Android Open Source

【【分享】深入浅出WPF全系列教程及源码 】

因为原书作者的一再要求,在此声明,本书中的部分内容引用了原书名为<深入浅出WPF>的部分内容,假设博文不能满足你现有的学习须要,能够购买正版图书! 本人10月份提出离职,可是交接非常慢,预计年底才会交接完,趁着交接之际,自学了一下WPF,由于这是微软未来的发展趋势,自WIN7以来包含前不久公布的WIN8,核心还是WPF,在此,将自己的学习成果做一个总结,同一时候将自己学习积累的东西和广大博友分享,希望大家能共同进步.在文章的结尾我会将全系列的源码地址提供给大家,有须要的朋友能够下载下来自己研究

在Eclipse上编译运行andorid4.3图库源码

一.源码获取 源码地址:android4.3图库源码 二.环境搭建 Eclipse+SDK+NDK 三.编译运行 导入源码时,要特别注意架包的导入,以及JNI环境的配置,否则某些功能可能会有bug. 运行后效果图如下:

GEF入门实例_总结_01_教程、源码、开发环境准备

一.前言 最近在学Eclipse插件开发,发现了一个比较好的GEF入门教程,并且按照教程上的操作,一步步实现了一个入门Demo,在此感谢作者的贡献. 好记性不如烂笔头,故决定总结一下这段时间的学习心得. 二.PDF教程与源码 1.源码地址 https://github.com/shirayner/gef.tutorial.step 2.PDF教程 打开1中链接,PDF教程在doc目录下 三.准备开发环境 1.JDK1.8 我使用的是JDK1.8,最好保持一致,不过1.6以上版应该都没有问题. 2

区块链教程以太源码分析accounts账户管理分析

区块链教程以太源码分析accounts账户管理分析. 数据结构分析 ETH的账户管理定义在accounts/manager.go中,其数据结构为: // Manager is an overarching account manager that can communicate with various // backends for signing transactions. type Manager struct { backends map[reflect.Type][]Backend /

解决AndroidKiller APK 反编译失败,无法继续下一步源码反编译!

报错背景 今天使用AndroidKiller V1.3.1,反编译一个APK,遇到如下报错: 当前 Apktool 使用版本:Android Killer Default APKTOOL 正在反编译 APK,请稍等... >I: 使用 ShakaApktool 2.0.0-20150914 >I: 正在加载资源列表... >I: 反编译 AndroidManifest.xml 与资源... >I: 正在从框架文件加载资源列表: C:\Users\lijie01\apktool\fr

在Eclipse配置并编译worldwind java2.1.0源码,选中Src目录下gov.nasa.worldwindx.examples包下ApplicationTemplate.java类文件run时提示“javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V”异常的解决办法

问题现象: 在Eclipse配置并编译worldwind java2.1.0源码,选中Src目录下gov.nasa.worldwindx.examples包下ApplicationTemplate.java类文件run时提示“javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V”异常. 解决办法: 1.定位到报错的方法为WWXML.java文件中的createDocumentBuilder方法: pub