8
6

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.

AOSPをビルドするのにopenstf/docker-aospを使ったら便利だった

Last updated at Posted at 2018-12-15

AOSPをビルドするのにopenstf/docker-aospを使ったら便利だった

以前 AOSP環境構築 [備忘録] という記事を書いたのですが、AOSPをビルドするのに用意しなければいけないものが多く、Dockerでビルドしたいと思っていたところ openstf/docker-aosp が便利だったので、その紹介をしたいと思います。

checkout-branch (repo sync)

android9.0.0_r1 をダウンロードする場合、下のように利用できます。

docker run -ti --rm -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -v $PWD:/aosp -u $(id -u $USER):$(id -g $USER) openstf/aosp:jdk8 /aosp.sh checkout-branch --no-mirror android-9.0.0_r1 -j32

上の例では openstf/aospjdk8 というタグを指定していますが、この部分は下の対応表に沿って対応したものを選ぶようにします。

Branch SDK Docker image to build with
android-2.3_r1 9 openstf/aosp:jdk6
android-2.3.3_r1 10 openstf/aosp:jdk6
android-4.0.1_r1 14 openstf/aosp:jdk6
android-4.0.3_r1 15 openstf/aosp:jdk6
android-4.1.1_r1 16 openstf/aosp:jdk6
android-4.2_r1 17 openstf/aosp:jdk6
android-4.3_r1 18 openstf/aosp:jdk6
android-4.4_r1 19 openstf/aosp:jdk6
android-5.0.1_r1 21 openstf/aosp:jdk7
android-5.1.0_r1 22 openstf/aosp:jdk7
android-6.0.0_r1 23 openstf/aosp:jdk7
android-7.0.0_r1 24 openstf/aosp:jdk8
android-7.1.0_r1 25 openstf/aosp:jdk8
android-8.0.0_r1 26 openstf/aosp:jdk8
android-8.1.0_r1 27 openstf/aosp:jdk8
android-9.0.0_r1 28 openstf/aosp:jdk8

/aosp.sh というスクリプトファイルが用意されていて、
/aosp.sh checkout-branch --no-mirror android-9.0.0_r1 -j32 のようにすることで、ブランチのチェックアウトが可能です。

※dockerでvolumeをマウントした際、作成されたファイルのownerがrootになってしまうのを防ぐため、/etc/group/etc/passwd をマウントしています。(参考: dockerでvolumeをマウントしたときのファイルのowner問題)

build-all

docker run -ti --rm -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -v $PWD:/aosp -u $(id -u $USER):$(id -g $USER) openstf/aosp:jdk8 /aosp.sh build-all aosp_x86-eng -j32

ビルドも /aosp.sh build-all aosp_x86-eng -j32 のように実行できます。

openstf/docker-aospでできること

  • create-mirror [sync-options]
    • AOSPのミラーを作成
  • checkout-branch [--no-mirror] <branch> [sync-options]
    • 指定したブランチをチェックアウト、ミラーを利用しない場合[--no-mirror]オプションを付ける
  • build-all <target> [make-options]
    • 全てのモジュールをビルド
  • build <target> <local-module> [make-options]
    • 指定したモジュールをビルド

紹介した checkout-branchbuild-all 以外にも上のような機能があります。

詳しくは、docker run -ti --rm openstf/aosp:jdk8 /aosp.sh help を確認してください。

参考

8
6
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
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?