搭建编译 HW-T3568 安卓固件的环境

搭建编译 HW-T3568 安卓固件的环境

  • 作者:吴思含(Witheart)
  • 更新时间:20241127

编译环境构建

1. 安装 SDK 编译环境所需软件包

首先,更新并升级系统:

bash 复制代码
sudo apt update
sudo apt upgrade

然后,安装必要的软件包:

bash 复制代码
sudo apt install git git-core gnupg ssh make gcc g++ libssl-dev liblz4-tool \
expect patchelf chrpath gawk texinfo diffstat binfmt-support qemu-user-static \
live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip zip curl \
zlib1g-dev libc6-dev-i386 lib32ncurses5-dev libx11-dev lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc device-tree-compiler libfdt-dev libfdt1 \
python3-pip python3-dev python3-pyelftools ncurses-dev libncurses5 libgl1-mesa-dev \
gperf build-essential

2. 常见问题及解决方法

1)软件包安装失败的解决方案
  • 替换 python-pip

    现代系统默认使用 Python 3,请改用 python3-pip

    bash 复制代码
    sudo apt install python3-pip
  • 启用 universe 仓库

    如果某些包无法找到,确保已启用 universe 仓库:

    bash 复制代码
    sudo add-apt-repository universe
    sudo apt update
    sudo apt install expect
  • 安装 qemu-user-static

    若安装失败,尝试启用 multiverse 仓库:

    bash 复制代码
    sudo add-apt-repository multiverse
    sudo apt update
    sudo apt install qemu-user-static
  • 安装 device-tree-compiler

    如果未找到该工具,可以尝试:

    bash 复制代码
    sudo apt install device-tree-compiler
  • 安装 pyelftools

    使用 pip3 安装 Python 库 pyelftools

    bash 复制代码
    pip3 install pyelftools
2)确保 Python2 为系统默认版本

Android 11 的编译环境要求默认使用 Python 2。执行以下命令切换默认版本:

bash 复制代码
sudo rm -rf /usr/bin/python
sudo ln -s /usr/bin/python2 /usr/bin/python

3. 安装 repo

  1. 创建 repo 所需的目录并配置环境变量:

    bash 复制代码
    mkdir ~/bin
    export PATH=~/bin:$PATH
  2. 下载 repo 工具:

    bash 复制代码
    curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
    chmod a+x ~/bin/repo
  3. 配置 Git 用户信息(repo 使用 Git 工作,需要提前配置用户信息):

    bash 复制代码
    git config --global user.name "your name"
    git config --global user.email "your email"
  4. 验证 Git 配置信息:

    bash 复制代码
    git config --list

注意事项

  • 请确保所有依赖的软件包均已正确安装,若遇到问题可参考上述解决方案逐一排查。
  • 完成上述环境配置后,即可开始编译 HW-T3568 固件。
相关推荐
曲幽1 小时前
Termux里的二进制和脚本,到底怎么运行才不踩坑?Termux-service 保活妙招!
android·termux·nohup·services·wake-lock
plainGeekDev2 小时前
单例模式 → object 声明
android·java·kotlin
程序员陆业聪2 小时前
读者点单·03|Compose 与传统 View 混用的 12 个真实坑
android
程序员陆业聪3 小时前
读者点单·02|Android 启动优化实战:Trace 抓取→Application 编排→冷启动全流程拆解
android
Coffeeee3 小时前
帮你快速理解AI Agent之我想招个Android实习生
android·人工智能·agent
恋猫de小郭4 小时前
苹果 AirPods 协议,Android 也可以使用完整版 AirPods 能力
android·前端·flutter
黄林晴4 小时前
告别无效重建:Gradle 9.6.0 解决 CI 构建缓存失效痛点告别无效重建:Gradle 9.6.0 解决 CI 建筑缓存失效痛点
android·gradle
张风捷特烈5 小时前
Flutter 类库大揭秘#01 | path_provider架构与设计
android·flutter
_阿南_14 小时前
Android文件读写和分享总结
android
通玄1 天前
Jetpack Compose 入门系列(六):Navigation 3 页面导航
android