Firefox OS ビルド手順 (Flame)

# はじめに
**注意: 自サイトに置いていた記事をこちらに移動しただけです。最新情報ではありません。**

このページは Firefox OS の Flame 向けビルド手順について記載しています。

# 必要事項
下記手順にて作業するためには以下の 2 つが必要です。

* Flame
* Ubuntu 14.04 (64bit)

# Firefox OS をビルドする
以下 Ubuntu にて作業します。

## パッケージのインストール
下記コマンドで必要なパッケージをインストールします。

```
$ sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 \
g++-4.6-multilib git lib32ncurses5-dev lib32z1-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev \
libx11-dev make zip libxml2-utils
```

64bit 環境の場合は下記コマンドを入力します。

```
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install ia32-libs
```

adb 及び fastboot を下記コマンドでインストールします（Android SDK 等でインストール済みの場合は不要）

```
$ sudo apt-get install android-tools-adb android-tools-fastboot
```

## ソースコードのダウンロード
下記手順でソースコードをダウンロードします。

```
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G/
$ export FIREFOXOS_ROOT=`pwd`
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"
```

下記手順でソースコードをダウンロードします。

```
$ cd ${FIREFOXOS_ROOT}
$ BRANCH=master ./config.sh flame-kk
```

ダウンロードが終わったらビルドの設定を行ないます。下記コマンドでコンパイラを設定します。

```
$ vi .userconfig
export CC=gcc-4.6
export CXX=g++-4.6
```

## ビルド準備
※この手順は初回ビルド時のみ必要です。
まず Flame にて下記手順でリモートデバッギングを有効にします。
Settings -> Device information -> More Information -> Developer -> Remote Debugging にチェック
Flame がタイムアウトすると adb から見えなくなるのでタイムアウトを無効化します。
Settings -> Display -> Screen timeout -> never にチェック

また、 udev が Flame を認識できるようにしておきます。

```
$ sudo vi /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
```

設定後 udev または PC を再起動します。下記コマンドを入力して以下のように表示されれば OK です。

```
$ adb devices
List of devices attached
f2feccdc	device
```

## Flame に v18D nightly イメージを焼く
※この手順は初回ビルド時のみ必要です。
「ビルド」のステップで Flame からファイルを抜き出しますが、 Flame に書かれているイメージが古いと、必要なファイルが無い場合があります。
そのため、下記手順で最新のイメージを焼きます。

```
$ wget http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v2.zip
$ unzip v18D_nightly_v2.zip
$ cd v18D_nightly_v2
$ source flash.bat
```

## ビルド
下記コマンドでビルドします。 -j の後の数字は CPU の個数を記載します。

```
$ ./build.sh -j8
```

下記コマンドで書き込みを行ないます。

```
$ ./flash.sh
$ ./flash.sh gaia
```

# 日本語入力を使う
## Gaia の設定
日本語関連のコードをダウンロードします。

```
$ cd ${FIREFOXOS_ROOT}
$ cd gaia/locales/
$ hg clone http://hg.mozilla.org/gaia-l10n/ja
```

現在のディレクトリにて languages_ja.json ファイルを作成し

```
$ touch languages_ja.json
```

下記のように編集します。

```
{
  "en-US"     : "English (US)",
  "ja"  : "日本語"
}
```

.userconfig ファイルを開き

```
$ cd ..
$ vi .userconfig
```

下記行を追加します。

```
export LOCALE_BASEDIR=${FIREFOXOS_ROOT}/gaia/locales
export LOCALES_FILE=${FIREFOXOS_ROOT}/gaia/locales/languages_ja.json
export GAIA_DEFAULT_LOCALE=ja
export GAIA_KEYBOARD_LAYOUTS=en,jp-kanji
```

## Gecko の設定
日本語関連のコードをダウンロードします。

```
$ cd ${FIREFOXOS_ROOT}
$ hg clone http://hg.mozilla.org/l10n-central/ja gecko-l10n/ja
$ hg clone http://hg.mozilla.org/build/compare-locales
```

.userconfig ファイルを開き

```
$ vi .userconfig
```

下記行を追加します。

```
export L10NBASEDIR=$PWD/gecko-l10n
export MOZ_CHROME_MULTILOCALE="ja"
export PATH="$PATH:$PWD/compare-locales/scripts"
export PYTHONPATH="$PWD/compare-locales/lib"
```

## 再ビルドする
上記ビルド手順にて再度ビルドし、焼き直します。

## 日本語キーボードを有効にする
Firefox OS が起動したら日本語を選択します。選択していることがわかりにくいので注意。
Settings -> Keyboards -> Select Keyboards -> Japanese - Kanji にチェックします。