• 操作系统推荐使用Ubuntu(实体机安装或WSL皆可)
  • 磁盘可用空间>50G
  • 项目地址
  • 推荐使用twrp-9.0分支进行编译

WSL配置代理(非必选)

配置http/https

export all_proxy="http://${hostip}:{port}"

配置socks5

export all_proxy="socks5://${hostip}:{port}"

使用 curl 即可验证是否代理成功,如下有返回值说明成功

➜  ~curl google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"><TITLE>301 Moved</TITLE></HEAD><BODY><H1>301 Moved</H1>The document has moved<A HREF="http://www.google.com/">here</A>.</BODY></HTML>

可以将上面命令选择你需要的添加到 .bashrc ,这样会让代理一直开启。

安装编译时所需的依赖

sudo apt update
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

安装repo

mkdir -p ~/bin
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo> ~/bin/repo
sudo cp ~/bin/repo /bin/repo
sudo chmod a+x /bin/repo
export PATH=/bin:$PATH
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

拉取源码

mkdir TWRP
cd TWRP

要使用 OMNIROM 树初始化本地存储库以构建 TWRP,请使用如下命令

repo init -u https://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni.git -b twrp-9.0

只拉取一层提交,可以减少拉下来的源码大小

repo init --depth=1 -u https://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni.git -b twrp-9.0

最后会提示你输入用户名和邮箱,输入之后回车,选y即可

当出现repo has been initialized in xxx就成功了

然后同步源码

repo sync

当出现repo sync has finished successfully.表示源码同步完成

准备编译

准备好设备的Device Tree

可在Github或者XDA上寻找,一般使用手机代号寻找

but,手机比较冷门的可能找不到,这个时候就需要我们使用脚本生成Device Tree用于编译TWRP

提取设备的 recovery/boot.img

手机是A-Only或Sar的提取recovery.img,A/B分区的提取boot.img

此工具Python 3.8或更高版本

sudo apt install cpio
pip3 install twrpdtgen
python3 -m twrpdtgen 镜像文件绝对路径

进入output文件夹就可用看到一个我们手机厂商名的文件夹

然后我们把这个文件夹复制到源码目录下的device文件夹

进入厂商文件夹之后还有一个文件夹,这是你的设备名,记住你的设备名,等下要用到。

在构建之前,请确保您已将系统的 python 实现设置为 python2。该项目不会使用 python3 构建。

设置方法

sudo apt install python2

查找python2的安装路径

whereis python2

创建软链接符号

sudo ln -s /usr/bin/python2 /usr/bin/python

查看python版本

python -V

开始编译

回到源码根目录

为具有恢复分区的设备构建

export ALLOW_MISSING_DEPENDENCIES=true; . build/envsetup.sh; lunch omni_<device>-eng; mka recoveryimage

为没有恢复分区的设备构建

export ALLOW_MISSING_DEPENDENCIES=true; . build/envsetup.sh; lunch omni_<device>-eng; mka bootimage

此时已经开始编译了,过程比较漫长,请耐心等待。(取决电脑配置)

build completed successfully

当看到出现这串文字,表示已经编译成功。

然后我们进入out/target/product/设备名这个文件夹,就可以看到编译好的TWRP了。

Last modification:October 28, 2023
如果觉得我的文章对你有用,麻烦点个赞吧 !