Androidソースビルドに挑戦
【送料無料】Android Hacks |
まずは、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 valgrindcd ~
mkdir bin
curl http://android.git.kernel.org/repo >~/bin/repo
chmod a+x ~/bin/repo
echo $PATH
で/home/
※
/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か。めんどうっちいなぁ。