最近这个类原挺火的,翻了一圈也没找到编译教程,于是打算自己写一篇给大家参考得了
一、硬件介绍,安装Linux,以及一些依赖安装
由于编译需要至少16GB可扩展,32GB及以上的内存,以及至少300GB的SSD,否则编译速度会特别慢
我这边使用的配置是:
- CPU: Intel® Core™ i5-12490F
- RAM: DDR4 32GiB 3200
- DISK: SSD 1TB
- SYSTEM: Ubuntu 22.04.5 LTS
如果你满足以上配置你就可以开始接下来的操作了
系统的话我的建议是用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。你在过程中学到了很多东西,也祝你玩得开心。