搭建编译 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 固件。
相关推荐
爱笑鱼23 分钟前
JNI(二):Java 里的一个 long,为什么能找到 C++ 对象?
android
爱笑鱼1 小时前
JNI(一):nativePollOnce() 到底去了哪里?
android
hqk3 小时前
玩Android×AI Coding:从产品到代码,完整跑通一套 AI 软件研发工作流
android·ai编程·vibecoding
安卓修改大师4 小时前
安卓修改大师实战:深入解析Android主题Theme修改与沉浸式界面实现
android
齊家治國平天下5 小时前
CarService 深度解析 —— 基于 Android 14
android·车载系统·aaos·carservice·电源管理·android 14·vhal
stevenzqzq6 小时前
app性能日志工具
android
DB哥讲数据库6 小时前
【最新】MySQL9.7安装教程:图文详解(附MySQL安装包)
android·mysql·adb
IT乐手6 小时前
Android 写本地日志工具类
android·java
非典型Android程序员7 小时前
Launcher学习总结
android
Coffeeee8 小时前
Android功耗优化,哪些代码会让你的机子发热又耗电
android·架构·kotlin