Tony's Blog - 古人誠不我欺 - Android https://iyiy.de/tag/Android/ zh-CN Mon, 12 Sep 2022 15:49:00 +0800 Mon, 12 Sep 2022 15:49:00 +0800 简记一下手动编译TWRP https://iyiy.de/23.html https://iyiy.de/23.html Mon, 12 Sep 2022 15:49:00 +0800 Tony
  • 操作系统推荐使用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了。

    ]]>
    0 https://iyiy.de/23.html#comments https://iyiy.de/feed/tag/Android/
    三星Galaxy A90 5G 开启双扬声器 https://iyiy.de/12.html https://iyiy.de/12.html Mon, 25 Oct 2021 06:36:00 +0800 Tony 使用文件管理器进根目录(/),推荐使用Mt管理器或者Re管理器
    在/vendor/etc下找到mixer_paths_tavil.xml这个文件

    在mixer_paths_tavil.xml里把

    <!-- CDC_IF and SLIM controls -->

    下一行的

    <ctl name="SLIM RX0 MUX" value="ZERO" />

    ZERO改成AIF1_PB

    再把

    <!-- Interpolator chain controls -->

    下一行的

    <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />

    ZERO改成RX0
    如果你想听筒和扬声器的音量一样大的话,可以在

    <!-- Volume controls -->

    下面找到

    <ctl name="RX0 Digital Volume" value="84" />

    84改成100

    ]]>
    0 https://iyiy.de/12.html#comments https://iyiy.de/feed/tag/Android/
    利用Magisk实现黑阈开机自启 https://iyiy.de/10.html https://iyiy.de/10.html Sun, 17 Oct 2021 04:13:00 +0800 Tony /data/adb/service.d/目录下创建一个文件bre.sh,设置权限为777
    编辑文件内容

    sleep 20
    su -c sh /data/data/me.piebridge.brevent/brevent.sh

    设备启动后20s左右,黑阈即可自启

    ]]>
    0 https://iyiy.de/10.html#comments https://iyiy.de/feed/tag/Android/