Galaxy Nexus向けにJelly Beanをビルドする

先日、Jelly Bean(Android 4.1.1_r1)のソースコードが公開されました。

Galaxy Nexus向けにビルドしてみることにします。

ビルドにはVMware上のUbuntu 12.04(amd64)を用いました。

メモリは12GB割り当てています。

今回、Ubuntuインストール直後の環境を使用したので、ビルド環境を整えることから始めます。

XDAのスレッド等を参考にして進めます。

まず、Java(JDK)をインストールします。

私はこちらのサイトを参考に設定を行いました。

http://www.devsniper.com/ubuntu-12-04-install-sun-jdk-6-7/

Javaがインストールできたら、ビルドに必要なパッケージのインストール等を行います。

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

さらに、Androidのソースをダウンロードするためにrepoをインストールします。

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

Jelly Beanのソースをダウンロードします。

それなりに時間がかかります。(私は1.5時間程度かかりました)

作業ディレクトリはmydroid としました。

$ mkdir ~/mydroid
$ cd ~/mydroid
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.1_r1
$ repo sync

ソースのダウンロードが終了したら、Galaxy Nexus用のプロプライエタリなバイナリを取得します。

こちらで公開されています。

https://developers.google.com/android/nexus/drivers

$ cd ~/mydroid
$ wget https://dl.google.com/dl/android/aosp/broadcom-maguro-jro03c-38ebfe02.tgz
$ wget https://dl.google.com/dl/android/aosp/imgtec-maguro-jro03c-c1162ee1.tgz
$ wget https://dl.google.com/dl/android/aosp/invensense-maguro-jro03c-9323759c.tgz
$ wget https://dl.google.com/dl/android/aosp/samsung-maguro-jro03c-c6bdd0ed.tgz
$ tar zxvf broadcom-maguro-jro03c-38ebfe02.tgz
$ tar zxvf imgtec-maguro-jro03c-c1162ee1.tgz
$ tar zxvf invensense-maguro-jro03c-9323759c.tgz
$ tar zxvf samsung-maguro-jro03c-c6bdd0ed.tgz
$ ./extract-broadcom-maguro.sh
$ ./extract-imgtec-maguro.sh
$ ./extract-invensense-maguro.sh
$ ./extract-samsung-maguro.sh

次に、ソースをビルドします。

$ cp ~/mydroid
$ source ./build/envsetup.sh
$ lunch full_maguro-userdebug
$ make -j8

-j8の部分は各自の環境に合わせてください。

CPUのコア数か、コア数+1が良いようです。私の環境は4コア2スレッドなので、8としています。

ビルドにも結構時間がかかります。

real 62m49.649s
user 380m7.137s
sys 35m54.575s

私の環境ではこのようになりました。

make otapackageでCWM等で扱えるZIP形式が出力されます。

$ make -j8 otapackage

すると、~/mydroid/out/target/product/maguro内に、

full_maguro-ota-eng.hogehoge.zipというファイルが出来上がります。

あとはこれを焼けば自ビルドのJelly Beanが起動するはずです。

無事に起動できました。
gappsが入っていないので、手動でインストールする必要があります。
とりあえずgapps-ics-20120429-signed.zipを焼いてみたところ、Playムービーが落ちるようになってしまいましたが、
再インストールすると正常に動作するようになりました。

Android4.1から4.1.1への変更点は把握していませんが、見た目の変更は特に無さそうです。
これから実際に使ってみて確かめようと思います。

[`evernote` not found]

  1. コメントはまだありません。

  1. トラックバックはまだありません。