1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?