Androidソースビルドに挑戦

【送料無料】Android Hacks

【送料無料】Android Hacks
価格:3,990円(税込、送料別)

「Hack#49 ソースコンパイル環境の構築(Linux)」を参考にして、Androidのソースビルド環境の構築に挑戦してみました。これは結構苦労しました。

まずは、Hack#49のとおりやってみたが、froyo/2.2以降は32bit環境ではビルドできないって怒られました。

なので、Ubuntu 64bit環境の構築からやりました。

これには以下のページがとても参考になりました。

http://osmania.blog.so-net.ne.jp/2010-10-16-1

以下が、今回の環境構築メモです。


仮想マシンの作成

まず、VMWareをインストール。
http://downloads.vmware.com/jp/d/info/desktop_downloads/vmware_player/3_0
VMWare Accountを登録し、VMware Player 3.1.3 for 32-bit and 64-bit Windowsをダウンロード

インストール実行。画面に従ってデフォルトのまま実行。

以下を参考にubuntu 10.10 64bit版をインストール

http://osmania.blog.so-net.ne.jp/2010-10-16-1

要約すると以下のような感じ。

http://www.ubuntu.com/desktop/get-ubuntu/download
からubuntu10.10 64bit版をダウンロード

VMware playerを起動し、新しい仮想マシンを作成する。

後でOSをインストールを選択

ディス最大クサイズは推奨は20Gだが、余裕を持って50Gを指定してみた。

仮想マシンを作成する準備完了」画面で[ハードウェアをカスタマイズ]ボタンを押し、
メモリサイズを4Gに(最低1Gは必要)プロセッサコアの数を2に変更。
CD/DVDに先ほどダウンロードしたubuntuのisoファイルを指定する。

[完了]ボタンを押すと仮想マシンが作成され、ubuntuのインストールが始まります。

言語に「日本語」を選択し「Ubuntuをインストール」をクリック
後は適当に。

アップデートマネージャでOSを最新にアップデートする

VMWare Toolsもインストールする。
UbuntuのCDがマウントされている場合はCDのアイコンの上で右クリックでコンテキストメニューを開き[取り出す]を選択
[仮想マシン]-[VMWare Toolsのインストールを選択すると、CDがマウントされる。

sudo su -
cd /tmp
tar zxpf /media/VMware\ Tools/VMwareTools-8.4.6-385536.tar.gz
cd vmware-tools-distrib
./vmware-install.pl
すべてデフォルトのままEnter
/usr/bin/vmware-user

■各種ツールのインストール

sudo apt-get update

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse"
sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse"
sudo apt-get update
sudo apt-get install sun-java6-jdk
sudo apt-get install valgrind

cd ~
mkdir bin
curl http://android.git.kernel.org/repo >~/bin/repo
chmod a+x ~/bin/repo

echo $PATH

で/home//binにPATHが通っていることを確認する。
はログインユーザIDです。tomotaro1065でログインしていた場合は

/home/tomotaro1065/binにPATHが通っていないといけません。

通っていない場合は

vi .bashrc

として、viを起動して最終行に下記を加え、端末を開きなおす

PATH=$PATH:/home//bin
export PATH


Androidソースの取得

今回はgingerbreadのソースをビルド取得してみた。(froyoをビルドしたい場合は下記のrepo initの際に「-b gingerbread」の代わりに「-b froyo」とすればOK。もしくは、バージョンを指定せずに最新を取得するには-b以下の指定は不要。)

mkdir mydroid
cd mydroid
repo init -u git://android.git.kernel.org/platform/manifest.git -b gingerbread
repo sync


2〜3時間後に完了(うちは回線スピード遅いからなぁ。。。)


■ビルド

source build/envsetup.sh
lunch generic-eng
make -j2

1〜2時間後に完了(Core i5 2.66GHzのノート上のVM上なので。。。)


エミュレータの起動

~/mydroid/out/host/linux-x86/bin/emulator -kernel ~/mydroid/prebuilt/android-arm/kernel/kernel-qemu -sysdir ~/mydroid/out/target/product/generic -system ~/mydroid/out/target/product/generic/system.img -ramdisk ~/mydroid/out/target/product/generic/ramdisk.img -data ~/mydroid/out/target/product/generic/userdata.img -skindir ~/mydroid/device/sample/skins -skin WVGAMedDpi


おぉ〜。で、でたぁ〜。

さっそく、settingアプリでAbout phoneを確認してみる。

と、思ったら、何やらエラーダイアログが頻発。

何じゃこりゃ。

んー。。。froyoで再挑戦してみるか。。。

って、froyoはJava5か。めんどうっちいなぁ。