MacBook ProにAndroidのソースを入れてビルドしたときの備忘録です(参考: http://source.android.com/download)。
ディスクイメージの準備
Mac OS X で動かすには、大文字/小文字を区別するファイルシステムが必要になります。デフォルトでは大文字/小文字を区別しないようになっています。したがって、新たにファイルシステムを作り直さなければなりません。でも大文字/小文字を区別すると、Adobe系のソフトが動かなくなるという話もあります(最近のはどうなのか未確認です)。これは困ります。
幸い、Mac OS X では簡単にディスクイメージを作ることができるので、これを使えば既存のパーティションを変更することなく、Androidの開発環境をインストールすることができます。
アプリケーション/ユーティリティにあるディスクユーティリティを使って「HFS+」のパーティションを作ります。
以下のように、サイズはカスタム8GB、フォーマットをMac OS 拡張(大文字/小文字を区別、ジャーナリング)にしておきます。ここでは名前をandroid.dmgにしておきました。
.bash_profileに以下を追加。
# command to mount the android file image function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }
そして、
# mountAndroidすることで、ディスクイメージを /Volumes/android にマウントします。
以後、必要なときにこのコマンドでマウントすればいいです。
ツールの準備
必要なツールを port を使ってインストールします。
$ sudo port selfupdate $ sudo port install gmake $ sudo ln -s gmake /opt/local/bin/make $ sudo port install libsdl $ sudo port install git-core gnupg
.bash_profileに以下を追加します。
# set the number of open files to be 1024 ulimit -S -n 1024
設定を読み直しておきます。
$ . ~/.bash_profileRepoのインストール
repo の置き場をつくります。
$ cd ~ $ mkdir bin
.bash_profile の PATH に ~/bin を追加しておく必要があります。
repo をダウンロードしてきます。
$ curl http://android.git.kernel.org/repo >~/bin/repo $ chmod a+x ~/bin/repo
ソースの取得
これでツールの準備はできました。Androidのソースを取ってきます。
$ cd /Volumes/android $ mkdir mydroid $ cd mydroid $ repo init -u git://android.git.kernel.org/platform/manifest.git $ repo sync
時間がかかるので気長に待ちましょう。
ビルド
いよいよビルドです。
$ makeこれにはすごく時間がかかります。しばらく放置しておきましょう。
トラブルシューティング
repo sync してソースをアップデートすると、ビルドできなくなるときがありました。
$ make build/core/main.mk:178: implicitly installing apns-conf_sdk.xml build/core/base_rules.mk:117: *** recovery: MODULE.TARGET.EXECUTABLES.recovery already defined by bootable/recovery. 中止.
この場合には以下のようにすればいいようです。
$ rm -rf recovery $ make
これで、MacにAndroidソースのビルド環境ができました。




はじめまして。
大変参考になる資料をありがとうございます。
質問なのですが、
# mkdir mydroid
は、作成した新しいディスクイメージに作成するのでしょうか?
後、上記が正しければ、
$ cd ~mydroid
は、ディスクイメージの方に cd するのでしょうか?
いきなり、不躾な質問で申し訳ありませんがよろしくお願いします。
はい、そうなります。
書き方がわるかったですね、修正しておきます。
ありがとうございます。
はじめましてです
とても参考になりました。
ただ、make のバージョンが違ってて
ダウングレードの方法を探しています。
ご存知でしたら、教えて頂ければと
You are using version 3.82 of make.
Android can only be built by version 3.81.
よろしくお願い致します。
自己解決しました。
本手順でgingerbreadのビルドもできますでしょうか。
macbook airにubuntu 10.10 64bitをインストールして、ビルド
をして32bitと判定されてビルドができていない状況でMacOS
でビルド環境を再構築しようか迷っています。。
あと、androidのsouce downloadページは以下に移転したみたいですね。
http://source.android.com/source/download.html
どーもmacbook airは64bitカーネルがサポートされていないそうです。
https://discussionsjapan.apple.com/message/100580552
というわけでmacbook airではgingerbreadの64bitビルドは無理。。。
以下のURLを参考に64ビットカーネルを有効にでき、
macbook air でもgingerbreadのビルドができました。
http://temvercl.x0.com/blog/2010/11/23/macbookair11インチを64bitカーネルで起動。/
ご報告まで。