Lionの載ったMBAで試してみたけど、、できるよ?
今回はAOSPの android-4.1.1_r1 をビルドしてみました。
基本的にJCROMの手順と同じです。
【環境構築】
1. ディスクユーティリティを使って大文字/小文字を区別するパーティションを作成
- OSXでJCROM と同じです。
2. Xcode 3.x インストール
- Appleのサイトの Looking for additional developer tools あたりから xcode_3.2.6_and_ios_sdk_4.3.dmg をダウンロードします(要登録)。「xcode 3.2.6」あたりのキーワードで検索すればすぐ見つかります。
- dmgファイルをダブルクリックしてマウントしますが、そのままインストールしてはダメとのことで(出典)、ターミナルを開いて
setenv COMMAND_LINE_INSTALL 1 open /Volumes/Xcode\ and\ iOS\ SDK/Xcode\ and\ iOS\ SDK.mpkg
とします(csh系の場合)。bashならexport COMMAND_LINE_INSTALL=1 open /Volumes/Xcode\ and\ iOS\ SDK/Xcode\ and\ iOS\ SDK.mpkg
- 場所(インストール先)が /Developer になることを確認してインストールを続けます。
- 途中で「In order to continue the installation, please close the following application: iTunes」と言われてインストールが止まってしまいました。iTunesなんか起動してないのに! ⇒ 慌てず騒がず ps x して iTunesHelper のプロセスを見つけて kill します(出典)。
- Xcode 4.x との共存はできないんじゃないかな… という話を聞きました。AndroidソースをビルドするかiOSのアプリ開発をするかどっちか選択しないとですねー()
3. ビルドに必要なツールのインストール
- 最初にMacPortsを selfupdate します。インストール済みPortsも更新します。
sudo port selfupdate sudo port upgrade outdated
- gmake と libsdl と git-core と gnupg をインストールします(csh系)。
setenv POSIXLY_CORRECT 1 sudo port install gmake libsdl git-core gnupg
bashなら Initializing a Build Environment の通りPOSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg
でよいでしょう。
4. gmake 3.81
- Initializing a Build Environment の通りです。
sudo vi /opt/local/etc/macports/sources.conf # rsync の行より上に file:///Users/Shared/dports という一行を挿入 mkdir /Users/Shared/dports cd /Users/Shared/dports svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/ portindex /Users/Shared/dports sudo port install gmake @3.81
5. Android SDK
- 最新に更新しておきました。
- Android SDK Tools → rev.20
- Android SDK Platform-tools → rev.12
6. repo
- こちらも念のため最新版を取得(MBAでは初めて repo 使うので)。
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo chmod +x ~/bin/repo
(~/bin はもともとパスが通してあります)
【ビルドの準備】
1. ソースコード取得
repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.1_r1 repo sync -j4
2. プロプライエタリなバイナリ
- Building for devices の Obtaining proprietary binaries にあるリンク先から Android 4.1.1 用バイナリをダウンロードします。W-CDMA(HSPA+)のGalaxy Nexus(SC-04Dもこれ)の場合はここの4つです。
- wget とか curl とか使うまでもなく、ブラウザでダウンロードでいいかなって^^;
- 各アーカイブをAndroidソースのルートディレクトリ(.repo のあるディレクトリ)に展開して extract-***.sh を実行します。
tar xzf ~/Downloads/broadcom-maguro-jro03c-38ebfe02.tgz ./extract-broadcom-maguro.sh
みたいな。[Enter]キーを押してライセンス表示 → ライセンスをよく読んで [Q] で抜ける(またはスペースで読み進める) → ライセンス納得できたら「I ACCEPT」と入力。
【ビルド手順】
0. bash を起動
- ソースをダウンロードしたディレクトリに移動しておきます。
1. ファイル数制限緩和
ulimit -S -n 2048
2. キャッシュ設定
- ccache のパスが変わっています。
export USE_CCACHE=1 export CCACHE_DIR=/Volumes/AndroidBuild/android-4.1.1_r1/.ccache ./prebuilts/misc/darwin-x86/ccache/ccache -M 20G
3. ビルド
- HSPA+のGalaxy Nexusは maguro です。
source build/envsetup.sh lunch full_maguro-user make -j4
⇒ エラーしたorz - /opt/local/lib/libz.dylib が i386 でリンクできない? そうなの?
sudo port install zlib +universal make -j4
⇒ エラーしたorz - /opt/local/lib/libiconv.dylib が i386 でリンクできない? そうなの?
sudo port install libiconv +universal make -j4
⇒ …ビルド終わったー キタ━━━━(゚∀゚)━━━━ッ!!
ROMの書き込みは OSXでJCROM と同じ。
手元のMBAは容量がカツカツなのでJCROMかAOSPかどっちかのソースしか持っておけないのですが、一応Lionでもビルドできましたよ、ということで共有しておきます。
p.s. ビルドしたJBを焼いたGNですがカメラが動きません(´・ω・`) 環境のせいではない気がするけど…うーん
このコメントは投稿者によって削除されました。
返信削除