1月 08

MacBook ProにAndroidのソースを入れてビルドしたときの備忘録です(参考: http://source.android.com/download)。

ディスクイメージの準備

Mac OS X で動かすには、大文字/小文字を区別するファイルシステムが必要になります。デフォルトでは大文字/小文字を区別しないようになっています。したがって、新たにファイルシステムを作り直さなければなりません。でも大文字/小文字を区別すると、Adobe系のソフトが動かなくなるという話もあります(最近のはどうなのか未確認です)。これは困ります。

幸い、Mac OS X では簡単にディスクイメージを作ることができるので、これを使えば既存のパーティションを変更することなく、Androidの開発環境をインストールすることができます。

アプリケーション/ユーティリティにあるディスクユーティリティを使って「HFS+」のパーティションを作ります。
以下のように、サイズはカスタム8GB、フォーマットをMac OS 拡張(大文字/小文字を区別、ジャーナリング)にしておきます。ここでは名前をandroid.dmgにしておきました。

create-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_profile

Repoのインストール

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ソースのビルド環境ができました。


7 Responses to “MacでAndroidソースをビルド”

  1. tattsun より:

    はじめまして。

    大変参考になる資料をありがとうございます。

    質問なのですが、
    # mkdir mydroid
    は、作成した新しいディスクイメージに作成するのでしょうか?

    後、上記が正しければ、
    $ cd ~mydroid
    は、ディスクイメージの方に cd するのでしょうか?

    いきなり、不躾な質問で申し訳ありませんがよろしくお願いします。

  2. sasai より:

    はい、そうなります。
    書き方がわるかったですね、修正しておきます。
    ありがとうございます。

  3. neko より:

    はじめましてです

    とても参考になりました。

    ただ、make のバージョンが違ってて
    ダウングレードの方法を探しています。
    ご存知でしたら、教えて頂ければと

    You are using version 3.82 of make.
    Android can only be built by version 3.81.

    よろしくお願い致します。

  4. neko より:

    自己解決しました。

  5. shrike より:

    本手順でgingerbreadのビルドもできますでしょうか。
    macbook airにubuntu 10.10 64bitをインストールして、ビルド
    をして32bitと判定されてビルドができていない状況でMacOS
    でビルド環境を再構築しようか迷っています。。

    あと、androidのsouce downloadページは以下に移転したみたいですね。
    http://source.android.com/source/download.html

  6. shrike より:

    どーもmacbook airは64bitカーネルがサポートされていないそうです。
    https://discussionsjapan.apple.com/message/100580552

    というわけでmacbook airではgingerbreadの64bitビルドは無理。。。

  7. shrike より:

    以下のURLを参考に64ビットカーネルを有効にでき、
    macbook air でもgingerbreadのビルドができました。
    http://temvercl.x0.com/blog/2010/11/23/macbookair11インチを64bitカーネルで起動。/

    ご報告まで。

Leave a Reply

preload preload preload
QLOOKアクセス解析