意識低い系会社員

意識低い系会社員の日常

【スポンサーリンク】

Ubuntu(18.04)上でのAndroid Pieビルド環境構築手順メモ

【スポンサーリンク】

こんにちは。


Android Pieのビルド環境構築手順メモです。

全部ググれば出てきますが、忘備録として。

Ubuntu 18.04でやりました。

本当にただのメモとして書いていましたが、意外とアクセスが多いので大幅に加筆して、コマンドなども少し見やすく編集しました。

2019年1月当時の手順なので、手順が変更されていたらゴメンナサイ。

 

ビルド環境を構築するための要件の確認

source.android.com

HW要件などが書かれています。

ある程度のスペックがあれば特に問題はないと思います。

 

とりあえずここに書いてあることをする

source.android.com
OSはMacまたはLinuxでなければなりません。
残念ながらWindowsは現在対応していません。
Android 2.3以降は64bitマシンでないとビルドできません。
最近のバージョンだと特にJDKを入れる必要はありません。
古いバージョンではあらかじめJDKをインストールする必要があります。
以下のコマンドでインストールしてください。

 

sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

 

※一番下のコマンドはUbuntu 14.04の場所に記載されていますが、それより新しいUbuntuでもインストールしないとビルドできません。

 

ソースのダウンロード

以下のページの手順に従います。

source.android.com


repoのインストール

以下のコマンドでrepoをインストールします。

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


ワークディレクトリの作成

作業用ディレクトリを作ります。

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY

 

Gitの設定をしていない場合、以下のコマンドを実行します。

git config --global user.name "Your Name"
git config --global user.email "you@example.com"


manifestをダウンロード

repoで使用するmanifestをダウンロードします。

repo init -u https://android.googlesource.com/platform/manifest -b androidx-master-dev


ブランチの指定は以下のページを見て、特に理由がなければ最新のものを使います。

source.android.com
ダウンロード時、以下のようなエラーが出た場合

fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)


以下のようにしたら通ります。

PYTHONHTTPSVERIFY=0 repo init -u https://android.googlesource.com/platform/manifest -b androidx-master-dev

 

SSLのバージョンチェックのバグがあるっぽいです。

コマンドの最初に「PYTHONHTTPSVERIFY=0」を付けることでSSL認証をしないようにできます。

自己責任でやってください。

 

ソースコードを取得

以下のコマンドでソースコードをダウンロードします。

repo sync -j32

 

ビルド

以下のページに従ってビルドします。

source.android.com

 

以下のコマンドを投入します。

source build/envsetup.sh
lunch aosp_x86-eng
make -j32

 

このとき「lunch aosp_x86_eng」の部分はCUPとbit数によって適宜変更してください。

 

ビルド時に以下のエラーが出る場合、

FAILED: out/target/product/msm8996/obj/STATIC_LIBRARIES/libedify_intermediates/lexer.cpp
/bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -oout/target/product/msm8996/obj/STATIC_LIBRARIES/libedify_intermediates/lexer.cpp bootable/recovery/edify/lexer.ll"
flex-2.5.39: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.

 

以下のコマンドを投入して再度ビルドしてください。

export LC_ALL=C

 

エミュレータの起動

以下のコマンドでエミュレータを起動できます。

 

emulator

 

エミュレータ起動時に以下のエラーが出たら

emulator: WARNING: Couldn't find crash service executable /home/user/prj/pie/prebuilts/android-emulator/linux-x86_64/emulator64-crash-service

emulator: WARNING: system partition size adjusted to match image file (2562 MB > 800 MB)

emulator: ERROR: x86 emulation currently requires hardware acceleration!
Please ensure KVM is properly installed and usable.

 

以下のコマンドを試してみましょう。

emulator -no-accel

 

私が使っているCPUは仮想化支援機構とやらが入っていません。
なので仮想化環境上(VirtualBox上で動かしているUbuntuでビルドしています。)で、さらに仮想化環境を作ろうとするとエミュレータ起動に失敗するようです。
自分のCPUが仮想化支援機構あるかないかは以下のコマンドで確認できるようです。

cat /proc/cpuinfo | grep vmx

 

まとめ

これで完了です。 

 

おわり。

【スポンサーリンク】