- 操作系统推荐使用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了。