[TOC]
How to compile twrp
一、前言
在很久之前就有了自己编译 twrp 和 rom 的想法,但碍于设备条件,一直没有机会实现。刚好这段时间有空,就开始查阅资料实现。
二、硬性要求
- 具有一定的科学上网能力。(必须!!!!)
- 硬盘空间 >= 200G。
- 会基本的Linux命令操作
- 运行内存>=16G(推荐16G以上,当然差的不是很多可以通过增大swap分区来解决)
三、教程正文
配置好Ubuntu环境
- 配置虚拟机或者Windows安装虚拟机都可以。网上关于此的教程较多,在此不进行过多的赘述。Ubuntu版本推荐 18.04或 22.04(自用版本)
安装必要的软件依赖
把apt 的源更换为国内的镜像
```shell
安装一些必要的依赖
sudo apt install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev git
可选 这两个工具是为了可以刷入手机
sudo apt install adb fastboot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
3. 配置git(如果你没有配置过请配置)
1.
3. 下载 repo 工具。
1. 使用清华源安装 [教程](https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/)
1. ```shell
# 下载
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
mv repo ~/usr/bin/
#or mv repo ~/bin/
# 将以下内容写入 ~/.bashrc 文件内
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
# 重启终端模拟器- 查看 PATH 可使用 echo $PATH 命令
- .bashrc 文件(bash rc-running configuration)这个文件主要保存个人的一些个性化设置,如命令别名、路径等。也即在同一个服务器上,只对某个用户的个性化设置相关。普通用户为 /home/用户名/ 目录,root 为 /root/ 。改文件在==每次启动bash==都会被加载
使用repo初始化本地仓库,使用AOSP tree 构建 TWRP。
- ```shell
创建文件夹
mkdir twrp&&cd twrp这里使用 aosp 最小设备树
repo init -u https://github.com/minimal-manifest-twrp/platform_manifest_twrp_aosp.git -b twrp-12.11
2
3
4
5
6
5. 同步源码
1. ```shell
repo sync -j8
# -j xxx 代表使用多少个线程
- ```shell
准备 devices tree(dt文件)
直接从 github 获取
github 搜索 设备代号(可百度搜) + twrp —–> 这里以k30pro 为例
lmi twrp
下载到 ./device/xiaomi(手机厂商)/lmi(设备代号)/
```shell
#确保你在刚刚创建的twrp 文件内
git clone 上面的链接 device/xiaomi/lmi/1
2
3
4
5
6
7
8
9
10
11
12
13
2. 我是大佬自己写dt文件(大佬不需要看教程)--->后续我会写一个
3. 使用 twrpdtgen 生成
1. ```shell
#安装python
apt install python3
# 安装cpio 必须
apt install cpio
#使用 pip 安装
# python2.7 及python3.4以上已内置,没有的额外安装
pip3 install twrpdtgen
提取 boot.img /recovery.img(具有recovery独立分区的手机)
- 可以通过下载线刷包解包后获取
使用 twrpdtgen 生成dt tree
开始编译
确保你现在在源码根目录 也就是 twrp 文件夹里
- 不确定的可以使用 pwd 命令,查看
配置环境
- ```shell
. build/envsetup.sh1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3. 开始编译
1. ```shell
# 1.直接在命令行输入
export ALLOW_MISSING_DEPENDENCIES=true
# 2.
lunch
#会输出一系列,选择你要编译的序号即可,一般为 omni_lmi(代号)-eng
#or
lunch omni_lmi-eng
#3.
mka recoveryimage- 编译成功!
- 当出现
build completed successfully
。即证明你已经编译成功了!
- 当出现
- 编译成功!
- ```shell
刷入 recovery.img
- 重启设备进入 fastboot模式
adb reboot fastboot - 刷入 recovery
fast flash recovery /out/target/product/lmi/recovery.img(可能会有变化)
- 重启设备进入 fastboot模式
三、常见问题
- Q:为什么提示 github unable resolve 。
A: 因为国内的特殊环境,github 偶尔不能访问,如果可以的话请挂好梯子后进行编译。