エンジニア未満がエンジニア以上を目指す日々(仮)

戦力外通告の悔しさをバネに自身の技術力向上を目指した技術ブログ

Nexus7 用環境構築とビルド (1)

Android 4.4.2_r2 のソースコードを取得して、
Nexus7 用にビルド出来る環境を構築します。

過去に構築してた Ubuntu 10.04 on VMWare Player を使いました。
Google 公式で Ubuntu 12.04 のビルドをサポートしたようなので、
Ubuntu 12.04 にアップデート。

ちなみに、ホスト PC は Core i7 920 でメモリ24GB。
VMWare Player はプロセッサコア2で、メモリ8GB割り当てです。

以下を参考に環境を構築
Initializing a Build Environment | Android Developers

Java のインストール

$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk

java, javac を 7 に向ける。

$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac

必要なパッケージをインストール

$ sudo apt-get install git 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 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

USB Access を設定

ソースコードの準備

$ mkdir -p ~/local/bin
$ emacs ~/.bashrc

.bashrc に以下を追加
PATH=~/local/bin:$PATH

$ mkdir -p workspace/nexus7
$ cd workspace/nexus7

repo を取得

$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/local/bin/repo
$ chmod a+x ~/local/bin/repo

Nexus7 用にソースコードを取得。

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.2_r2
$ repo sync -8

ビルド

device/asus 以下を見ると flo, tilapia があるのでググると、
どうやら flo が Nexus7 Wifi 版の模様。

$ . build/envsetup.sh
$ lunch aosp_flo-eng
$ make -j4

エラー発生。

Checking build tools versions...
************************************************************
You are attempting to build with an unsupported JDK.
 
You use OpenJDK but only Sun/Oracle JDK is supported.
Please follow the machine setup instructions at
    https://source.android.com/source/download.html
************************************************************
build/core/main.mk:152: *** stop.  Stop.

OpenJDK だとダメらしい。
てか、よく見ると kitkatOracle JDK なのね。

> To develop older versions of Android, download and install the corresponding version of the Java JDK:
> Java 6: for Gingerbread through KitKat

以下のサイトを参考に Oracle JDK をインストール
Ubuntu 12.04にOracle Java 7を簡単にインストールした。 - ブログ::=(メモ|落書き)帳

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer

再度ビルド

$ make -j8 2>&1 | tee log_build_flo-eng.txt 

またエラー。

Checking build tools versions...
************************************************************
You are attempting to build with the incorrect version
of java.

Your version is: java version "1.7.0_51".
The correct version is: Java SE 1.6.
 
Please follow the machine setup instructions at
    https://source.android.com/source/download.html
************************************************************
build/core/main.mk:168: *** stop.  Stop.

というか、ふつーに Java 6 って書いてあるね。。

$ sudo apt-get install oracle-java6-installer
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac

再々ビルド

$ make -j8 2>&1 | tee log_build_flo-eng.txt 

ここまでやって、Nexus7 向けのバイナリを入れ忘れていることに気づく。。orz
続きはまた明日。