豚吐露@wiki

Androidのsource取得とbuild

最終更新:

Bot(ページ名リンク)

- view
管理者のみ編集可

Androidのsource取得とbuild。

環境
Ubuntu 10.10 desktop 32bit
repo

  • 環境設定
repoは必須なのであらかじめ環境設定しておく。
repoの環境設定

  • sourceの取得
適当な場所にdirを作成し、移動。
$ cd
$ mkdir eclair_build
$ cd eclair_build
repoの初期設定。とりあえずeclairを取得するように設定してみる。『-b』で取得対象のtagを指定。
対象のtag名はこちらから
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-cts-2.1_r4
froyoだとこんな感じ。
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-cts-2.2_r4
ちなみに、eclairで指定したらこんなん出た。tag名じゃないと取れないんですかね。
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair
error.GitError: platform/bionic gc: fatal: Not a git repository: '/home/kisaragi/eclair_build/.repo/projects/bionic.git'
で、設定したら実際に取得。
$ time repo sync -j4 2>&1 | tee sync.log
※timeを付けると実行にかかった時間を最後に教えてくれる。リダイレクトとパイプの意味は こちら
長いから...取得にえらい時間がかかる。

  • build
取得が完了したbuildに必要な環境を整える。sourceと一緒に環境設定ようのsh scriptがあるので適応。
$ source build/envsetup.sh
including vendor/aosp/vendorsetup.sh
この『envsetup.sh』の中に『lunch』って関数が定義してあるので実行。
$ lunch
You're building on Linux

generic-eng simulator aosp_emulator_us-eng aosp_emulator_eu-eng aosp_dream_us-userdebug aosp_dream_eu-userdebug aosp_dream_us-eng aosp_dream_eu-eng aosp_sapphire_us-userdebug aosp_sapphire_eu-userdebug aosp_sapphire_us-eng aosp_sapphire_eu-eng
Lunch menu... pick a combo:
1. generic-eng
2. simulator
3. aosp_emulator_us-eng
4. aosp_emulator_eu-eng
5. aosp_dream_us-userdebug
6. aosp_dream_eu-userdebug
7. aosp_dream_us-eng
8. aosp_dream_eu-eng
9. aosp_sapphire_us-userdebug
10. aosp_sapphire_eu-userdebug
11. aosp_sapphire_us-eng
12. aosp_sapphire_eu-eng

Which would you like? [generic-eng] 1

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
とりあえずデフォの『generic-eng』を選んでみたが...これらの意味ちゃんと調べんとね...dreamってなんや...(-ω-;)
で、build。環境の良い人だと『-j8』くらいの方が良いかも。
$ time make -j4 2>&1 | tee make.log
で、ちなみに、取得するとき『-b』で指定せんと最新のが取れてくるんじゃが...
ど~も最近のは64bit OS環境でないとbuildできんくなっとるらしい。こんなん出た...
Checking build tools versions...
build/core/main.mk:76: ************************************************************
build/core/main.mk:77: You are attempting to build on a 32-bit system.
build/core/main.mk:78: Only 64-bit build environments are supported beyond froyo/2.2.
build/core/main.mk:79: ************************************************************
build/core/main.mk:80: *** stop. 中止.
ちなみに、このcheck外してbuildさせてみたら64bitっぽぃheader fileが無いとか怒られて失敗。
gingerbreadのbuildは64bit環境でないとダメなのね。(´・ω・`)

で、他にもJDKについて制限がある。
Android Version JDK Version
froyo以前 1.5
gingerbread以降 1.6
1.6系が入ってたら1.5系への切り替えが必要。
javaの切り替え。以下のコマンドを実行して1.5系を選択。
$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      優        Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-sun/jre/bin/java       63        auto mode
  1            /usr/lib/jvm/java-1.5.0-sun/jre/bin/java   53        manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/jvm/java-1.5.0-sun/jre/bin/java to provide /usr/bin/java (java) in manual mode.
javacも切り替え。
$ sudo update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                   優        Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-sun/bin/javac       63        auto mode
  1            /usr/lib/jvm/java-1.5.0-sun/bin/javac   53        manual mode
  2            /usr/lib/jvm/java-6-sun/bin/javac       63        manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/jvm/java-1.5.0-sun/bin/javac to provide /usr/bin/javac (javac) in manual mode.
これでjavaが原因でbuildが止まることはないはず。1.6系使いたくなったら、同じコマンド実行して1.6系を選択すれば良いハズ。



更新日: 2011年02月18日 (金) 22時51分22秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
ウィキ募集バナー