AviumUI 编译教程

作者:曾晨曦studio
"记住,尝试时你承担了所有风险,但你会收获回报!启动一个你在家里自制的新操作系统,感觉相当满足:)。一旦你成为安卓建造高手,就不必再等待任何人的'夜间'组装。你将掌握能够用代码构建完整操作系统,随时安装到运行中的设备上。"

—————————LineageOS Wiki

最近这个类原挺火的,翻了一圈也没找到编译教程,于是打算自己写一篇给大家参考得了

一、硬件介绍,安装Linux,以及一些依赖安装

由于编译需要至少16GB可扩展,32GB及以上的内存,以及至少300GB的SSD,否则编译速度会特别慢

我这边使用的配置是:

如果你满足以上配置你就可以开始接下来的操作了

系统的话我的建议是用Ubuntu 22.04.5 LTS WSL好像也可以但建议使用实体机安装 Ubuntu(小白可能不懂Arch系列,这边拿ubuntu演示)这里看个人情况,这里自行搜索教程安装,我不多赘述

当你安装完Linux后,打开终端,执行下面三行命令,安装依赖

sudo apt update
sudo apt upgrade
sudo apt install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick protobuf-compiler python3-protobuf lib32readline-dev lib32z1-dev libdw-dev libelf-dev lz4 libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev

二、准备源码,配置git

创建文件夹,用于存放源码

mkdir -p android/avium
cd android/avium

然后下载git-repo

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

然后设置你的git(如果没有github账号这边建议去官网注册一个)

git config --global user.name "你github名字"
git config --global user.email "你github邮箱"

三、AviumUI源码同步

repo init -u https://github.com/AviumUI/android_manifests -b avium-16 --git-lfs
repo sync -c -j$(nproc --all) --force-sync --no-clone-bundle --no-tags

同步AviumUI源码需要几个小时的时间,如果使用国内网络,这里建议挂个代理可以加快同步时间

当你同步完源码之后,就可以开始折腾编译了

四、准备设备树 打补丁

由于AviumUI基于lineageOS所以我们这边可以直接用LineageOS的设备树

我这边以小米Mix2(chiron)作为演示,这边特别感谢github@Nanhumly-Staging大佬为Mix2作维护

你需要执行以下命令:

msm8998通用树

git clone https://github.com/Nanhumly-Staging/android_device_xiaomi_msm8998-common.git -b lineage-23.0 device/xiaomi/msm8998-common

小米Mix 2专用设备树

git clone https://github.com/Nanhumly-Staging/android_device_xiaomi_chiron.git -b lineage-23.0 device/xiaomi/chiron

hardware_xiaomi 如果没有

git clone https://github.com/LineageOS/android_hardware_xiaomi.git -b lineage-23.0 hardware/xiaomi

msm8998通用vendor

git clone https://github.com/Nanhumly-Staging/proprietary_vendor_xiaomi_msm8998-common.git -b lineage-23.0 vendor/xiaomi/msm8998-common

小米Mix 2专用vendor

git clone https://github.com/Nanhumly-Staging/proprietary_vendor_xiaomi_chiron.git -b lineage-23.0 vendor/xiaomi/chiron

msm8998通用kernel源码

git clone https://github.com/Nanhumly-Staging/android_kernel_xiaomi_msm8998.git -b lineage-23.0 kernel/xiaomi/msm8998

注意:AviumUI有一些特殊的配置;你可以把 mk 文件"avium-common.mk"添加到你的设备树中并包含它,其实不加也没事的(可选)

在你的设备树的device.mk的最后一行中添加相应的引用

开始编译

source build/envsetup.sh
avium get_gms(如果需要GMS没有就别执行)
breakfast 机型代号 构建类型
brunch 机型代号 构建类型

机型代号(chiron/sagit)

构建类型 (user/userdebug/eng)

构建类型留空则默认为userdebug

提示:如果在编译过程中遇到内存太小报错,可以尝试添加swap解决

sudo fallocate -l 32G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

这里添加32g的swap

成功了!所以......接下来是什么?

你做到了!你从零开始构建了AviumUI。你在过程中学到了很多东西,也祝你玩得开心。