android 4.1.1 x86

http://source.android.com/source/download.html
https://android.googlesource.com/platform/manifest

Android 4.1 Jelly Bean のソースが公開されたのでビルドしてみた。./build/target/product/generic_x86.mk があるので、使わせていただこう。ビルド環境はUbuntu 12.04 x86_64。インストール先はInspiron duo (Dual Core Atom N550, 1366x768, Touch Screen + Keyboard)。

  1. 前提パッケージをインストール
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev
$ sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386
  1. JDK をインストール
    Oracle のサイトからjdk-6u33-linux-x64.bin を拾ってきて展開、./bin にパスを通しておく。

  2. repo をインストール

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
  1. ソースを取得(Android 4.1(Jelly Bean) の場合)
$ mkdir jellybean-x86
$ cd jellybean-x86
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.1_r1
$ repo sync
  1. ビルド
$ source build/envsetup.sh
$ lunch generic_x86-eng
$ make -j8

./out/target/product/generic_x86/ にバイナリが作成されるので、GRUB から起動してあげればOK!、と思うけど、時間が掛かりそうなので、明日の朝確認しようzzz。

generic_x86-eng で失敗したので、lunch の選択肢に従って、full_x86-eng でやり直してみよう。make の実行は、C/C++ の部分は多重度を8 にして、Java の部分は多重度を1 にできるとCPU とメモリが有効活用できて効率的なんだけど、できないのかな。

$ source build/envsetup.sh
$ lunch vbox_x86-eng
$ make android_disk_vdi -j1
$

VirtualBox イメージ(android_data_disk.vdi, android_system_disk.vdi)の生成と起動はできた。