豚吐露@wiki
Androidのsource取得とbuild
最終更新:
Bot(ページ名リンク)
-
view
Androidのsource取得とbuild。
環境
Ubuntu 10.10 desktop 32bit
repo
Ubuntu 10.10 desktop 32bit
repo
- 環境設定
repoは必須なのであらかじめ環境設定しておく。
repoの環境設定
repoの環境設定
- sourceの取得
適当な場所にdirを作成し、移動。
$ cd $ mkdir eclair_build $ cd eclair_build
repoの初期設定。とりあえずeclairを取得するように設定してみる。『-b』で取得対象のtagを指定。
※ 対象の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』くらいの方が良いかも。
で、build。環境の良い人だと『-j8』くらいの方が良いかも。
$ time make -j4 2>&1 | tee make.log
で、ちなみに、取得するとき『-b』で指定せんと最新のが取れてくるんじゃが...
ど~も最近のは64bit OS環境でないとbuildできんくなっとるらしい。こんなん出た...
ど~も最近のは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環境でないとダメなのね。(´・ω・`)
gingerbreadのbuildは64bit環境でないとダメなのね。(´・ω・`)
で、他にもJDKについて制限がある。
Android Version | JDK Version |
froyo以前 | 1.5 |
gingerbread以降 | 1.6 |
1.6系が入ってたら1.5系への切り替えが必要。
javaの切り替え。以下のコマンドを実行して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秒