LoginSignup
1
2

More than 5 years have passed since last update.

CentOS7でAndroid4.4(AOSP)ビルド環境

Last updated at Posted at 2015-07-18

CentOS7で一からAndroid(AOSP)のビルド環境を構築した際の方法です。

CentOSの環境構築

OSのインストール

今回はVMWareにCentOS7(64bit)をインストールしました。
基本的にはデフォルトままでインストールしていますので紹介は割愛しますが、ネットワークの設定は忘れずに行ってください。(後で設定するのが面倒なため)
wgetやgitなどでファイルのダウンロードがあるため、ネットワーク設定は必須です。
固定IPを割り振っておくとsshでのアクセスの際に楽です。

パッケージの導入

インストールしたばかりだと、設定に必要なパッケージもありません。
まずは、以下のパッケージをyumでインストールします。

yum -y install wget zip unzip git bc perl-Git gcc gcc-c++

JavaSDKの導入

Oracle Java 6を入れます。
Lollipop以降のビルドを行う場合は、Oracle Java 7を導入してください。
http://www.oracle.com/technetwork/java/javase/downloads/index.html

./jdk-6u45-linux-x64-rpm.bin -noregister
update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_38/bin/javac 50000
update-alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_45/bin/java 50000
update-alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.6.0_45/bin/javaws 50000
update-alternatives --install /usr/bin/javap javap /usr/java/jdk1.6.0_45/bin/javap 50000
update-alternatives --install /usr/bin/jar jar /usr/java/jdk1.6.0_45/bin/jar 50000
update-alternatives --install /usr/bin/jarsigner jarsigner /usr/java/jdk1.6.0_45/bin/jarsigner 50000
update-alternatives --install /usr/bin/javadoc javadoc /usr/java/jdk1.6.0_45/bin/javadoc 50000

ビルドに必要なパッケージを導入する

Androidのツールがi686用のため関連するライブラリをインストールします。
yum -y install libstdc++.i686 libgcc.i686 libxml2.i686 glibc.i686 nss-softokn-freebl.i686 zlib.i686

その他ビルドで必要なパッケージを導入

ビルド時に必要と言われた以下のパッケージを導入します。
yum -y bison flex python-mako

yasmだけyumで導入できなかったので、ソースコードを取得して自分でコンパイルします。
ソースコードの取得は以下から。
http://www.tortall.net/projects/yasm/releases/

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar zvxf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
make install

これで下準備は完了です。

ソースコードを取得する

Android(AOSP)のGitからソースコードを取得します。
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir android
cd android
repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.4_r2
repo sync

初回のダウンロードにはとても時間が掛かります。寝る前に仕掛けて翌朝確認のつもりが良いと思います。
一度ダウンロードしたソースコードはtarなどで固めてバックアップを取っておくと良いです。

ビルドする

cd android
source build/envsetup.sh
lunch

この時点で以下のようにどの規格向けでビルドするか聞かれます。
今回は、arm用の設定を使いました。

You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_x86-eng
3. aosp_mips-eng
4. vbox_x86-eng
5. aosp_deb-userdebug
6. aosp_flo-userdebug
7. aosp_grouper-userdebug
8. aosp_tilapia-userdebug
9. mini_armv7a_neon-userdebug
10. mini_mips-userdebug
11. mini_x86-userdebug
12. aosp_hammerhead-userdebug
13. aosp_mako-userdebug
14. aosp_manta-userdebug
Which would you like? [aosp_arm-eng] 1

これで設定が完了したので、あとはmakeするだけです。-j4は並列処理をする数を指定します。

make -j4

私の環境だと4コア4スレッドのなので、-j4にしています。-j8とかも試しましたが、メモリ不足に陥ったりしました。
10GB以上のメモリをVMに割り振っているなら-j8なども試してみると良いと思います。

ビルドにはかなりの時間が掛かります。
寝る前に仕掛けて翌朝確認くらいのつもりでいましょう。

ビルドが完了すると、out/target/productの下にlunchで設定した規格の関連ファイル一式が出来上がっています。

参考文献

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2