LineageOS20のビルド (Essential Phone)
History
#Lineageos #Android

必要な環境

  • CPU: 4コア(多いほど早くビルドが可能)
  • RAM: 32GB
  • SSD: 300GB以上の空き容量
  • OS: Ubuntu 22.04 LTS

今回はAzureのStandard_E4as_v4(4CPU/32GB)を使用しました。

1. 必要なパッケージをインストール

$ sudo apt update
$ sudo apt install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev libelf-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev libwxgtk3.0-gtk3-dev python-is-python3

repoのインストール

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

$HOME/binをPATHに追加する。(追加済みであれば不要)

$ cat >> .profile
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
$ source ~/.profile

2. 作業ディレクトリの作成

$ mkdir -p ~/android/lineage

3. Gitの設定

$ git config --global user.name "android"
$ git config --global user.email "android"

4. リポジトリの初期化&同期

※50GB程度のダウンロードが走るので時間がかかります

$ cd ~/android/lineage
$ repo init -u https://github.com/LineageOS/android.git -b lineage-20.0 --git-lfs
$ repo sync

5. 端末固有のソースの取得

今回は自分で作成したものを利用します。
https://gist.github.com/minetaro12/fe54c4f4c892fff5b8e2cb59e55a7428

$ mkdir -p .repo/local_manifests

.repo/local_manifests/mata.xmlに配置する

$ repo sync

6. ビルド

$ . build/envsetup.sh
$ croot
$ brunch mata 2>&1 | tee lineage_$(date '+%Y%m%d_%H-%M-%S').log

ビルドが終了したら、out/target/product/mataの成果物を忘れずに取り出します。
自分の環境では約7時間かかりました。

build complete

« systemd-timerを使ってみる
WindowsのデュアルブートでOS選択画面を従来のものに戻す »