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で設定した規格の関連ファイル一式が出来上がっています。
##参考文献