Android-x86 2.1 (eclair) のビルドに挑戦


今回はAndroid-x86 2.1 (eclair) のビルドに挑戦してみました。
前回のエントリーでは Android-x86 1.6 (donut) を仮想環境にインストールする手順をご紹介いたしました。その際に使用した Android インストール用 iso ファイルは Android-x86 のサイトからダウンロードをしましたが、ソースコードを取得してビルド(imgファイルやisoファイルを作成)することも可能なため、挑戦してみることにしました。
なお、Android-x86 2.2 (froyo) のソースコード取得についても可能になっているようですが、筆者が試みた時点では「froyo-x86」を指定してソースコードを取得することはできませんでした。

  • 2010/07/29 追記:07/26に試したところ「froyo-x86」のブランチを指定してソースコードをダウンロードすることができました。

Android-x86 のビルドを行う際には、下記のサイトを参照させていただきました。

ビルドを行った環境

動作確認を行った環境

Android のビルド手順については多くのサイトで扱われていますので、本記事では前半部分を簡単な手順説明とし、後半部分にて仮想環境での動作確認の内容を記載いたしました。

java JDK 6.0 のインストール

Android をビルドするには Java JDK 5 を利用しますが、Xubuntu (Ubuntu) 10.04 では利用できないので、Java JDK 6 を利用します。
※下記の作業はrootユーザとして作業を行います。
下記コマンドでAPTリポジトリを追加します。

add-apt-repository 'deb http://archive.canonical.com/ lucid partner'

次に下記コマンドを実行してパッケージリストを更新します。

apt-get update

パッケージリスト更新後、下記コマンドを実行して Java JDK をインストールします。

apt-get install sun-java6-jdk

次に環境変数 JAVA_HOME を設定します。筆者はrootユーザの「.bashrc」ファイルに以下1行を追加しました。お使いの環境にあわせて設定してください。

export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.20

「.bashrc」ファイル編集後は、下記コマンドを実施して環境変数を反映させます。

source ./.bashrc

ビルド用環境の構築とビルド作業

※下記の作業はrootユーザとして作業を行います。

ビルド用環境の構築

下記コマンドを実行してビルド作業に必要なパッケージをインストールします。

apt-get -y install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind g++

次に repo コマンド(Androidソースコードのバージョン管理ツール)をダウンロードし、実行権を付加します。

$ cd ~ 
$ mkdir bin 
$ curl http://android.git.kernel.org/repo >~/bin/repo 
$ chmod 755 ~/bin/repo

環境変数 PATH を設定します。筆者はrootユーザの「.bashrc」ファイルに以下1行を追加しました。お使いの環境にあわせて設定してください。

export PATH=$PATH:/root/bin

「.bashrc」ファイル編集後は、下記コマンドを実施して環境変数を反映させます。

source ./.bashrc
リポジトリ設定とソースコード取得

ソースコード取得とビルド作業でGB単位のディスク容量を使いますので、10GB以上の空き容量が必要です。
まず、ソースコードダウンロード先となる作業ディレクトリを作成します。下記では「build_eclair」というディレクトリを作成しています。

mkdir build_eclair
cd build_eclair

作業ディレクトリに移動後、下記コマンド*1を入力してリポジトリ設定を行います。コマンド末尾に「Android のコードネーム」と「-x86」 を空白なしで続けて入力しバージョンを指定します。Android のコードネームについてはこちらをご参照ください。
この手順の途中でユーザ名とメールアドレスを入力する必要があります。

repo init -u git://android-x86.git.sf.net/gitroot/android-x86/manifest.git -b eclair-x86

リポジトリ設定終了後は下記コマンドを実行して、ソースコードをダウンロードします。

repo sync

筆者の環境では、終了するまでに1時間半ほどかかりました。

Android.mk ファイルの編集

ソースコードのダウンロード終了後は、 Google OS実験室 さんの こちらのページを参照しながら、Android.mk ファイルを編集します。(2010年7月時点)

ビルド

本手順では eclair のインストール用CDのための iso ファイルを作成しますので、コマンドは下記のように実行します。

make iso_img TARGET_PRODUCT=eeepc

筆者の環境では、終了するまでに3時間ほどかかりました。ビルド終了後は作業ディレクトリ配下の「out/target/product/eeepc/」内に「eeepc.iso」というファイルが作成されています。筆者の環境では 473.9MBのファイルでした。

仮想環境での動作確認

仮想環境での動作確認は、Mac OS X 10.6 + VirtualBoxXubuntu 10.04 + KVM という環境で行いました。VirtualBoxでは右クリックができなかったのですが*2KVMでは右クリックOKでしたので、仮想マシン側の設定によるものと思われます。

VirtualBox

仮想マシンの作成や仮想環境へのAndroidインストール手順については仮想環境への Android インストール手順(VirtualBox)に詳細を記載しましたのでご参照ください。

ネットワークアダプタタイプを「PCnet-FAST III」に設定することで、ネットワーク通信には問題ありませんでした。
下の画像はホーム画面です。アイコンのデザインが変化しています。


アプリケーション一覧画面です。Android-x86の「App Store」がないので、インストールする必要があります。


デフォルトでは1分間画面操作がなかった場合に画面ロックがかかります。15秒から30分まで設定変更が可能です。


設定メニューにはアイコンが追加されています。


Google Map の表示は問題ありませんでした。下の画像は地図表示の状態です。


下の画像は衛星写真表示の状態です。


シャットダウンメニューにサイレントモードと機内モードの設定項目が追加されています。


シャットダウン画面です。


KVM

ネットワーク通信を有効にするため、kvmコマンドに nicモデル指定「-net nic,model='pcnet'」を含める必要があります。
仮想マシンの作成手順はKVMを使った仮想OS設定手順についてに、Androidインストール手順については仮想環境への Android インストール手順(VirtualBox)に詳細を記載しましたのでご参照ください。
KVMでは、画面ロックがかかってしまうと、通常画面に戻れなくなってしまうので、ロックがかかるまでの時間を長く設定する必要がありました。
他の操作については、特に問題ありませんでした。
下の画像は、ブラウザ表示時に右クリックメニューを表示しているところです。



下の画像はホーム画面で右クリックメニューを表示しているところです。


筆者の環境(MacBookXubuntu 10.04)ではコンソール画面に切り替えるには「fn」+「alt」+「F1」キー、通常画面に戻るには「fn」+「alt」+「F7」キーを同時に押す必要がありました*3

*1:上記のアドレスでリポジトリ設定できない場合はアドレス部分を「git://git.android-x86.org/platform/manifest.git」に変更します。

*2:前回Android 1.6 では右クリックOKでした

*3:通常は「Alt」+「F1」でコンソール画面、「Alt」+「F7」で通常画面となるようです。