编译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!”这样的确认信息。
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教程及源码地址的更多相关文章
- http://src.chromium.org/svn/ 定制chrome浏览器教程及源码
chromium 官网登不进去,最近在学习chrome插件制作,网上教程很多大多没有源码 其实作为开源软件 官方提供了全部源码地址:http://src.chromium.org/svn/ PRESU ...
- PHP简单的长文章分页教程 附源码
PHP简单的长文章分页教程 附源码.本文将content.txt里的内容分割成3页,这样浏览起来用户体验很好. 根据分页参数ipage,获取对应文章内容 include('page.class.php ...
- LIRE教程之源码分析 | LIRE Tutorial of Analysis of the Source Code
LIRE教程之源码分析 |LIRE Tutorial of Analysis of the Source Code 最近在做地理图像识别和检索的研究,发现了一个很好用的框架LIRE,遂研究了一通.网上 ...
- GEF入门实例_总结_01_教程、源码、开发环境准备
一.前言 最近在学Eclipse插件开发,发现了一个比较好的GEF入门教程,并且按照教程上的操作,一步步实现了一个入门Demo,在此感谢作者的贡献. 好记性不如烂笔头,故决定总结一下这段时间的学习心得 ...
- 解决AndroidKiller APK 反编译失败,无法继续下一步源码反编译!
报错背景 今天使用AndroidKiller V1.3.1,反编译一个APK,遇到如下报错: 当前 Apktool 使用版本:Android Killer Default APKTOOL 正在反编译 ...
- ASP .NET CORE 源码地址
ASP .NET CORE 源码地址:https://github.com/dotnet/ 下拉可以查找相应的源码信息, 例如:查找 ASP .NET CORE Microsoft.Extension ...
- 编译Docker<v1.9.0>源码和初级安装
本文主要介绍了如何在POWER CPU处理器上编译和安装Docker服务.很多时候,我们都需要自己编译Docker源码,有的时候是由于自己的处理器没有对应的安装包,有的时候是由于当前的新版本还有发布, ...
- Android动画设计源码地址
Android动画设计源码地址 http://blog.csdn.net/shanghaibao123/article/details/45223825
- C#代码反编译 得到项目可运行源码
C#代码反编译 得到项目可运行源码 摘自:http://www.cnblogs.com/know/archive/2011/03/15/1985026.html 谈到"C#代码反编译&quo ...
随机推荐
- CSU 1111 有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园。A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕。C 太太因为正身怀六甲无法加入她们的行动,所以就打算出90元钱
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82974#problem/D 解题思路:本题的意思就是三位均出90,然后AB按做 ...
- Android之路-------Activity的详解
前言 由于接近放假,公司在赶项目所以前段LP比较忙,没什么时间总结和写博客,只是准备睡觉的时候看看书,每天看的不算多,大概10多页左右吧,不过每天坚持如此的话那也是一个庞大的数字. 今天LP的任务完成 ...
- Linux 上使用 Gmail SMTP 服务器发送邮件通知
导读 假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息.邮件信息可能是邮件简报.状态更新(如 Cachet).监控警报(如 Monit).磁盘时间(如 RAID mdadm ...
- python成长笔记
正则表达式 1. 择一匹配:管道符号(|),表示“从多个模式中选择其一”.例:at|home à at.home 2. 点号匹配除了换行符以外的任何字符 3. 边界匹配:\b匹配一个 ...
- Web —— java web 项目 Tomcat 的配置 与 第一个web 项目创建
目录: 0.前言 1.Tomcat的配置 2.第一个Web 项目 0.前言 刚刚开始接触web开发,了解的也不多,在这里记录一下我的第一个web项目启动的过程.网上教程很多,使用的java IDE 好 ...
- ListView列表拖拽排序
ListView列表拖拽排序能够參考Android源代码下的Music播放列表,他是能够拖拽的,源代码在[packages/apps/Music下的TouchInterceptor.java下]. 首 ...
- 安装LVS安装LVS和配置LVS的工作比较繁杂
安装LVS安装LVS和配置LVS的工作比较繁杂,读者在配置的过程中需要非常细心和耐心.在本节我们将对其进行详细地介绍.主要包括如下几个核心步骤:1.获取支持LVS的内核源代码如果读者需要使用LVS,需 ...
- [React] Radium: Updating Button Styles via Props
In a CSS library like Bootstrap we can set a button's style to be "primary" or "secon ...
- 深入分析C++引用
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 关于引用和指针的差别的文章非常多非 ...
- STL之hash_set和hash_map
Contents 1 hash_set和hash_map的创建与遍历 2 hash_set和hash_map的查找 3 建议 一句话hash_set和hash_map:它们皆由Hashtable(St ...